@acorex/components 5.0.36 → 5.0.40

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.
Files changed (151) hide show
  1. package/esm2020/lib/alert/alert-button.component.mjs +3 -3
  2. package/esm2020/lib/alert/alert-content.component.mjs +3 -3
  3. package/esm2020/lib/alert/alert-footer.component.mjs +3 -3
  4. package/esm2020/lib/alert/alert-suffix.component.mjs +3 -3
  5. package/esm2020/lib/alert/alert-title.component.mjs +3 -3
  6. package/esm2020/lib/alert/alert.component.mjs +3 -3
  7. package/esm2020/lib/alert/alert.module.mjs +4 -4
  8. package/esm2020/lib/avatar/avatar.component.mjs +3 -3
  9. package/esm2020/lib/avatar/avatar.module.mjs +4 -4
  10. package/esm2020/lib/badge/badge.component.mjs +3 -3
  11. package/esm2020/lib/badge/badge.module.mjs +4 -4
  12. package/esm2020/lib/base/common.module.mjs +4 -4
  13. package/esm2020/lib/base/custom-cdk-overlay.service.mjs +6 -6
  14. package/esm2020/lib/base/mixin/base-components.class.mjs +3 -3
  15. package/esm2020/lib/base/mixin/button-mixin.class.mjs +16 -5
  16. package/esm2020/lib/base/mixin/datalist-component.class.mjs +40 -9
  17. package/esm2020/lib/base/mixin/dropdown-mixin.class.mjs +21 -10
  18. package/esm2020/lib/base/mixin/interactive-mixin.class.mjs +2 -2
  19. package/esm2020/lib/base/mixin/selection-component.class.mjs +16 -2
  20. package/esm2020/lib/base/mixin/value-mixin.class.mjs +26 -14
  21. package/esm2020/lib/base/overlay.service.mjs +3 -3
  22. package/esm2020/lib/base/responsive.directive.mjs +3 -3
  23. package/esm2020/lib/button/button-group.component.mjs +3 -3
  24. package/esm2020/lib/button/button-item.component.mjs +5 -6
  25. package/esm2020/lib/button/button.component.mjs +3 -3
  26. package/esm2020/lib/button/button.module.mjs +4 -4
  27. package/esm2020/lib/calendar/calendar.class.mjs +3 -3
  28. package/esm2020/lib/calendar/calendar.component.mjs +8 -4
  29. package/esm2020/lib/calendar/calendar.module.mjs +4 -4
  30. package/esm2020/lib/carousel/carousel-arrows.component.mjs +3 -3
  31. package/esm2020/lib/carousel/carousel-item.component.mjs +3 -3
  32. package/esm2020/lib/carousel/carousel-pager.component.mjs +3 -3
  33. package/esm2020/lib/carousel/carousel.class.mjs +3 -3
  34. package/esm2020/lib/carousel/carousel.component.mjs +3 -3
  35. package/esm2020/lib/carousel/carousel.module.mjs +4 -4
  36. package/esm2020/lib/checkbox/checkbox.component.mjs +7 -20
  37. package/esm2020/lib/checkbox/checkbox.module.mjs +7 -6
  38. package/esm2020/lib/datalist/datalist.component.mjs +3 -3
  39. package/esm2020/lib/datalist/datalist.module.mjs +4 -4
  40. package/esm2020/lib/datepicker/datepicker.component.mjs +18 -8
  41. package/esm2020/lib/datepicker/datepicker.module.mjs +4 -4
  42. package/esm2020/lib/decorators/addon.component.mjs +20 -0
  43. package/esm2020/lib/decorators/content.component.mjs +3 -3
  44. package/esm2020/lib/decorators/decorators.module.mjs +7 -6
  45. package/esm2020/lib/decorators/header.component.mjs +3 -3
  46. package/esm2020/lib/decorators/index.mjs +2 -1
  47. package/esm2020/lib/decorators/prefix.component.mjs +6 -6
  48. package/esm2020/lib/decorators/suffix.component.mjs +6 -6
  49. package/esm2020/lib/dialog/dialog.component.mjs +3 -3
  50. package/esm2020/lib/dialog/dialog.module.mjs +4 -4
  51. package/esm2020/lib/dialog/dialog.service.mjs +4 -5
  52. package/esm2020/lib/drawer/drawer-container.component.mjs +3 -3
  53. package/esm2020/lib/drawer/drawer-content.component.mjs +3 -3
  54. package/esm2020/lib/drawer/drawer.component.mjs +3 -3
  55. package/esm2020/lib/drawer/drawer.module.mjs +4 -4
  56. package/esm2020/lib/dropdown/dropdown-panel.component.mjs +5 -5
  57. package/esm2020/lib/dropdown/dropdown.module.mjs +7 -8
  58. package/esm2020/lib/dropdown/index.mjs +1 -2
  59. package/esm2020/lib/form/form-field.component.mjs +3 -3
  60. package/esm2020/lib/form/form-field.module.mjs +4 -4
  61. package/esm2020/lib/form/form-hint.component.mjs +3 -3
  62. package/esm2020/lib/form/form.component.mjs +3 -3
  63. package/esm2020/lib/icon/icon.component.mjs +5 -5
  64. package/esm2020/lib/icon/icon.module.mjs +4 -4
  65. package/esm2020/lib/input-mask/input-mask.component.mjs +21 -7
  66. package/esm2020/lib/input-mask/input-mask.module.mjs +7 -6
  67. package/esm2020/lib/label/label.component.mjs +3 -3
  68. package/esm2020/lib/label/label.module.mjs +4 -4
  69. package/esm2020/lib/loading/loading-spinner.component.mjs +10 -7
  70. package/esm2020/lib/loading/loading.component.mjs +14 -6
  71. package/esm2020/lib/loading/loading.directive.mjs +3 -3
  72. package/esm2020/lib/loading/loading.module.mjs +6 -6
  73. package/esm2020/lib/loading/loading.service.mjs +3 -3
  74. package/esm2020/lib/number-box/number-box.component.mjs +124 -184
  75. package/esm2020/lib/number-box/number-box.module.mjs +15 -9
  76. package/esm2020/lib/page/base-page.class.mjs +3 -3
  77. package/esm2020/lib/page/page-footer.component.mjs +3 -3
  78. package/esm2020/lib/page/page.component.mjs +3 -3
  79. package/esm2020/lib/page/page.module.mjs +4 -4
  80. package/esm2020/lib/password-box/password-box.component.mjs +8 -9
  81. package/esm2020/lib/password-box/password-box.module.mjs +4 -4
  82. package/esm2020/lib/popover/popover.component.mjs +19 -16
  83. package/esm2020/lib/popover/popover.module.mjs +4 -4
  84. package/esm2020/lib/popup/popup.component.mjs +7 -7
  85. package/esm2020/lib/popup/popup.module.mjs +6 -7
  86. package/esm2020/lib/popup/popup.service.mjs +6 -5
  87. package/esm2020/lib/radio/radio.component.mjs +3 -3
  88. package/esm2020/lib/radio/radio.module.mjs +4 -4
  89. package/esm2020/lib/range-slider/range-slider.component.mjs +3 -3
  90. package/esm2020/lib/range-slider/range-slider.module.mjs +4 -4
  91. package/esm2020/lib/selectbox/selectbox.component.mjs +53 -21
  92. package/esm2020/lib/selectbox/selectbox.module.mjs +8 -6
  93. package/esm2020/lib/selection-list/selection-list.component.mjs +3 -3
  94. package/esm2020/lib/selection-list/selection-list.module.mjs +4 -4
  95. package/esm2020/lib/side-menu/side-menu.component.mjs +3 -3
  96. package/esm2020/lib/side-menu/side-menu.module.mjs +4 -4
  97. package/esm2020/lib/switch/switch.component.mjs +3 -3
  98. package/esm2020/lib/switch/switch.module.mjs +4 -4
  99. package/esm2020/lib/tabs/tab-content.directive.mjs +3 -3
  100. package/esm2020/lib/tabs/tab-item.component.mjs +3 -3
  101. package/esm2020/lib/tabs/tabs.component.mjs +3 -3
  102. package/esm2020/lib/tabs/tabs.module.mjs +4 -4
  103. package/esm2020/lib/textbox/textbox.component.mjs +10 -37
  104. package/esm2020/lib/textbox/textbox.module.mjs +4 -4
  105. package/esm2020/lib/time-box/time-box.component.mjs +6 -8
  106. package/esm2020/lib/time-box/time-box.module.mjs +4 -4
  107. package/esm2020/lib/toast/toast.component.mjs +3 -3
  108. package/esm2020/lib/toast/toast.module.mjs +4 -4
  109. package/esm2020/lib/toast/toast.service.mjs +3 -3
  110. package/esm2020/lib/tooltip/tooltip.component.mjs +3 -3
  111. package/esm2020/lib/tooltip/tooltip.directive.mjs +3 -3
  112. package/esm2020/lib/tooltip/tooltip.module.mjs +4 -4
  113. package/esm2020/lib/validation/validation-rule.widget.mjs +3 -3
  114. package/esm2020/lib/validation/validation.module.mjs +4 -4
  115. package/fesm2015/acorex-components.mjs +942 -888
  116. package/fesm2015/acorex-components.mjs.map +1 -1
  117. package/fesm2020/acorex-components.mjs +938 -888
  118. package/fesm2020/acorex-components.mjs.map +1 -1
  119. package/lib/base/mixin/button-mixin.class.d.ts +8 -4
  120. package/lib/base/mixin/datalist-component.class.d.ts +4 -1
  121. package/lib/base/mixin/dropdown-mixin.class.d.ts +1 -3
  122. package/lib/base/mixin/interactive-mixin.class.d.ts +3 -1
  123. package/lib/base/mixin/mixin.class.d.ts +5 -4
  124. package/lib/base/mixin/selection-component.class.d.ts +8 -0
  125. package/lib/base/mixin/value-mixin.class.d.ts +3 -1
  126. package/lib/calendar/calendar.component.d.ts +1 -0
  127. package/lib/checkbox/checkbox.component.d.ts +2 -6
  128. package/lib/checkbox/checkbox.module.d.ts +2 -1
  129. package/lib/datepicker/datepicker.component.d.ts +12 -7
  130. package/lib/decorators/addon.component.d.ts +8 -0
  131. package/lib/decorators/decorators.module.d.ts +3 -2
  132. package/lib/decorators/index.d.ts +1 -0
  133. package/lib/decorators/prefix.component.d.ts +1 -1
  134. package/lib/decorators/suffix.component.d.ts +1 -1
  135. package/lib/dropdown/dropdown.module.d.ts +8 -9
  136. package/lib/dropdown/index.d.ts +0 -1
  137. package/lib/icon/icon.component.d.ts +1 -1
  138. package/lib/input-mask/input-mask.component.d.ts +13 -2
  139. package/lib/input-mask/input-mask.module.d.ts +2 -1
  140. package/lib/loading/loading-spinner.component.d.ts +1 -0
  141. package/lib/loading/loading.component.d.ts +4 -2
  142. package/lib/number-box/number-box.component.d.ts +30 -23
  143. package/lib/number-box/number-box.module.d.ts +4 -2
  144. package/lib/popover/popover.component.d.ts +2 -0
  145. package/lib/popup/popup.component.d.ts +1 -1
  146. package/lib/selectbox/selectbox.component.d.ts +7 -2
  147. package/lib/selectbox/selectbox.module.d.ts +7 -5
  148. package/lib/textbox/textbox.component.d.ts +1 -4
  149. package/package.json +6 -5
  150. package/esm2020/lib/dropdown/dropdown.component.mjs +0 -28
  151. package/lib/dropdown/dropdown.component.d.ts +0 -12
@@ -143,9 +143,9 @@ export class AXLoadingService {
143
143
  return loaderId ?? DEFAULT_LOADER_ID;
144
144
  }
145
145
  }
146
- AXLoadingService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: AXLoadingService, deps: [{ token: i0.NgZone }, { token: i1.AXOverlayService }], target: i0.ɵɵFactoryTarget.Injectable });
147
- AXLoadingService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: AXLoadingService, providedIn: 'root' });
148
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: AXLoadingService, decorators: [{
146
+ AXLoadingService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: AXLoadingService, deps: [{ token: i0.NgZone }, { token: i1.AXOverlayService }], target: i0.ɵɵFactoryTarget.Injectable });
147
+ AXLoadingService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: AXLoadingService, providedIn: 'root' });
148
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: AXLoadingService, decorators: [{
149
149
  type: Injectable,
150
150
  args: [{
151
151
  providedIn: 'root'
@@ -1,11 +1,16 @@
1
- import { Component, ViewEncapsulation, ChangeDetectionStrategy, Input, Output, EventEmitter, HostBinding, } from '@angular/core';
1
+ import { Component, ViewEncapsulation, ChangeDetectionStrategy, Input, ViewChild, } from '@angular/core';
2
+ import IMask from 'imask';
3
+ import { IMaskDirective } from 'angular-imask';
2
4
  import { AXBaseTextBoxMixin } from '../base';
3
5
  import { TEXTBOX_INPUTS, TEXTBOX_OUTPUT, } from '../base/mixin/textbox-mixin.class';
6
+ import _ from 'lodash';
4
7
  import * as i0 from "@angular/core";
5
- import * as i1 from "ngx-mask";
6
- import * as i2 from "../button/button.component";
7
- import * as i3 from "@angular/forms";
8
- import * as i4 from "@angular/common";
8
+ import * as i1 from "../button/button.component";
9
+ import * as i2 from "../decorators/prefix.component";
10
+ import * as i3 from "../icon/icon.component";
11
+ import * as i4 from "@angular/forms";
12
+ import * as i5 from "angular-imask";
13
+ import * as i6 from "@angular/common";
9
14
  /**
10
15
  * The NumberBox is a component which detects user interaction and triggers a corresponding event
11
16
  *
@@ -15,40 +20,64 @@ export class AXNumberBoxComponent extends AXBaseTextBoxMixin {
15
20
  /**
16
21
  * @ignore
17
22
  */
18
- constructor(elementRef, cdr, _maskService) {
23
+ constructor(elementRef, cdr) {
19
24
  super(elementRef, cdr);
20
25
  this.cdr = cdr;
21
- this._maskService = _maskService;
22
- /**
23
- * A character value that specifies the separator character.
24
- */
25
- this.separator = ',';
26
- /**
27
- * Specifies whether the Separator character will be displayed or not
28
- */
29
- this.thousandSeparator = false;
26
+ this._padDecimalZeros = false;
30
27
  /**
31
28
  * Specifies the value that is used to increment or decrement the **Integer** part of number
32
29
  */
33
30
  this.step = 1;
34
- /**
35
- * Specifies the number of decimals that the user can enter
36
- */
37
- this.scale = 0;
31
+ this._decimals = 0;
38
32
  /**
39
33
  * Specifies the value that is used to increment or decrement the **Deciaml** part of number
40
34
  */
41
- this.decimalStep = 0.1;
35
+ this.decimalStep = 'auto';
42
36
  /**
43
37
  * Specifies whether the Up and Down spin buttons will be rendered or not
44
38
  */
45
39
  this.showSpinButtons = true;
46
- this._minValue = Number.MIN_VALUE;
47
- this._maxValue = Number.MAX_VALUE;
48
- this.displayTextChange = new EventEmitter();
40
+ this._minValue = Number.MIN_SAFE_INTEGER;
41
+ this._maxValue = Number.MAX_SAFE_INTEGER;
42
+ this.toNum = (val) => {
43
+ return Number(val.replace(/[^0-9.-]+/g, ''));
44
+ };
45
+ }
46
+ /**
47
+ * A character value that specifies the separator character.
48
+ */
49
+ get thousandsSeparator() {
50
+ return this._thousandsSeparator;
51
+ }
52
+ set thousandsSeparator(v) {
53
+ this._setOption({
54
+ name: "thousandsSeparator",
55
+ value: v ?? '',
56
+ });
57
+ }
58
+ /**
59
+ * A character value that specifies the separator character.
60
+ */
61
+ get padDecimalZeros() {
62
+ return this._padDecimalZeros;
49
63
  }
50
- get __hostClass() {
51
- return `${this.cssClass} ax-${this.size}`;
64
+ set padDecimalZeros(v) {
65
+ this._setOption({
66
+ name: "padDecimalZeros",
67
+ value: v,
68
+ });
69
+ }
70
+ /**
71
+ * Specifies the number of decimals that the user can enter
72
+ */
73
+ get decimals() {
74
+ return this._decimals;
75
+ }
76
+ set decimals(v) {
77
+ this._setOption({
78
+ name: "decimals",
79
+ value: v ?? 0,
80
+ });
52
81
  }
53
82
  /**
54
83
  * Specifies the smallest value that is valid
@@ -57,7 +86,10 @@ export class AXNumberBoxComponent extends AXBaseTextBoxMixin {
57
86
  return this._minValue;
58
87
  }
59
88
  set minValue(v) {
60
- this._minValue = v ? Number(v) : Number.MIN_VALUE;
89
+ this._setOption({
90
+ name: "minValue",
91
+ value: v != null ? Number(v) : Number.MIN_SAFE_INTEGER,
92
+ });
61
93
  }
62
94
  /**
63
95
  * Specifies the greatest value that is valid
@@ -66,179 +98,91 @@ export class AXNumberBoxComponent extends AXBaseTextBoxMixin {
66
98
  return this._maxValue;
67
99
  }
68
100
  set maxValue(v) {
69
- this._maxValue = v ? Number(v) : Number.MAX_VALUE;
101
+ this._setOption({
102
+ name: "maxValue",
103
+ value: v != null ? Number(v) : Number.MAX_SAFE_INTEGER,
104
+ });
70
105
  }
71
- /**
72
- * The formatted string which is displaying in the numberbox
73
- */
74
- get displayText() {
75
- return this._displayText;
106
+ onViewInit() {
107
+ super.onViewInit();
108
+ this._updateMask();
76
109
  }
77
- set displayText(v) {
78
- this._displayText = v;
79
- this.displayTextChange.emit(v);
110
+ _onOptionChanged(option) {
111
+ super._onOptionChanged(option);
112
+ this._updateMask();
113
+ }
114
+ _updateMask() {
115
+ if (!this._maskObj) {
116
+ this._maskObj = IMask.createMask({
117
+ mask: Number,
118
+ min: this.minValue,
119
+ max: this.maxValue,
120
+ thousandsSeparator: this.thousandsSeparator || '',
121
+ scale: this.decimals,
122
+ radix: '.',
123
+ padFractionalZeros: this.decimals > 0 && this.padDecimalZeros
124
+ });
125
+ }
126
+ else {
127
+ this._maskObj.updateOptions({
128
+ min: this.minValue,
129
+ max: this.maxValue,
130
+ thousandsSeparator: this.thousandsSeparator || '',
131
+ scale: this.decimals,
132
+ radix: '.',
133
+ padFractionalZeros: this.decimals > 0 && this.padDecimalZeros
134
+ });
135
+ }
136
+ this._maskDirective?.maskRef?.updateValue();
137
+ this._maskDirective?.maskRef?.updateControl();
80
138
  }
81
139
  _handleOnKeydownEvent(e) {
82
140
  const ignore = () => {
83
141
  e.preventDefault();
84
142
  e.stopPropagation();
85
143
  };
86
- const toNum = (val) => {
87
- return Number(val.replace(/[^0-9.-]+/g, ''));
88
- };
89
- const nums = Array(10)
90
- .fill(0)
91
- .map((v, i) => i.toString());
92
- const chars = [
93
- '.',
94
- '-',
95
- 'Backspace',
96
- 'ArrowDown',
97
- 'ArrowUp',
98
- 'ArrowRight',
99
- 'ArrowLeft',
100
- 'Tab',
101
- 'Enter',
102
- ];
103
144
  const input = e.target;
104
- const key = e.key;
105
145
  const valStr = input.value;
106
- const val = toNum(valStr);
107
146
  const decimalPointIndex = valStr.indexOf('.');
108
147
  const selectionStart = input.selectionStart;
109
148
  const selectionEnd = input.selectionEnd;
110
- //
111
- //
112
- if (![...nums, ...chars].includes(key)) {
113
- ignore();
114
- }
115
- if (e.key === 'ArrowDown' || e.key === 'ArrowUp') {
116
- const stepVal = decimalPointIndex > -1
117
- ? selectionStart >= decimalPointIndex
118
- ? this.decimalStep
119
- : this.step
120
- : this.step;
121
- if (e.key === 'ArrowDown') {
122
- this.value = val - stepVal;
149
+ if (e.key === 'ArrowUp' || e.key === 'ArrowDown') {
150
+ if (selectionStart > decimalPointIndex && this.decimals > 0) {
151
+ e.key === 'ArrowDown' ? this.decimalStepDown() : this.decimalStepUp();
123
152
  }
124
153
  else {
125
- this.value = val + stepVal;
154
+ e.key === 'ArrowDown' ? this.stepDown() : this.stepUp();
126
155
  }
127
156
  ignore();
128
- input.setSelectionRange(selectionStart, selectionStart);
129
- }
130
- else if (e.key == 'Backspace') {
131
- const chr = valStr.substr(selectionStart - 1, 1);
132
- if (!nums.includes(chr)) {
133
- ignore();
134
- input.setSelectionRange(selectionStart - 1, selectionStart - 1);
135
- }
136
- else {
137
- const newVal = toNum(valStr.substr(0, selectionStart - 1) + valStr.substr(selectionEnd));
138
- input.value = this._format(newVal);
139
- this.value = newVal;
140
- ignore();
141
- if (newVal == 0) {
142
- input.setSelectionRange(1, 1);
143
- }
144
- else {
145
- input.setSelectionRange(selectionStart - 1, selectionStart - 1);
146
- }
147
- }
148
- }
149
- else if (e.key == '.') {
150
- if (!this.scale) {
151
- ignore();
152
- }
153
- else if (decimalPointIndex > -1) {
154
- input.setSelectionRange(decimalPointIndex + 1, decimalPointIndex + 1);
155
- ignore();
156
- }
157
- else {
158
- if (input.selectionEnd != valStr.length) {
159
- input.setSelectionRange(valStr.length, valStr.length);
160
- ignore();
161
- }
162
- }
163
- }
164
- else if (e.key == '-') {
165
- const index = valStr.indexOf('-');
166
- if (index > -1) {
167
- ignore();
168
- }
169
- else {
170
- this.value = Math.abs(this.value) * -1;
171
- input.setSelectionRange(index + 1, index + 1);
172
- ignore();
173
- }
174
- }
175
- else if (nums.includes(key)) {
176
- const newVal = toNum(valStr.substr(0, selectionStart) + key + valStr.substr(selectionEnd));
177
- if (newVal < this.minValue) {
178
- //TODO : highlight correct number
179
- //input.value = this._format(this.minValue);
180
- //const diff = this.minValue - val;
181
- //this.value = this.minValue;
182
- //ignore();
183
- // setTimeout(() => {
184
- // input.setSelectionRange(input.selectionStart + 1, this.minValue.toString().length);
185
- // }, 50);
186
- }
187
- else if (newVal > this.maxValue) {
188
- input.value = this._format(this.maxValue);
189
- this.value = this.maxValue;
190
- ignore();
191
- }
192
- else {
193
- input.value = this._format(newVal);
194
- this.value = newVal;
195
- ignore();
196
- }
157
+ setTimeout(() => {
158
+ input.setSelectionRange(selectionStart, selectionStart);
159
+ });
197
160
  }
198
161
  super._emitOnKeydownEvent(e);
199
162
  }
163
+ _handleUpDownClick(e, v) {
164
+ v == 1 ? this.stepUp() : this.stepDown();
165
+ }
200
166
  _onValueChanging(value) {
201
- return this._fixValue(value);
167
+ return _.toNumber(value);
202
168
  }
203
- _fixValue(value) {
204
- if (value == null || value == undefined) {
205
- return this.allowNull ? null : this.minValue;
206
- }
207
- else if (value > this.maxValue) {
208
- return this.maxValue;
209
- }
210
- else if (value < this.minValue) {
211
- return this.minValue;
212
- }
213
- return parseFloat(value.toFixed(this.scale));
169
+ stepUp() {
170
+ this.value += this.step;
214
171
  }
215
- _format(value) {
216
- if (this.thousandSeparator) {
217
- this._maskService.thousandSeparator = this.separator;
218
- this._maskService.allowNegativeNumbers = true;
219
- const format = `separator.${this.scale}`;
220
- return this._maskService.applyMask(value?.toString(), format);
221
- }
222
- else {
223
- this._maskService.thousandSeparator = '';
224
- this._maskService.allowNegativeNumbers = true;
225
- const format = `separator.${this.scale}`;
226
- return this._maskService.applyMask(value?.toString(), format);
227
- }
172
+ stepDown() {
173
+ this.value -= this.step;
228
174
  }
229
- _onValueChanged(oldValue, newValue) {
230
- this.displayText = this._format(newValue);
175
+ decimalStepUp() {
176
+ this.value += this.decimalStep == 'auto' ? (1 / Math.pow(10, this.decimals)) : this.decimalStep;
231
177
  }
232
- _handleOnBlurEvent(e) {
233
- const input = e.target;
234
- this.value = this._fixValue(this.value);
235
- input.value = this._format(this.value);
236
- this._emitOnFocusEvent(e);
178
+ decimalStepDown() {
179
+ this.value -= this.decimalStep == 'auto' ? (1 / Math.pow(10, this.decimals)) : this.decimalStep;
180
+ ;
237
181
  }
238
182
  }
239
- AXNumberBoxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: AXNumberBoxComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.MaskApplierService }], target: i0.ɵɵFactoryTarget.Component });
240
- AXNumberBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: AXNumberBoxComponent, selector: "ax-number-box", inputs: { disabled: "disabled", readonly: "readonly", tabIndex: "tabIndex", size: "size", value: "value", placeholder: "placeholder", maxLength: "maxLength", allowNull: "allowNull", debounceTime: "debounceTime", name: "name", checked: "checked", separator: "separator", thousandSeparator: "thousandSeparator", step: "step", scale: "scale", decimalStep: "decimalStep", showSpinButtons: "showSpinButtons", minValue: "minValue", maxValue: "maxValue", displayText: "displayText" }, outputs: { valueChange: "valueChange", onValueChanged: "onValueChanged", onBlur: "onBlur", onFocus: "onFocus", displayTextChange: "displayTextChange" }, host: { properties: { "class": "this.__hostClass" }, classAttribute: "ax-number-box ax-editor-container" }, usesInheritance: true, ngImport: i0, template: "<ng-content select=\"ax-prefix\">\r\n</ng-content>\r\n<input class=\"ax-input\" type=\"text\" [attr.pattern]=\"'[\\d\\.]*'\" [attr.placeholder]=\"placeholder\" [attr.min]=\"minValue\"\r\n [attr.max]=\"maxValue\" [class.ax-state-disabled]=\"disabled\" [class.ax-state-readonly]=\"readonly\"\r\n [disabled]=\"disabled\" [readonly]=\"readonly\" [tabindex]=\"tabIndex\" [ngModel]=\"displayText\"\r\n (focus)=\"_emitOnFocusEvent($event)\" (blur)=\"_handleOnBlurEvent($event)\" (keydown)=\"_handleOnKeydownEvent($event)\"\r\n autocomplete=\"off\">\r\n<ax-button color=\"light\" look=\"blank\" (onClick)=\"clear()\" [tabIndex]=\"-1\"\r\n *ngIf=\"value && allowNull && !(disabled || readonly)\">\r\n <i class=\"ax-icon-x icon\"></i>\r\n</ax-button>\r\n<ng-content select=\"ax-suffix\">\r\n</ng-content>\r\n<ng-content select=\"ax-validation-rule\">\r\n</ng-content>", components: [{ type: i2.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "tabIndex", "size", "text", "submitBehavior", "cancelBehavior", "color", "look", "toggleable", "selected"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange"] }], directives: [{ type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i3.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
241
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: AXNumberBoxComponent, decorators: [{
183
+ AXNumberBoxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: AXNumberBoxComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
184
+ AXNumberBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.0", type: AXNumberBoxComponent, selector: "ax-number-box", inputs: { disabled: "disabled", readonly: "readonly", tabIndex: "tabIndex", size: "size", value: "value", placeholder: "placeholder", maxLength: "maxLength", allowNull: "allowNull", debounceTime: "debounceTime", name: "name", checked: "checked", thousandsSeparator: "thousandsSeparator", padDecimalZeros: "padDecimalZeros", step: "step", decimals: "decimals", decimalStep: "decimalStep", showSpinButtons: "showSpinButtons", minValue: "minValue", maxValue: "maxValue" }, outputs: { valueChange: "valueChange", onValueChanged: "onValueChanged", onBlur: "onBlur", onFocus: "onFocus" }, host: { classAttribute: "ax-editor-container" }, viewQueries: [{ propertyName: "_maskDirective", first: true, predicate: IMaskDirective, descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-content select=\"ax-prefix\">\r\n</ng-content>\r\n<input class=\"ax-input\" type=\"text\" \r\n [attr.placeholder]=\"placeholder\" \r\n [imask]=\"_maskObj\" \r\n [unmask]=\"'typed'\"\r\n [attr.min]=\"minValue\"\r\n [attr.max]=\"maxValue\" \r\n [class.ax-state-disabled]=\"disabled\" \r\n [class.ax-state-readonly]=\"readonly\"\r\n [disabled]=\"disabled\" \r\n [readonly]=\"readonly\" \r\n [tabindex]=\"tabIndex\" \r\n [(ngModel)]=\"value\"\r\n (focus)=\"_emitOnFocusEvent($event)\" (blur)=\"_emitOnFocusEvent($event)\" (keydown)=\"_handleOnKeydownEvent($event)\"\r\n autocomplete=\"off\">\r\n\r\n<div class=\"ax-number-box-arrows\" *ngIf=\"showSpinButtons && !(disabled || readonly)\">\r\n <ax-button color=\"light\" look=\"blank\" (onClick)=\"_handleUpDownClick($event,1)\">\r\n <ax-prefix>\r\n <ax-icon class=\"ax-ic-arrow-fill ax-rotate-90\">\r\n </ax-icon>\r\n </ax-prefix>\r\n </ax-button>\r\n <ax-button color=\"light\" look=\"blank\" (onClick)=\"_handleUpDownClick($event,-1)\">\r\n <ax-prefix>\r\n <ax-icon class=\"ax-ic-arrow-fill ax--rotate-90\">\r\n </ax-icon>\r\n </ax-prefix>\r\n </ax-button>\r\n</div>\r\n<ng-content select=\"ax-suffix\">\r\n</ng-content>\r\n<ng-content select=\"ax-validation-rule\">\r\n</ng-content>", components: [{ type: i1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "tabIndex", "size", "text", "submitBehavior", "cancelBehavior", "color", "look", "toggleable", "selected"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange"] }, { type: i2.AXDecoratorPrefixComponent, selector: "ax-prefix" }, { type: i3.AXIconComponent, selector: "ax-icon", inputs: ["icon"] }], directives: [{ type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i5.IMaskDirective, selector: "[imask]", inputs: ["imask", "unmask", "imaskElement"], outputs: ["accept", "complete"], exportAs: ["imask"] }, { type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
185
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: AXNumberBoxComponent, decorators: [{
242
186
  type: Component,
243
187
  args: [{ selector: 'ax-number-box', inputs: [
244
188
  'disabled',
@@ -253,17 +197,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
253
197
  'onBlur',
254
198
  'onFocus',
255
199
  ...TEXTBOX_OUTPUT,
256
- ], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: { class: 'ax-number-box ax-editor-container' }, template: "<ng-content select=\"ax-prefix\">\r\n</ng-content>\r\n<input class=\"ax-input\" type=\"text\" [attr.pattern]=\"'[\\d\\.]*'\" [attr.placeholder]=\"placeholder\" [attr.min]=\"minValue\"\r\n [attr.max]=\"maxValue\" [class.ax-state-disabled]=\"disabled\" [class.ax-state-readonly]=\"readonly\"\r\n [disabled]=\"disabled\" [readonly]=\"readonly\" [tabindex]=\"tabIndex\" [ngModel]=\"displayText\"\r\n (focus)=\"_emitOnFocusEvent($event)\" (blur)=\"_handleOnBlurEvent($event)\" (keydown)=\"_handleOnKeydownEvent($event)\"\r\n autocomplete=\"off\">\r\n<ax-button color=\"light\" look=\"blank\" (onClick)=\"clear()\" [tabIndex]=\"-1\"\r\n *ngIf=\"value && allowNull && !(disabled || readonly)\">\r\n <i class=\"ax-icon-x icon\"></i>\r\n</ax-button>\r\n<ng-content select=\"ax-suffix\">\r\n</ng-content>\r\n<ng-content select=\"ax-validation-rule\">\r\n</ng-content>" }]
257
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1.MaskApplierService }]; }, propDecorators: { __hostClass: [{
258
- type: HostBinding,
259
- args: ['class']
260
- }], separator: [{
200
+ ], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: { class: 'ax-editor-container' }, template: "<ng-content select=\"ax-prefix\">\r\n</ng-content>\r\n<input class=\"ax-input\" type=\"text\" \r\n [attr.placeholder]=\"placeholder\" \r\n [imask]=\"_maskObj\" \r\n [unmask]=\"'typed'\"\r\n [attr.min]=\"minValue\"\r\n [attr.max]=\"maxValue\" \r\n [class.ax-state-disabled]=\"disabled\" \r\n [class.ax-state-readonly]=\"readonly\"\r\n [disabled]=\"disabled\" \r\n [readonly]=\"readonly\" \r\n [tabindex]=\"tabIndex\" \r\n [(ngModel)]=\"value\"\r\n (focus)=\"_emitOnFocusEvent($event)\" (blur)=\"_emitOnFocusEvent($event)\" (keydown)=\"_handleOnKeydownEvent($event)\"\r\n autocomplete=\"off\">\r\n\r\n<div class=\"ax-number-box-arrows\" *ngIf=\"showSpinButtons && !(disabled || readonly)\">\r\n <ax-button color=\"light\" look=\"blank\" (onClick)=\"_handleUpDownClick($event,1)\">\r\n <ax-prefix>\r\n <ax-icon class=\"ax-ic-arrow-fill ax-rotate-90\">\r\n </ax-icon>\r\n </ax-prefix>\r\n </ax-button>\r\n <ax-button color=\"light\" look=\"blank\" (onClick)=\"_handleUpDownClick($event,-1)\">\r\n <ax-prefix>\r\n <ax-icon class=\"ax-ic-arrow-fill ax--rotate-90\">\r\n </ax-icon>\r\n </ax-prefix>\r\n </ax-button>\r\n</div>\r\n<ng-content select=\"ax-suffix\">\r\n</ng-content>\r\n<ng-content select=\"ax-validation-rule\">\r\n</ng-content>" }]
201
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { thousandsSeparator: [{
261
202
  type: Input
262
- }], thousandSeparator: [{
203
+ }], padDecimalZeros: [{
263
204
  type: Input
264
205
  }], step: [{
265
206
  type: Input
266
- }], scale: [{
207
+ }], decimals: [{
267
208
  type: Input
268
209
  }], decimalStep: [{
269
210
  type: Input
@@ -273,9 +214,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
273
214
  type: Input
274
215
  }], maxValue: [{
275
216
  type: Input
276
- }], displayTextChange: [{
277
- type: Output
278
- }], displayText: [{
279
- type: Input
217
+ }], _maskDirective: [{
218
+ type: ViewChild,
219
+ args: [IMaskDirective]
280
220
  }] } });
281
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLWJveC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY29yZXgvY29tcG9uZW50cy9zcmMvbGliL251bWJlci1ib3gvbnVtYmVyLWJveC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY29yZXgvY29tcG9uZW50cy9zcmMvbGliL251bWJlci1ib3gvbnVtYmVyLWJveC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULGlCQUFpQixFQUNqQix1QkFBdUIsRUFHdkIsS0FBSyxFQUNMLE1BQU0sRUFDTixZQUFZLEVBQ1osV0FBVyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUM3QyxPQUFPLEVBQ0wsY0FBYyxFQUNkLGNBQWMsR0FDZixNQUFNLG1DQUFtQyxDQUFDOzs7Ozs7QUFFM0M7Ozs7R0FJRztBQXVCSCxNQUFNLE9BQU8sb0JBQXFCLFNBQVEsa0JBQWtCO0lBdUYxRDs7TUFFRTtJQUNGLFlBQ0UsVUFBc0IsRUFDZCxHQUFzQixFQUN0QixZQUFnQztRQUV4QyxLQUFLLENBQUMsVUFBVSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBSGYsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFDdEIsaUJBQVksR0FBWixZQUFZLENBQW9CO1FBdEYxQzs7VUFFRTtRQUVGLGNBQVMsR0FBVyxHQUFHLENBQUM7UUFFdkI7O1NBRUM7UUFFRixzQkFBaUIsR0FBWSxLQUFLLENBQUM7UUFFbEM7O1NBRUM7UUFFRixTQUFJLEdBQVcsQ0FBQyxDQUFDO1FBRWpCOztVQUVFO1FBRUYsVUFBSyxHQUFXLENBQUMsQ0FBQztRQUVsQjs7VUFFRTtRQUVGLGdCQUFXLEdBQVcsR0FBRyxDQUFDO1FBRTFCOztVQUVFO1FBRUYsb0JBQWUsR0FBWSxJ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LGVBQWU7c0JBRGQsS0FBSztnQkFTSyxRQUFRO3NCQURsQixLQUFLO2dCQWNLLFFBQVE7c0JBRGxCLEtBQUs7Z0JBU0MsaUJBQWlCO3NCQUR2QixNQUFNO2dCQVFJLFdBQVc7c0JBRHJCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBWaWV3RW5jYXBzdWxhdGlvbixcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBFbGVtZW50UmVmLFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIElucHV0LFxyXG4gIE91dHB1dCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSG9zdEJpbmRpbmcsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1hc2tBcHBsaWVyU2VydmljZSB9IGZyb20gJ25neC1tYXNrJztcclxuaW1wb3J0IHsgQVhCYXNlVGV4dEJveE1peGluIH0gZnJvbSAnLi4vYmFzZSc7XHJcbmltcG9ydCB7XHJcbiAgVEVYVEJPWF9JTlBVVFMsXHJcbiAgVEVYVEJPWF9PVVRQVVQsXHJcbn0gZnJvbSAnLi4vYmFzZS9taXhpbi90ZXh0Ym94LW1peGluLmNsYXNzJztcclxuXHJcbi8qKlxyXG4gKiBUaGUgTnVtYmVyQm94IGlzIGEgY29tcG9uZW50IHdoaWNoIGRldGVjdHMgdXNlciBpbnRlcmFjdGlvbiBhbmQgdHJpZ2dlcnMgYSBjb3JyZXNwb25kaW5nIGV2ZW50XHJcbiAqXHJcbiAqIEBjYXRlZ29yeSBDb21wb25lbnRzXHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2F4LW51bWJlci1ib3gnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9udW1iZXItYm94LmNvbXBvbmVudC5odG1sJyxcclxuICBpbnB1dHM6IFtcclxuICAgICdkaXNhYmxlZCcsXHJcbiAgICAncmVhZG9ubHknLFxyXG4gICAgJ3RhYkluZGV4JyxcclxuICAgICdzaXplJyxcclxuICAgICd2YWx1ZScsXHJcbiAgICAuLi5URVhUQk9YX0lOUFVUUyxcclxuICBdLFxyXG4gIG91dHB1dHM6IFtcclxuICAgICd2YWx1ZUNoYW5nZScsXHJcbiAgICAnb25WYWx1ZUNoYW5nZWQnLFxyXG4gICAgJ29uQmx1cicsXHJcbiAgICAnb25Gb2N1cycsXHJcbiAgICAuLi5URVhUQk9YX09VVFBVVCxcclxuICBdLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgaG9zdDogeyBjbGFzczogJ2F4LW51bWJlci1ib3ggYXgtZWRpdG9yLWNvbnRhaW5lcicgfSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEFYTnVtYmVyQm94Q29tcG9uZW50IGV4dGVuZHMgQVhCYXNlVGV4dEJveE1peGluIHtcclxuXHJcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXHJcbiAgcHJpdmF0ZSBnZXQgX19ob3N0Q2xhc3MoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBgJHt0aGlzLmNzc0NsYXNzfSBheC0ke3RoaXMuc2l6ZX1gO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgKiAgQSBjaGFyYWN0ZXIgdmFsdWUgdGhhdCBzcGVjaWZpZXMgdGhlIHNlcGFyYXRvciBjaGFyYWN0ZXIuXHJcbiAgKi9cclxuICBASW5wdXQoKVxyXG4gIHNlcGFyYXRvcjogc3RyaW5nID0gJywnO1xyXG5cclxuICAgLyoqXHJcbiAgKiAgU3BlY2lmaWVzIHdoZXRoZXIgdGhlIFNlcGFyYXRvciBjaGFyYWN0ZXIgd2lsbCBiZSBkaXNwbGF5ZWQgb3Igbm90XHJcbiAgKi9cclxuICBASW5wdXQoKVxyXG4gIHRob3VzYW5kU2VwYXJhdG9yOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAvKipcclxuICAqICBTcGVjaWZpZXMgdGhlIHZhbHVlIHRoYXQgaXMgdXNlZCB0byBpbmNyZW1lbnQgb3IgZGVjcmVtZW50IHRoZSAqKkludGVnZXIqKiBwYXJ0IG9mIG51bWJlclxyXG4gICovXHJcbiAgQElucHV0KClcclxuICBzdGVwOiBudW1iZXIgPSAxO1xyXG5cclxuICAvKipcclxuICAqICBTcGVjaWZpZXMgdGhlIG51bWJlciBvZiBkZWNpbWFscyB0aGF0IHRoZSB1c2VyIGNhbiBlbnRlclxyXG4gICovXHJcbiAgQElucHV0KClcclxuICBzY2FsZTogbnVtYmVyID0gMDtcclxuXHJcbiAgLyoqXHJcbiAgKiAgU3BlY2lmaWVzIHRoZSB2YWx1ZSB0aGF0IGlzIHVzZWQgdG8gaW5jcmVtZW50IG9yIGRlY3JlbWVudCB0aGUgKipEZWNpYW1sKiogcGFydCBvZiBudW1iZXJcclxuICAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgZGVjaW1hbFN0ZXA6IG51bWJlciA9IDAuMTtcclxuXHJcbiAgLyoqXHJcbiAgKiAgU3BlY2lmaWVzIHdoZXRoZXIgdGhlIFVwIGFuZCBEb3duIHNwaW4gYnV0dG9ucyB3aWxsIGJlIHJlbmRlcmVkIG9yIG5vdFxyXG4gICovXHJcbiAgQElucHV0KClcclxuICBzaG93U3BpbkJ1dHRvbnM6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICBwcml2YXRlIF9taW5WYWx1ZTogbnVtYmVyID0gTnVtYmVyLk1JTl9WQUxVRTtcclxuXHJcbiAgLyoqXHJcbiAgKiAgU3BlY2lmaWVzIHRoZSBzbWFsbGVzdCB2YWx1ZSB0aGF0IGlzIHZhbGlkXHJcbiAgKi9cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBnZXQgbWluVmFsdWUoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLl9taW5WYWx1ZTtcclxuICB9XHJcbiAgcHVibGljIHNldCBtaW5WYWx1ZSh2OiBudW1iZXIpIHtcclxuICAgIHRoaXMuX21pblZhbHVlID0gdiA/IE51bWJlcih2KSA6IE51bWJlci5NSU5fVkFMVUU7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9tYXhWYWx1ZTogbnVtYmVyID0gTnVtYmVyLk1BWF9WQUxVRTtcclxuXHJcbiAgLyoqXHJcbiAgKiAgU3BlY2lmaWVzIHRoZSBncmVhdGVzdCB2YWx1ZSB0aGF0IGlzIHZhbGlkXHJcbiAgKi9cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBnZXQgbWF4VmFsdWUoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLl9tYXhWYWx1ZTtcclxuICB9XHJcbiAgcHVibGljIHNldCBtYXhWYWx1ZSh2OiBudW1iZXIpIHtcclxuICAgIHRoaXMuX21heFZhbHVlID0gdiA/IE51bWJlcih2KSA6IE51bWJlci5NQVhfVkFMVUU7XHJcbiAgfVxyXG5cclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgZGlzcGxheVRleHRDaGFuZ2U6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcbiAgcHJpdmF0ZSBfZGlzcGxheVRleHQ6IHN0cmluZztcclxuXHJcbiAgLyoqXHJcbiAgKiAgVGhlIGZvcm1hdHRlZCBzdHJpbmcgd2hpY2ggaXMgZGlzcGxheWluZyBpbiB0aGUgbnVtYmVyYm94XHJcbiAgKi9cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBnZXQgZGlzcGxheVRleHQoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl9kaXNwbGF5VGV4dDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXQgZGlzcGxheVRleHQodjogc3RyaW5nKSB7XHJcbiAgICB0aGlzLl9kaXNwbGF5VGV4dCA9IHY7XHJcbiAgICB0aGlzLmRpc3BsYXlUZXh0Q2hhbmdlLmVtaXQodik7XHJcbiAgfVxyXG5cclxuXHJcbiAgLyoqXHJcbiAgKiAgQGlnbm9yZVxyXG4gICovXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxyXG4gICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgcHJpdmF0ZSBfbWFza1NlcnZpY2U6IE1hc2tBcHBsaWVyU2VydmljZVxyXG4gICkge1xyXG4gICAgc3VwZXIoZWxlbWVudFJlZiwgY2RyKTtcclxuICB9XHJcblxyXG4gIF9oYW5kbGVPbktleWRvd25FdmVudChlOiBLZXlib2FyZEV2ZW50KSB7XHJcbiAgICBjb25zdCBpZ25vcmUgPSAoKSA9PiB7XHJcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIH07XHJcbiAgICBjb25zdCB0b051bSA9ICh2YWw6IHN0cmluZykgPT4ge1xyXG4gICAgICByZXR1cm4gTnVtYmVyKHZhbC5yZXBsYWNlKC9bXjAtOS4tXSsvZywgJycpKTtcclxuICAgIH07XHJcbiAgICBjb25zdCBudW1zOiBzdHJpbmdbXSA9IEFycmF5KDEwKVxyXG4gICAgICAuZmlsbCgwKVxyXG4gICAgICAubWFwKCh2LCBpKSA9PiBpLnRvU3RyaW5nKCkpO1xyXG4gICAgY29uc3QgY2hhcnM6IHN0cmluZ1tdID0gW1xyXG4gICAgICAnLicsXHJcbiAgICAgICctJyxcclxuICAgICAgJ0JhY2tzcGFjZScsXHJcbiAgICAgICdBcnJvd0Rvd24nLFxyXG4gICAgICAnQXJyb3dVcCcsXHJcbiAgICAgICdBcnJvd1JpZ2h0JyxcclxuICAgICAgJ0Fycm93TGVmdCcsXHJcbiAgICAgICdUYWInLFxyXG4gICAgICAnRW50ZXInLFxyXG4gICAgXTtcclxuICAgIGNvbnN0IGlucHV0ID0gZS50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudDtcclxuICAgIGNvbnN0IGtleSA9IGUua2V5O1xyXG4gICAgY29uc3QgdmFsU3RyID0gaW5wdXQudmFsdWU7XHJcbiAgICBjb25zdCB2YWwgPSB0b051bSh2YWxTdHIpO1xyXG4gICAgY29uc3QgZGVjaW1hbFBvaW50SW5kZXggPSB2YWxTdHIuaW5kZXhPZignLicpO1xyXG4gICAgY29uc3Qgc2VsZWN0aW9uU3RhcnQgPSBpbnB1dC5zZWxlY3Rpb25TdGFydDtcclxuICAgIGNvbnN0IHNlbGVjdGlvbkVuZCA9IGlucHV0LnNlbGVjdGlvbkVuZDtcclxuICAgIC8vXHJcblxyXG4gICAgLy9cclxuICAgIGlmICghWy4uLm51bXMsIC4uLmNoYXJzXS5pbmNsdWRlcyhrZXkpKSB7XHJcbiAgICAgIGlnbm9yZSgpO1xyXG4gICAgfVxyXG4gICAgaWYgKGUua2V5ID09PSAnQXJyb3dEb3duJyB8fCBlLmtleSA9PT0gJ0Fycm93VXAnKSB7XHJcbiAgICAgIGNvbnN0IHN0ZXBWYWwgPVxyXG4gICAgICAgIGRlY2ltYWxQb2ludEluZGV4ID4gLTFcclxuICAgICAgICAgID8gc2VsZWN0aW9uU3RhcnQgPj0gZGVjaW1hbFBvaW50SW5kZXhcclxuICAgICAgICAgICAgPyB0aGlzLmRlY2ltYWxTdGVwXHJcbiAgICAgICAgICAgIDogdGhpcy5zdGVwXHJcbiAgICAgICAgICA6IHRoaXMuc3RlcDtcclxuICAgICAgaWYgKGUua2V5ID09PSAnQXJyb3dEb3duJykge1xyXG4gICAgICAgIHRoaXMudmFsdWUgPSB2YWwgLSBzdGVwVmFsO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMudmFsdWUgPSB2YWwgKyBzdGVwVmFsO1xyXG4gICAgICB9XHJcbiAgICAgIGlnbm9yZSgpO1xyXG4gICAgICBpbnB1dC5zZXRTZWxlY3Rpb25SYW5nZShzZWxlY3Rpb25TdGFydCwgc2VsZWN0aW9uU3RhcnQpO1xyXG4gICAgfSBlbHNlIGlmIChlLmtleSA9PSAnQmFja3NwYWNlJykge1xyXG4gICAgICBjb25zdCBjaHIgPSB2YWxTdHIuc3Vic3RyKHNlbGVjdGlvblN0YXJ0IC0gMSwgMSk7XHJcbiAgICAgIGlmICghbnVtcy5pbmNsdWRlcyhjaHIpKSB7XHJcbiAgICAgICAgaWdub3JlKCk7XHJcbiAgICAgICAgaW5wdXQuc2V0U2VsZWN0aW9uUmFuZ2Uoc2VsZWN0aW9uU3RhcnQgLSAxLCBzZWxlY3Rpb25TdGFydCAtIDEpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNvbnN0IG5ld1ZhbCA9IHRvTnVtKFxyXG4gICAgICAgICAgdmFsU3RyLnN1YnN0cigwLCBzZWxlY3Rpb25TdGFydCAtIDEpICsgdmFsU3RyLnN1YnN0cihzZWxlY3Rpb25FbmQpXHJcbiAgICAgICAgKTtcclxuICAgICAgICBpbnB1dC52YWx1ZSA9IHRoaXMuX2Zvcm1hdChuZXdWYWwpO1xyXG4gICAgICAgIHRoaXMudmFsdWUgPSBuZXdWYWw7XHJcbiAgICAgICAgaWdub3JlKCk7XHJcbiAgICAgICAgaWYgKG5ld1ZhbCA9PSAwKSB7XHJcbiAgICAgICAgICBpbnB1dC5zZXRTZWxlY3Rpb25SYW5nZSgxLCAxKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgaW5wdXQuc2V0U2VsZWN0aW9uUmFuZ2Uoc2VsZWN0aW9uU3RhcnQgLSAxLCBzZWxlY3Rpb25TdGFydCAtIDEpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSBlbHNlIGlmIChlLmtleSA9PSAnLicpIHtcclxuICAgICAgaWYgKCF0aGlzLnNjYWxlKSB7XHJcbiAgICAgICAgaWdub3JlKCk7XHJcbiAgICAgIH0gZWxzZSBpZiAoZGVjaW1hbFBvaW50SW5kZXggPiAtMSkge1xyXG4gICAgICAgIGlucHV0LnNldFNlbGVjdGlvblJhbmdlKGRlY2ltYWxQb2ludEluZGV4ICsgMSwgZGVjaW1hbFBvaW50SW5kZXggKyAxKTtcclxuICAgICAgICBpZ25vcmUoKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBpZiAoaW5wdXQuc2VsZWN0aW9uRW5kICE9IHZhbFN0ci5sZW5ndGgpIHtcclxuICAgICAgICAgIGlucHV0LnNldFNlbGVjdGlvblJhbmdlKHZhbFN0ci5sZW5ndGgsIHZhbFN0ci5sZW5ndGgpO1xyXG4gICAgICAgICAgaWdub3JlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9IGVsc2UgaWYgKGUua2V5ID09ICctJykge1xyXG4gICAgICBjb25zdCBpbmRleCA9IHZhbFN0ci5pbmRleE9mKCctJyk7XHJcbiAgICAgIGlmIChpbmRleCA+IC0xKSB7XHJcbiAgICAgICAgaWdub3JlKCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy52YWx1ZSA9IE1hdGguYWJzKHRoaXMudmFsdWUpICogLTE7XHJcbiAgICAgICAgaW5wdXQuc2V0U2VsZWN0aW9uUmFuZ2UoaW5kZXggKyAxLCBpbmRleCArIDEpO1xyXG4gICAgICAgIGlnbm9yZSgpO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2UgaWYgKG51bXMuaW5jbHVkZXMoa2V5KSkge1xyXG4gICAgICBjb25zdCBuZXdWYWwgPSB0b051bShcclxuICAgICAgICB2YWxTdHIuc3Vic3RyKDAsIHNlbGVjdGlvblN0YXJ0KSArIGtleSArIHZhbFN0ci5zdWJzdHIoc2VsZWN0aW9uRW5kKVxyXG4gICAgICApO1xyXG4gICAgICBpZiAobmV3VmFsIDwgdGhpcy5taW5WYWx1ZSkge1xyXG4gICAgICAgIC8vVE9ETyA6IGhpZ2hsaWdodCBjb3JyZWN0IG51bWJlclxyXG4gICAgICAgIC8vaW5wdXQudmFsdWUgPSB0aGlzLl9mb3JtYXQodGhpcy5taW5WYWx1ZSk7XHJcbiAgICAgICAgLy9jb25zdCBkaWZmID0gdGhpcy5taW5WYWx1ZSAtIHZhbDtcclxuICAgICAgICAvL3RoaXMudmFsdWUgPSB0aGlzLm1pblZhbHVlO1xyXG4gICAgICAgIC8vaWdub3JlKCk7XHJcbiAgICAgICAgLy8gc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgLy8gICAgIGlucHV0LnNldFNlbGVjdGlvblJhbmdlKGlucHV0LnNlbGVjdGlvblN0YXJ0ICsgMSwgdGhpcy5taW5WYWx1ZS50b1N0cmluZygpLmxlbmd0aCk7XHJcbiAgICAgICAgLy8gfSwgNTApO1xyXG4gICAgICB9IGVsc2UgaWYgKG5ld1ZhbCA+IHRoaXMubWF4VmFsdWUpIHtcclxuICAgICAgICBpbnB1dC52YWx1ZSA9IHRoaXMuX2Zvcm1hdCh0aGlzLm1heFZhbHVlKTtcclxuICAgICAgICB0aGlzLnZhbHVlID0gdGhpcy5tYXhWYWx1ZTtcclxuICAgICAgICBpZ25vcmUoKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBpbnB1dC52YWx1ZSA9IHRoaXMuX2Zvcm1hdChuZXdWYWwpO1xyXG4gICAgICAgIHRoaXMudmFsdWUgPSBuZXdWYWw7XHJcbiAgICAgICAgaWdub3JlKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHN1cGVyLl9lbWl0T25LZXlkb3duRXZlbnQoZSk7XHJcbiAgfVxyXG5cclxuICBfb25WYWx1ZUNoYW5naW5nKHZhbHVlOiBudW1iZXIpIHtcclxuICAgIHJldHVybiB0aGlzLl9maXhWYWx1ZSh2YWx1ZSk7XHJcbiAgfVxyXG5cclxuICBfZml4VmFsdWUodmFsdWU6IG51bWJlcik6IG51bWJlciB7XHJcbiAgICBpZiAodmFsdWUgPT0gbnVsbCB8fCB2YWx1ZSA9PSB1bmRlZmluZWQpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuYWxsb3dOdWxsID8gbnVsbCA6IHRoaXMubWluVmFsdWU7XHJcbiAgICB9IGVsc2UgaWYgKHZhbHVlID4gdGhpcy5tYXhWYWx1ZSkge1xyXG4gICAgICByZXR1cm4gdGhpcy5tYXhWYWx1ZTtcclxuICAgIH0gZWxzZSBpZiAodmFsdWUgPCB0aGlzLm1pblZhbHVlKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLm1pblZhbHVlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHBhcnNlRmxvYXQodmFsdWUudG9GaXhlZCh0aGlzLnNjYWxlKSk7XHJcbiAgfVxyXG5cclxuICBfZm9ybWF0KHZhbHVlOiBudW1iZXIpOiBzdHJpbmcge1xyXG4gICAgaWYgKHRoaXMudGhvdXNhbmRTZXBhcmF0b3IpIHtcclxuICAgICAgdGhpcy5fbWFza1NlcnZpY2UudGhvdXNhbmRTZXBhcmF0b3IgPSB0aGlzLnNlcGFyYXRvcjtcclxuICAgICAgdGhpcy5fbWFza1NlcnZpY2UuYWxsb3dOZWdhdGl2ZU51bWJlcnMgPSB0cnVlO1xyXG4gICAgICBjb25zdCBmb3JtYXQgPSBgc2VwYXJhdG9yLiR7dGhpcy5zY2FsZX1gO1xyXG4gICAgICByZXR1cm4gdGhpcy5fbWFza1NlcnZpY2UuYXBwbHlNYXNrKHZhbHVlPy50b1N0cmluZygpLCBmb3JtYXQpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5fbWFza1NlcnZpY2UudGhvdXNhbmRTZXBhcmF0b3IgPSAnJztcclxuICAgICAgdGhpcy5fbWFza1NlcnZpY2UuYWxsb3dOZWdhdGl2ZU51bWJlcnMgPSB0cnVlO1xyXG4gICAgICBjb25zdCBmb3JtYXQgPSBgc2VwYXJhdG9yLiR7dGhpcy5zY2FsZX1gO1xyXG4gICAgICByZXR1cm4gdGhpcy5fbWFza1NlcnZpY2UuYXBwbHlNYXNrKHZhbHVlPy50b1N0cmluZygpLCBmb3JtYXQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgX29uVmFsdWVDaGFuZ2VkKG9sZFZhbHVlOiBhbnksIG5ld1ZhbHVlOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMuZGlzcGxheVRleHQgPSB0aGlzLl9mb3JtYXQobmV3VmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgX2hhbmRsZU9uQmx1ckV2ZW50KGU6IEZvY3VzRXZlbnQpIHtcclxuICAgIGNvbnN0IGlucHV0ID0gZS50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudDtcclxuICAgIHRoaXMudmFsdWUgPSB0aGlzLl9maXhWYWx1ZSh0aGlzLnZhbHVlKTtcclxuICAgIGlucHV0LnZhbHVlID0gdGhpcy5fZm9ybWF0KHRoaXMudmFsdWUpO1xyXG4gICAgdGhpcy5fZW1pdE9uRm9jdXNFdmVudChlKTtcclxuICB9XHJcbn1cclxuIiwiPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtcHJlZml4XCI+XHJcbjwvbmctY29udGVudD5cclxuPGlucHV0IGNsYXNzPVwiYXgtaW5wdXRcIiB0eXBlPVwidGV4dFwiIFthdHRyLnBhdHRlcm5dPVwiJ1tcXGRcXC5dKidcIiBbYXR0ci5wbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiIFthdHRyLm1pbl09XCJtaW5WYWx1ZVwiXHJcbiAgICBbYXR0ci5tYXhdPVwibWF4VmFsdWVcIiBbY2xhc3MuYXgtc3RhdGUtZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiBbY2xhc3MuYXgtc3RhdGUtcmVhZG9ubHldPVwicmVhZG9ubHlcIlxyXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCIgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCIgW3RhYmluZGV4XT1cInRhYkluZGV4XCIgW25nTW9kZWxdPVwiZGlzcGxheVRleHRcIlxyXG4gICAgKGZvY3VzKT1cIl9lbWl0T25Gb2N1c0V2ZW50KCRldmVudClcIiAoYmx1cik9XCJfaGFuZGxlT25CbHVyRXZlbnQoJGV2ZW50KVwiIChrZXlkb3duKT1cIl9oYW5kbGVPbktleWRvd25FdmVudCgkZXZlbnQpXCJcclxuICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiPlxyXG48YXgtYnV0dG9uIGNvbG9yPVwibGlnaHRcIiBsb29rPVwiYmxhbmtcIiAob25DbGljayk9XCJjbGVhcigpXCIgW3RhYkluZGV4XT1cIi0xXCJcclxuICAgICpuZ0lmPVwidmFsdWUgJiYgYWxsb3dOdWxsICYmICEoZGlzYWJsZWQgfHwgcmVhZG9ubHkpXCI+XHJcbiAgICA8aSBjbGFzcz1cImF4LWljb24teCBpY29uXCI+PC9pPlxyXG48L2F4LWJ1dHRvbj5cclxuPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtc3VmZml4XCI+XHJcbjwvbmctY29udGVudD5cclxuPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtdmFsaWRhdGlvbi1ydWxlXCI+XHJcbjwvbmctY29udGVudD4iXX0=
221
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLWJveC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY29yZXgvY29tcG9uZW50cy9zcmMvbGliL251bWJlci1ib3gvbnVtYmVyLWJveC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY29yZXgvY29tcG9uZW50cy9zcmMvbGliL251bWJlci1ib3gvbnVtYmVyLWJveC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULGlCQUFpQixFQUNqQix1QkFBdUIsRUFHdkIsS0FBSyxFQUdMLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDMUIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvQyxPQUFPLEVBQUUsa0JBQWtCLEVBQTBDLE1BQU0sU0FBUyxDQUFDO0FBQ3JGLE9BQU8sRUFDTCxjQUFjLEVBQ2QsY0FBYyxHQUNmLE1BQU0sbUNBQW1DLENBQUM7QUFDM0MsT0FBTyxDQUFDLE1BQU0sUUFBUSxDQUFDOzs7Ozs7OztBQUV2Qjs7OztHQUlHO0FBdUJILE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxrQkFBa0I7SUFrSDFEOztNQUVFO0lBQ0YsWUFDRSxVQUFzQixFQUNkLEdBQXNCO1FBRTlCLEtBQUssQ0FBQyxVQUFVLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFGZixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQW5HeEIscUJBQWdCLEdBQVksS0FBSyxDQUFDO1FBa0IxQzs7U0FFQztRQUVELFNBQUksR0FBVyxDQUFDLENBQUM7UUFJVCxjQUFTLEdBQVcsQ0FBQyxDQUFDO1FBZ0I5Qjs7VUFFRTtRQUVGLGdCQUFXLEdBQW9CLE1BQU0sQ0FBQztRQUV0Qzs7VUFFRTtRQUVGLG9CQUFlLEdBQVksSUFBSSxDQUFDO1FB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XHJcbiAgQ29tcG9uZW50LFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgSW5wdXQsXHJcbiAgT3V0cHV0LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBWaWV3Q2hpbGQsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCBJTWFzayBmcm9tICdpbWFzayc7XHJcbmltcG9ydCB7IElNYXNrRGlyZWN0aXZlIH0gZnJvbSAnYW5ndWxhci1pbWFzayc7XHJcbmltcG9ydCB7IEFYQmFzZVRleHRCb3hNaXhpbiwgQVhDbGlja0V2ZW50LCBBWENvbXBvbmVudE9wdGlvbkNoYW5nZWQgfSBmcm9tICcuLi9iYXNlJztcclxuaW1wb3J0IHtcclxuICBURVhUQk9YX0lOUFVUUyxcclxuICBURVhUQk9YX09VVFBVVCxcclxufSBmcm9tICcuLi9iYXNlL21peGluL3RleHRib3gtbWl4aW4uY2xhc3MnO1xyXG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xyXG5cclxuLyoqXHJcbiAqIFRoZSBOdW1iZXJCb3ggaXMgYSBjb21wb25lbnQgd2hpY2ggZGV0ZWN0cyB1c2VyIGludGVyYWN0aW9uIGFuZCB0cmlnZ2VycyBhIGNvcnJlc3BvbmRpbmcgZXZlbnRcclxuICpcclxuICogQGNhdGVnb3J5IENvbXBvbmVudHNcclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXgtbnVtYmVyLWJveCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL251bWJlci1ib3guY29tcG9uZW50Lmh0bWwnLFxyXG4gIGlucHV0czogW1xyXG4gICAgJ2Rpc2FibGVkJyxcclxuICAgICdyZWFkb25seScsXHJcbiAgICAndGFiSW5kZXgnLFxyXG4gICAgJ3NpemUnLFxyXG4gICAgJ3ZhbHVlJyxcclxuICAgIC4uLlRFWFRCT1hfSU5QVVRTLFxyXG4gIF0sXHJcbiAgb3V0cHV0czogW1xyXG4gICAgJ3ZhbHVlQ2hhbmdlJyxcclxuICAgICdvblZhbHVlQ2hhbmdlZCcsXHJcbiAgICAnb25CbHVyJyxcclxuICAgICdvbkZvY3VzJyxcclxuICAgIC4uLlRFWFRCT1hfT1VUUFVULFxyXG4gIF0sXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBob3N0OiB7IGNsYXNzOiAnYXgtZWRpdG9yLWNvbnRhaW5lcicgfSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEFYTnVtYmVyQm94Q29tcG9uZW50IGV4dGVuZHMgQVhCYXNlVGV4dEJveE1peGluIHtcclxuXHJcblxyXG5cclxuXHJcbiAgcHJpdmF0ZSBfdGhvdXNhbmRzU2VwYXJhdG9yOiBzdHJpbmc7XHJcbiAgLyoqXHJcbiAgKiAgQSBjaGFyYWN0ZXIgdmFsdWUgdGhhdCBzcGVjaWZpZXMgdGhlIHNlcGFyYXRvciBjaGFyYWN0ZXIuXHJcbiAgKi9cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBnZXQgdGhvdXNhbmRzU2VwYXJhdG9yKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fdGhvdXNhbmRzU2VwYXJhdG9yO1xyXG4gIH1cclxuICBwdWJsaWMgc2V0IHRob3VzYW5kc1NlcGFyYXRvcih2OiBzdHJpbmcpIHtcclxuICAgIHRoaXMuX3NldE9wdGlvbih7XHJcbiAgICAgIG5hbWU6IFwidGhvdXNhbmRzU2VwYXJhdG9yXCIsXHJcbiAgICAgIHZhbHVlOiB2ID8/ICcnLFxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3BhZERlY2ltYWxaZXJvczogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIC8qKlxyXG4gICogIEEgY2hhcmFjdGVyIHZhbHVlIHRoYXQgc3BlY2lmaWVzIHRoZSBzZXBhcmF0b3IgY2hhcmFjdGVyLlxyXG4gICovXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgZ2V0IHBhZERlY2ltYWxaZXJvcygpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9wYWREZWNpbWFsWmVyb3M7XHJcbiAgfVxyXG4gIHB1YmxpYyBzZXQgcGFkRGVjaW1hbFplcm9zKHY6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuX3NldE9wdGlvbih7XHJcbiAgICAgIG5hbWU6IFwicGFkRGVjaW1hbFplcm9zXCIsXHJcbiAgICAgIHZhbHVlOiB2LFxyXG4gICAgfSlcclxuICB9XHJcblxyXG5cclxuXHJcblxyXG4gIC8qKlxyXG4gKiAgU3BlY2lmaWVzIHRoZSB2YWx1ZSB0aGF0IGlzIHVzZWQgdG8gaW5jcmVtZW50IG9yIGRlY3JlbWVudCB0aGUgKipJbnRlZ2VyKiogcGFydCBvZiBudW1iZXJcclxuICovXHJcbiAgQElucHV0KClcclxuICBzdGVwOiBudW1iZXIgPSAxO1xyXG5cclxuXHJcblxyXG4gIHByaXZhdGUgX2RlY2ltYWxzOiBudW1iZXIgPSAwO1xyXG4gIC8qKlxyXG4gICogIFNwZWNpZmllcyB0aGUgbnVtYmVyIG9mIGRlY2ltYWxzIHRoYXQgdGhlIHVzZXIgY2FuIGVudGVyXHJcbiAgKi9cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBnZXQgZGVjaW1hbHMoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLl9kZWNpbWFscztcclxuICB9XHJcbiAgcHVibGljIHNldCBkZWNpbWFscyh2OiBudW1iZXIpIHtcclxuICAgIHRoaXMuX3NldE9wdGlvbih7XHJcbiAgICAgIG5hbWU6IFwiZGVjaW1hbHNcIixcclxuICAgICAgdmFsdWU6IHYgPz8gMCxcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuXHJcbiAgLyoqXHJcbiAgKiAgU3BlY2lmaWVzIHRoZSB2YWx1ZSB0aGF0IGlzIHVzZWQgdG8gaW5jcmVtZW50IG9yIGRlY3JlbWVudCB0aGUgKipEZWNpYW1sKiogcGFydCBvZiBudW1iZXJcclxuICAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgZGVjaW1hbFN0ZXA6IG51bWJlciB8ICdhdXRvJyA9ICdhdXRvJztcclxuXHJcbiAgLyoqXHJcbiAgKiAgU3BlY2lmaWVzIHdoZXRoZXIgdGhlIFVwIGFuZCBEb3duIHNwaW4gYnV0dG9ucyB3aWxsIGJlIHJlbmRlcmVkIG9yIG5vdFxyXG4gICovXHJcbiAgQElucHV0KClcclxuICBzaG93U3BpbkJ1dHRvbnM6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICBwcml2YXRlIF9taW5WYWx1ZTogbnVtYmVyID0gTnVtYmVyLk1JTl9TQUZFX0lOVEVHRVI7XHJcbiAgLyoqXHJcbiAgKiAgU3BlY2lmaWVzIHRoZSBzbWFsbGVzdCB2YWx1ZSB0aGF0IGlzIHZhbGlkXHJcbiAgKi9cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBnZXQgbWluVmFsdWUoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLl9taW5WYWx1ZTtcclxuICB9XHJcbiAgcHVibGljIHNldCBtaW5WYWx1ZSh2OiBudW1iZXIpIHtcclxuICAgIHRoaXMuX3NldE9wdGlvbih7XHJcbiAgICAgIG5hbWU6IFwibWluVmFsdWVcIixcclxuICAgICAgdmFsdWU6IHYgIT0gbnVsbCA/IE51bWJlcih2KSA6IE51bWJlci5NSU5fU0FGRV9JTlRFR0VSLFxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX21heFZhbHVlOiBudW1iZXIgPSBOdW1iZXIuTUFYX1NBRkVfSU5URUdFUjtcclxuICAvKipcclxuICAqICBTcGVjaWZpZXMgdGhlIGdyZWF0ZXN0IHZhbHVlIHRoYXQgaXMgdmFsaWRcclxuICAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGdldCBtYXhWYWx1ZSgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuX21heFZhbHVlO1xyXG4gIH1cclxuICBwdWJsaWMgc2V0IG1heFZhbHVlKHY6IG51bWJlcikge1xyXG4gICAgdGhpcy5fc2V0T3B0aW9uKHtcclxuICAgICAgbmFtZTogXCJtYXhWYWx1ZVwiLFxyXG4gICAgICB2YWx1ZTogdiAhPSBudWxsID8gTnVtYmVyKHYpIDogTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIsXHJcbiAgICB9KVxyXG4gIH1cclxuXHJcblxyXG4gIC8qKlxyXG4gICogIEBpZ25vcmVcclxuICAqL1xyXG4gIF9tYXNrT2JqOiBJTWFzay5NYXNrZWROdW1iZXJcclxuXHJcblxyXG4gIEBWaWV3Q2hpbGQoSU1hc2tEaXJlY3RpdmUpXHJcbiAgcHJpdmF0ZSBfbWFza0RpcmVjdGl2ZTogSU1hc2tEaXJlY3RpdmU8SU1hc2suTWFza2VkTnVtYmVyPjtcclxuXHJcbiAgLyoqXHJcbiAgKiAgQGlnbm9yZVxyXG4gICovXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxyXG4gICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmXHJcbiAgKSB7XHJcbiAgICBzdXBlcihlbGVtZW50UmVmLCBjZHIpO1xyXG4gIH1cclxuXHJcblxyXG4gIHByaXZhdGUgdG9OdW0gPSAodmFsOiBzdHJpbmcpOiBudW1iZXIgPT4ge1xyXG4gICAgcmV0dXJuIE51bWJlcih2YWwucmVwbGFjZSgvW14wLTkuLV0rL2csICcnKSk7XHJcbiAgfTtcclxuXHJcbiAgb25WaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIHN1cGVyLm9uVmlld0luaXQoKTtcclxuICAgIHRoaXMuX3VwZGF0ZU1hc2soKTtcclxuICB9XHJcblxyXG5cclxuICBfb25PcHRpb25DaGFuZ2VkKG9wdGlvbjogQVhDb21wb25lbnRPcHRpb25DaGFuZ2VkKTogdm9pZCB7XHJcbiAgICBzdXBlci5fb25PcHRpb25DaGFuZ2VkKG9wdGlvbik7XHJcbiAgICB0aGlzLl91cGRhdGVNYXNrKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF91cGRhdGVNYXNrKCkge1xyXG4gICAgaWYgKCF0aGlzLl9tYXNrT2JqKSB7XHJcbiAgICAgIHRoaXMuX21hc2tPYmogPSBJTWFzay5jcmVhdGVNYXNrKHtcclxuICAgICAgICBtYXNrOiBOdW1iZXIsXHJcbiAgICAgICAgbWluOiB0aGlzLm1pblZhbHVlLFxyXG4gICAgICAgIG1heDogdGhpcy5tYXhWYWx1ZSxcclxuICAgICAgICB0aG91c2FuZHNTZXBhcmF0b3I6IHRoaXMudGhvdXNhbmRzU2VwYXJhdG9yIHx8ICcnLFxyXG4gICAgICAgIHNjYWxlOiB0aGlzLmRlY2ltYWxzLFxyXG4gICAgICAgIHJhZGl4OiAnLicsXHJcbiAgICAgICAgcGFkRnJhY3Rpb25hbFplcm9zOiB0aGlzLmRlY2ltYWxzID4gMCAmJiB0aGlzLnBhZERlY2ltYWxaZXJvc1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICB0aGlzLl9tYXNrT2JqLnVwZGF0ZU9wdGlvbnMoe1xyXG4gICAgICAgIG1pbjogdGhpcy5taW5WYWx1ZSxcclxuICAgICAgICBtYXg6IHRoaXMubWF4VmFsdWUsXHJcbiAgICAgICAgdGhvdXNhbmRzU2VwYXJhdG9yOiB0aGlzLnRob3VzYW5kc1NlcGFyYXRvciB8fCAnJyxcclxuICAgICAgICBzY2FsZTogdGhpcy5kZWNpbWFscyxcclxuICAgICAgICByYWRpeDogJy4nLFxyXG4gICAgICAgIHBhZEZyYWN0aW9uYWxaZXJvczogdGhpcy5kZWNpbWFscyA+IDAgJiYgdGhpcy5wYWREZWNpbWFsWmVyb3NcclxuICAgICAgfSlcclxuICAgIH1cclxuICAgIHRoaXMuX21hc2tEaXJlY3RpdmU/Lm1hc2tSZWY/LnVwZGF0ZVZhbHVlKCk7XHJcbiAgICB0aGlzLl9tYXNrRGlyZWN0aXZlPy5tYXNrUmVmPy51cGRhdGVDb250cm9sKCk7XHJcblxyXG4gIH1cclxuXHJcbiAgX2hhbmRsZU9uS2V5ZG93bkV2ZW50KGU6IEtleWJvYXJkRXZlbnQpIHtcclxuICAgIGNvbnN0IGlnbm9yZSA9ICgpID0+IHtcclxuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgfTtcclxuICAgIGNvbnN0IGlucHV0ID0gZS50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudDtcclxuICAgIGNvbnN0IHZhbFN0ciA9IGlucHV0LnZhbHVlO1xyXG4gICAgY29uc3QgZGVjaW1hbFBvaW50SW5kZXggPSB2YWxTdHIuaW5kZXhPZignLicpO1xyXG4gICAgY29uc3Qgc2VsZWN0aW9uU3RhcnQgPSBpbnB1dC5zZWxlY3Rpb25TdGFydDtcclxuICAgIGNvbnN0IHNlbGVjdGlvbkVuZCA9IGlucHV0LnNlbGVjdGlvbkVuZDtcclxuXHJcbiAgICBpZiAoZS5rZXkgPT09ICdBcnJvd1VwJyB8fCBlLmtleSA9PT0gJ0Fycm93RG93bicpIHtcclxuICAgICAgaWYgKHNlbGVjdGlvblN0YXJ0ID4gZGVjaW1hbFBvaW50SW5kZXggJiYgdGhpcy5kZWNpbWFscyA+IDApIHtcclxuICAgICAgICBlLmtleSA9PT0gJ0Fycm93RG93bicgPyB0aGlzLmRlY2ltYWxTdGVwRG93bigpIDogdGhpcy5kZWNpbWFsU3RlcFVwKCk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgZS5rZXkgPT09ICdBcnJvd0Rvd24nID8gdGhpcy5zdGVwRG93bigpIDogdGhpcy5zdGVwVXAoKTtcclxuICAgICAgfVxyXG4gICAgICBpZ25vcmUoKTtcclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgaW5wdXQuc2V0U2VsZWN0aW9uUmFuZ2Uoc2VsZWN0aW9uU3RhcnQsIHNlbGVjdGlvblN0YXJ0KTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBzdXBlci5fZW1pdE9uS2V5ZG93bkV2ZW50KGUpO1xyXG4gIH1cclxuXHJcbiAgX2hhbmRsZVVwRG93bkNsaWNrKGU6IEFYQ2xpY2tFdmVudCwgdjogLTEgfCAxKSB7XHJcbiAgICB2ID09IDEgPyB0aGlzLnN0ZXBVcCgpIDogdGhpcy5zdGVwRG93bigpO1xyXG4gIH1cclxuXHJcblxyXG4gIF9vblZhbHVlQ2hhbmdpbmcodmFsdWU6IGFueSkge1xyXG4gICAgICByZXR1cm4gXy50b051bWJlcih2YWx1ZSk7XHJcbiAgfVxyXG5cclxuXHJcbiAgc3RlcFVwKCkge1xyXG4gICAgdGhpcy52YWx1ZSArPSB0aGlzLnN0ZXA7XHJcbiAgfVxyXG5cclxuICBzdGVwRG93bigpIHtcclxuICAgIHRoaXMudmFsdWUgLT0gdGhpcy5zdGVwO1xyXG4gIH1cclxuXHJcbiAgZGVjaW1hbFN0ZXBVcCgpIHtcclxuICAgIHRoaXMudmFsdWUgKz0gdGhpcy5kZWNpbWFsU3RlcCA9PSAnYXV0bycgPyAoMSAvIE1hdGgucG93KDEwLCB0aGlzLmRlY2ltYWxzKSkgOiB0aGlzLmRlY2ltYWxTdGVwO1xyXG4gIH1cclxuXHJcbiAgZGVjaW1hbFN0ZXBEb3duKCkge1xyXG4gICAgdGhpcy52YWx1ZSAtPSB0aGlzLmRlY2ltYWxTdGVwID09ICdhdXRvJyA/ICgxIC8gTWF0aC5wb3coMTAsIHRoaXMuZGVjaW1hbHMpKSA6IHRoaXMuZGVjaW1hbFN0ZXA7O1xyXG4gIH1cclxuXHJcbn1cclxuIiwiPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtcHJlZml4XCI+XHJcbjwvbmctY29udGVudD5cclxuPGlucHV0IGNsYXNzPVwiYXgtaW5wdXRcIiB0eXBlPVwidGV4dFwiICBcclxuICAgIFthdHRyLnBsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCIgXHJcbiAgICBbaW1hc2tdPVwiX21hc2tPYmpcIiBcclxuICAgIFt1bm1hc2tdPVwiJ3R5cGVkJ1wiXHJcbiAgICBbYXR0ci5taW5dPVwibWluVmFsdWVcIlxyXG4gICAgW2F0dHIubWF4XT1cIm1heFZhbHVlXCIgXHJcbiAgICBbY2xhc3MuYXgtc3RhdGUtZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiBcclxuICAgIFtjbGFzcy5heC1zdGF0ZS1yZWFkb25seV09XCJyZWFkb25seVwiXHJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiBcclxuICAgIFtyZWFkb25seV09XCJyZWFkb25seVwiIFxyXG4gICAgW3RhYmluZGV4XT1cInRhYkluZGV4XCIgXHJcbiAgICBbKG5nTW9kZWwpXT1cInZhbHVlXCJcclxuICAgIChmb2N1cyk9XCJfZW1pdE9uRm9jdXNFdmVudCgkZXZlbnQpXCIgKGJsdXIpPVwiX2VtaXRPbkZvY3VzRXZlbnQoJGV2ZW50KVwiIChrZXlkb3duKT1cIl9oYW5kbGVPbktleWRvd25FdmVudCgkZXZlbnQpXCJcclxuICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiPlxyXG5cclxuPGRpdiBjbGFzcz1cImF4LW51bWJlci1ib3gtYXJyb3dzXCIgKm5nSWY9XCJzaG93U3BpbkJ1dHRvbnMgJiYgIShkaXNhYmxlZCB8fCByZWFkb25seSlcIj5cclxuICAgIDxheC1idXR0b24gY29sb3I9XCJsaWdodFwiIGxvb2s9XCJibGFua1wiIChvbkNsaWNrKT1cIl9oYW5kbGVVcERvd25DbGljaygkZXZlbnQsMSlcIj5cclxuICAgICAgICA8YXgtcHJlZml4PlxyXG4gICAgICAgICAgICA8YXgtaWNvbiBjbGFzcz1cImF4LWljLWFycm93LWZpbGwgYXgtcm90YXRlLTkwXCI+XHJcbiAgICAgICAgICAgIDwvYXgtaWNvbj5cclxuICAgICAgICA8L2F4LXByZWZpeD5cclxuICAgIDwvYXgtYnV0dG9uPlxyXG4gICAgPGF4LWJ1dHRvbiBjb2xvcj1cImxpZ2h0XCIgbG9vaz1cImJsYW5rXCIgKG9uQ2xpY2spPVwiX2hhbmRsZVVwRG93bkNsaWNrKCRldmVudCwtMSlcIj5cclxuICAgICAgICA8YXgtcHJlZml4PlxyXG4gICAgICAgICAgICA8YXgtaWNvbiBjbGFzcz1cImF4LWljLWFycm93LWZpbGwgYXgtLXJvdGF0ZS05MFwiPlxyXG4gICAgICAgICAgICA8L2F4LWljb24+XHJcbiAgICAgICAgPC9heC1wcmVmaXg+XHJcbiAgICA8L2F4LWJ1dHRvbj5cclxuPC9kaXY+XHJcbjxuZy1jb250ZW50IHNlbGVjdD1cImF4LXN1ZmZpeFwiPlxyXG48L25nLWNvbnRlbnQ+XHJcbjxuZy1jb250ZW50IHNlbGVjdD1cImF4LXZhbGlkYXRpb24tcnVsZVwiPlxyXG48L25nLWNvbnRlbnQ+Il19
@@ -3,24 +3,30 @@ import { CommonModule } from '@angular/common';
3
3
  import { AXNumberBoxComponent } from './number-box.component';
4
4
  import { FormsModule } from '@angular/forms';
5
5
  import { AXButtonModule } from '../button';
6
- import { NgxMaskModule } from 'ngx-mask';
6
+ import { IMaskModule } from 'angular-imask';
7
+ import { AXEditorDecoratorModule } from '../decorators';
8
+ import { AXIconModule } from '../icon';
7
9
  import * as i0 from "@angular/core";
8
- import * as i1 from "ngx-mask";
9
10
  const COMPONENT = [AXNumberBoxComponent];
10
11
  const MODULES = [
11
12
  CommonModule,
12
13
  FormsModule,
13
14
  AXButtonModule,
14
- NgxMaskModule.forChild()
15
+ AXEditorDecoratorModule,
16
+ AXIconModule,
17
+ IMaskModule
15
18
  ];
16
19
  export class AXNumberBoxModule {
17
20
  }
18
- AXNumberBoxModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: AXNumberBoxModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
19
- AXNumberBoxModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: AXNumberBoxModule, declarations: [AXNumberBoxComponent], imports: [CommonModule,
21
+ AXNumberBoxModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: AXNumberBoxModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
22
+ AXNumberBoxModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: AXNumberBoxModule, declarations: [AXNumberBoxComponent], imports: [CommonModule,
20
23
  FormsModule,
21
- AXButtonModule, i1.NgxMaskModule], exports: [AXNumberBoxComponent] });
22
- AXNumberBoxModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: AXNumberBoxModule, providers: [], imports: [[...MODULES]] });
23
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: AXNumberBoxModule, decorators: [{
24
+ AXButtonModule,
25
+ AXEditorDecoratorModule,
26
+ AXIconModule,
27
+ IMaskModule], exports: [AXNumberBoxComponent] });
28
+ AXNumberBoxModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: AXNumberBoxModule, providers: [], imports: [[...MODULES]] });
29
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: AXNumberBoxModule, decorators: [{
24
30
  type: NgModule,
25
31
  args: [{
26
32
  declarations: [...COMPONENT],
@@ -29,4 +35,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
29
35
  providers: [],
30
36
  }]
31
37
  }] });
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLWJveC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY29yZXgvY29tcG9uZW50cy9zcmMvbGliL251bWJlci1ib3gvbnVtYmVyLWJveC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDOUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDM0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFVBQVUsQ0FBQzs7O0FBRXpDLE1BQU0sU0FBUyxHQUFHLENBQUMsb0JBQW9CLENBQUMsQ0FBQztBQUN6QyxNQUFNLE9BQU8sR0FBRztJQUNaLFlBQVk7SUFDWixXQUFXO0lBQ1gsY0FBYztJQUNkLGFBQWEsQ0FBQyxRQUFRLEVBQUU7Q0FDM0IsQ0FBQztBQVFGLE1BQU0sT0FBTyxpQkFBaUI7OzhHQUFqQixpQkFBaUI7K0dBQWpCLGlCQUFpQixpQkFkWCxvQkFBb0IsYUFFbkMsWUFBWTtRQUNaLFdBQVc7UUFDWCxjQUFjLCtCQUpDLG9CQUFvQjsrR0FjMUIsaUJBQWlCLGFBRmYsRUFBRSxZQUZKLENBQUMsR0FBRyxPQUFPLENBQUM7MkZBSVosaUJBQWlCO2tCQU43QixRQUFRO21CQUFDO29CQUNOLFlBQVksRUFBRSxDQUFDLEdBQUcsU0FBUyxDQUFDO29CQUM1QixPQUFPLEVBQUUsQ0FBQyxHQUFHLE9BQU8sQ0FBQztvQkFDckIsT0FBTyxFQUFFLENBQUMsR0FBRyxTQUFTLENBQUM7b0JBQ3ZCLFNBQVMsRUFBRSxFQUFFO2lCQUNoQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEFYTnVtYmVyQm94Q29tcG9uZW50IH0gZnJvbSAnLi9udW1iZXItYm94LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBBWEJ1dHRvbk1vZHVsZSB9IGZyb20gJy4uL2J1dHRvbic7XHJcbmltcG9ydCB7IE5neE1hc2tNb2R1bGUgfSBmcm9tICduZ3gtbWFzayc7XHJcblxyXG5jb25zdCBDT01QT05FTlQgPSBbQVhOdW1iZXJCb3hDb21wb25lbnRdO1xyXG5jb25zdCBNT0RVTEVTID0gW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgRm9ybXNNb2R1bGUsXHJcbiAgICBBWEJ1dHRvbk1vZHVsZSxcclxuICAgIE5neE1hc2tNb2R1bGUuZm9yQ2hpbGQoKVxyXG5dO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICAgIGRlY2xhcmF0aW9uczogWy4uLkNPTVBPTkVOVF0sXHJcbiAgICBpbXBvcnRzOiBbLi4uTU9EVUxFU10sXHJcbiAgICBleHBvcnRzOiBbLi4uQ09NUE9ORU5UXSxcclxuICAgIHByb3ZpZGVyczogW10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBWE51bWJlckJveE1vZHVsZSB7IH1cclxuIl19
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLWJveC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY29yZXgvY29tcG9uZW50cy9zcmMvbGliL251bWJlci1ib3gvbnVtYmVyLWJveC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDOUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDM0MsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUMxQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFNBQVMsQ0FBQzs7QUFFdkMsTUFBTSxTQUFTLEdBQUcsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0FBQ3pDLE1BQU0sT0FBTyxHQUFHO0lBQ1osWUFBWTtJQUNaLFdBQVc7SUFDWCxjQUFjO0lBQ2QsdUJBQXVCO0lBQ3ZCLFlBQVk7SUFDWixXQUFXO0NBQ2QsQ0FBQztBQVFGLE1BQU0sT0FBTyxpQkFBaUI7OzhHQUFqQixpQkFBaUI7K0dBQWpCLGlCQUFpQixpQkFoQlgsb0JBQW9CLGFBRW5DLFlBQVk7UUFDWixXQUFXO1FBQ1gsY0FBYztRQUNkLHVCQUF1QjtRQUN2QixZQUFZO1FBQ1osV0FBVyxhQVBJLG9CQUFvQjsrR0FnQjFCLGlCQUFpQixhQUZmLEVBQUUsWUFGSixDQUFDLEdBQUcsT0FBTyxDQUFDOzJGQUlaLGlCQUFpQjtrQkFON0IsUUFBUTttQkFBQztvQkFDTixZQUFZLEVBQUUsQ0FBQyxHQUFHLFNBQVMsQ0FBQztvQkFDNUIsT0FBTyxFQUFFLENBQUMsR0FBRyxPQUFPLENBQUM7b0JBQ3JCLE9BQU8sRUFBRSxDQUFDLEdBQUcsU0FBUyxDQUFDO29CQUN2QixTQUFTLEVBQUUsRUFBRTtpQkFDaEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBBWE51bWJlckJveENvbXBvbmVudCB9IGZyb20gJy4vbnVtYmVyLWJveC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgQVhCdXR0b25Nb2R1bGUgfSBmcm9tICcuLi9idXR0b24nO1xyXG5pbXBvcnQge0lNYXNrTW9kdWxlfSBmcm9tICdhbmd1bGFyLWltYXNrJztcclxuaW1wb3J0IHsgQVhFZGl0b3JEZWNvcmF0b3JNb2R1bGUgfSBmcm9tICcuLi9kZWNvcmF0b3JzJztcclxuaW1wb3J0IHsgQVhJY29uTW9kdWxlIH0gZnJvbSAnLi4vaWNvbic7XHJcblxyXG5jb25zdCBDT01QT05FTlQgPSBbQVhOdW1iZXJCb3hDb21wb25lbnRdO1xyXG5jb25zdCBNT0RVTEVTID0gW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgRm9ybXNNb2R1bGUsXHJcbiAgICBBWEJ1dHRvbk1vZHVsZSxcclxuICAgIEFYRWRpdG9yRGVjb3JhdG9yTW9kdWxlLFxyXG4gICAgQVhJY29uTW9kdWxlLFxyXG4gICAgSU1hc2tNb2R1bGVcclxuXTtcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgICBkZWNsYXJhdGlvbnM6IFsuLi5DT01QT05FTlRdLFxyXG4gICAgaW1wb3J0czogWy4uLk1PRFVMRVNdLFxyXG4gICAgZXhwb3J0czogWy4uLkNPTVBPTkVOVF0sXHJcbiAgICBwcm92aWRlcnM6IFtdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQVhOdW1iZXJCb3hNb2R1bGUgeyB9XHJcbiJdfQ==
@@ -53,9 +53,9 @@ export class AXBasePageComponent {
53
53
  this.onClosed.unsubscribe();
54
54
  }
55
55
  }
56
- AXBasePageComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: AXBasePageComponent, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
57
- AXBasePageComponent.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: AXBasePageComponent });
58
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: AXBasePageComponent, decorators: [{
56
+ AXBasePageComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: AXBasePageComponent, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
57
+ AXBasePageComponent.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: AXBasePageComponent });
58
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: AXBasePageComponent, decorators: [{
59
59
  type: Injectable
60
60
  }], propDecorators: { pageContainer: [{
61
61
  type: ViewChild,
@@ -2,14 +2,14 @@ import { ChangeDetectionStrategy, Component, TemplateRef, ViewChild } from '@ang
2
2
  import * as i0 from "@angular/core";
3
3
  export class AXPageFooterComponent {
4
4
  }
5
- AXPageFooterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: AXPageFooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
6
- AXPageFooterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: AXPageFooterComponent, selector: "ax-page-footer", viewQueries: [{ propertyName: "template", first: true, predicate: TemplateRef, descendants: true, static: true }], ngImport: i0, template: `
5
+ AXPageFooterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: AXPageFooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
6
+ AXPageFooterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.0", type: AXPageFooterComponent, selector: "ax-page-footer", viewQueries: [{ propertyName: "template", first: true, predicate: TemplateRef, descendants: true, static: true }], ngImport: i0, template: `
7
7
  <ng-content select="ax-prefix">
8
8
  </ng-content>
9
9
  <ng-content select="ax-suffix">
10
10
  </ng-content>
11
11
  `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
12
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: AXPageFooterComponent, decorators: [{
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: AXPageFooterComponent, decorators: [{
13
13
  type: Component,
14
14
  args: [{
15
15
  selector: 'ax-page-footer',
@@ -22,9 +22,9 @@ export class AXPageComponent extends AXBaseComponentMixin {
22
22
  }
23
23
  }
24
24
  }
25
- AXPageComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: AXPageComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: AXLoadingService }], target: i0.ɵɵFactoryTarget.Injectable });
26
- AXPageComponent.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: AXPageComponent });
27
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: AXPageComponent, decorators: [{
25
+ AXPageComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: AXPageComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: AXLoadingService }], target: i0.ɵɵFactoryTarget.Injectable });
26
+ AXPageComponent.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: AXPageComponent });
27
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: AXPageComponent, decorators: [{
28
28
  type: Injectable
29
29
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: undefined, decorators: [{
30
30
  type: Inject,