@cuby-ui/core 0.0.163 → 0.0.165

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 (282) hide show
  1. package/README.md +24 -24
  2. package/components/accordion/accordion-item/accordion-item.component.d.ts +11 -11
  3. package/components/accordion/accordion.component.d.ts +5 -5
  4. package/components/accordion/accordion.module.d.ts +11 -11
  5. package/components/accordion/index.d.ts +3 -3
  6. package/components/alert/alert.component.d.ts +13 -13
  7. package/components/alert/alert.interfaces.d.ts +9 -9
  8. package/components/alert/alert.module.d.ts +11 -11
  9. package/components/alert/alert.service.d.ts +7 -7
  10. package/components/alert/alert.tokens.d.ts +15 -15
  11. package/components/alert/alert.types.d.ts +3 -3
  12. package/components/alert/alerts.component.d.ts +17 -17
  13. package/components/alert/index.d.ts +8 -8
  14. package/components/badge/badge.component.d.ts +10 -10
  15. package/components/badge/badge.module.d.ts +8 -8
  16. package/components/badge/badge.options.d.ts +8 -8
  17. package/components/badge/index.d.ts +2 -2
  18. package/components/banner/banner.component.d.ts +21 -21
  19. package/components/banner/banner.module.d.ts +11 -11
  20. package/components/banner/banner.options.d.ts +13 -13
  21. package/components/banner/index.d.ts +3 -3
  22. package/components/breadcrumbs/breadcrumb/breadcrumb.component.d.ts +6 -6
  23. package/components/breadcrumbs/breadcrumbs.component.d.ts +7 -7
  24. package/components/breadcrumbs/breadcrumbs.module.d.ts +10 -10
  25. package/components/breadcrumbs/index.d.ts +3 -3
  26. package/components/button/button.component.d.ts +30 -30
  27. package/components/button/button.module.d.ts +9 -9
  28. package/components/button/button.options.d.ts +9 -9
  29. package/components/button/index.d.ts +3 -3
  30. package/components/button-group/button-group.component.d.ts +5 -5
  31. package/components/button-group/button-group.module.d.ts +7 -7
  32. package/components/button-group/index.d.ts +2 -2
  33. package/components/checkbox/checkbox.component.d.ts +5 -5
  34. package/components/checkbox/checkbox.module.d.ts +7 -7
  35. package/components/checkbox/index.d.ts +2 -2
  36. package/components/context-menu/context-menu.component.d.ts +39 -39
  37. package/components/context-menu/context-menu.module.d.ts +9 -9
  38. package/components/context-menu/index.d.ts +2 -2
  39. package/components/dialog/dialog-actions/dialog-actions.component.d.ts +5 -5
  40. package/components/dialog/dialog-header/dialog-header.component.d.ts +13 -13
  41. package/components/dialog/dialog.component.d.ts +33 -33
  42. package/components/dialog/dialog.interfaces.d.ts +10 -10
  43. package/components/dialog/dialog.module.d.ts +14 -14
  44. package/components/dialog/dialog.service.d.ts +7 -7
  45. package/components/dialog/dialog.tokens.d.ts +8 -8
  46. package/components/dialog/dialogs.component.d.ts +18 -18
  47. package/components/dialog/index.d.ts +8 -8
  48. package/components/form-field/form-field.component.d.ts +5 -5
  49. package/components/form-field/form-field.module.d.ts +7 -7
  50. package/components/form-field/index.d.ts +2 -2
  51. package/components/hint/hint.component.d.ts +7 -7
  52. package/components/hint/hint.module.d.ts +7 -7
  53. package/components/hint/index.d.ts +2 -2
  54. package/components/icon-button/icon-button.component.d.ts +13 -13
  55. package/components/icon-button/icon-button.module.d.ts +9 -9
  56. package/components/icon-button/index.d.ts +2 -2
  57. package/components/index.d.ts +26 -26
  58. package/components/input-number/index.d.ts +2 -2
  59. package/components/input-number/input-number.component.d.ts +55 -55
  60. package/components/input-number/input-number.module.d.ts +11 -11
  61. package/components/input-number/input-number.options.d.ts +9 -9
  62. package/components/input-password/index.d.ts +2 -2
  63. package/components/input-password/input-password.component.d.ts +31 -31
  64. package/components/input-password/input-password.module.d.ts +11 -11
  65. package/components/input-text/index.d.ts +2 -2
  66. package/components/input-text/input-text.component.d.ts +31 -31
  67. package/components/input-text/input-text.module.d.ts +11 -11
  68. package/components/input-time/index.d.ts +3 -3
  69. package/components/input-time/input-time.component.d.ts +36 -36
  70. package/components/input-time/input-time.module.d.ts +12 -12
  71. package/components/input-time/input-time.options.d.ts +7 -7
  72. package/components/label/index.d.ts +2 -2
  73. package/components/label/label.component.d.ts +6 -6
  74. package/components/label/label.module.d.ts +8 -8
  75. package/components/notification/index.d.ts +3 -3
  76. package/components/notification/notification.component.d.ts +13 -13
  77. package/components/notification/notification.module.d.ts +10 -10
  78. package/components/notification/notification.options.d.ts +13 -13
  79. package/components/radio/index.d.ts +2 -2
  80. package/components/radio/radio.component.d.ts +5 -5
  81. package/components/radio/radio.module.d.ts +7 -7
  82. package/components/root/index.d.ts +3 -3
  83. package/components/root/root.component.d.ts +11 -11
  84. package/components/root/root.module.d.ts +10 -10
  85. package/components/root/root.options.d.ts +1 -1
  86. package/components/select/index.d.ts +2 -2
  87. package/components/select/select.component.d.ts +52 -52
  88. package/components/select/select.module.d.ts +10 -10
  89. package/components/svg/index.d.ts +2 -2
  90. package/components/svg/svg.component.d.ts +16 -16
  91. package/components/svg/svg.module.d.ts +8 -8
  92. package/components/tabs/index.d.ts +3 -3
  93. package/components/tabs/tab/index.d.ts +1 -1
  94. package/components/tabs/tab/tab.component.d.ts +8 -8
  95. package/components/tabs/tabs.component.d.ts +16 -16
  96. package/components/tabs/tabs.module.d.ts +8 -8
  97. package/components/textarea/index.d.ts +2 -2
  98. package/components/textarea/textarea.component.d.ts +10 -10
  99. package/components/textarea/textarea.module.d.ts +7 -7
  100. package/components/toggle/index.d.ts +2 -2
  101. package/components/toggle/toggle.component.d.ts +5 -5
  102. package/components/toggle/toggle.module.d.ts +7 -7
  103. package/directives/index.d.ts +1 -1
  104. package/directives/text-field-controller/index.d.ts +8 -8
  105. package/directives/text-field-controller/text-field-controller.module.d.ts +11 -11
  106. package/directives/text-field-controller/text-field-controller.provider.d.ts +4 -4
  107. package/directives/text-field-controller/text-field-icon-left.directive.d.ts +9 -9
  108. package/directives/text-field-controller/text-field-id.directive.d.ts +8 -8
  109. package/directives/text-field-controller/text-field-is-error.directive.d.ts +8 -8
  110. package/directives/text-field-controller/text-field-placeholder.directive.d.ts +8 -8
  111. package/directives/text-field-controller/text-field-size.directive.d.ts +9 -9
  112. package/directives/text-field-controller/text-field.controller.d.ts +20 -20
  113. package/esm2020/components/accordion/accordion-item/accordion-item.component.mjs +28 -28
  114. package/esm2020/components/accordion/accordion.component.mjs +11 -11
  115. package/esm2020/components/accordion/accordion.module.mjs +37 -37
  116. package/esm2020/components/accordion/index.mjs +4 -4
  117. package/esm2020/components/alert/alert.component.mjs +36 -36
  118. package/esm2020/components/alert/alert.interfaces.mjs +2 -2
  119. package/esm2020/components/alert/alert.module.mjs +40 -40
  120. package/esm2020/components/alert/alert.service.mjs +17 -17
  121. package/esm2020/components/alert/alert.tokens.mjs +19 -19
  122. package/esm2020/components/alert/alert.types.mjs +2 -2
  123. package/esm2020/components/alert/alerts.component.mjs +36 -36
  124. package/esm2020/components/alert/index.mjs +9 -9
  125. package/esm2020/components/badge/badge.component.mjs +31 -31
  126. package/esm2020/components/badge/badge.module.mjs +18 -18
  127. package/esm2020/components/badge/badge.options.mjs +8 -8
  128. package/esm2020/components/badge/index.mjs +3 -3
  129. package/esm2020/components/banner/banner.component.mjs +68 -68
  130. package/esm2020/components/banner/banner.module.mjs +31 -31
  131. package/esm2020/components/banner/banner.options.mjs +6 -6
  132. package/esm2020/components/banner/index.mjs +4 -4
  133. package/esm2020/components/breadcrumbs/breadcrumb/breadcrumb.component.mjs +16 -16
  134. package/esm2020/components/breadcrumbs/breadcrumbs.component.mjs +17 -17
  135. package/esm2020/components/breadcrumbs/breadcrumbs.module.mjs +33 -33
  136. package/esm2020/components/breadcrumbs/index.mjs +4 -4
  137. package/esm2020/components/button/button.component.mjs +104 -104
  138. package/esm2020/components/button/button.module.mjs +24 -24
  139. package/esm2020/components/button/button.options.mjs +10 -10
  140. package/esm2020/components/button/index.mjs +4 -4
  141. package/esm2020/components/button-group/button-group.component.mjs +11 -11
  142. package/esm2020/components/button-group/button-group.module.mjs +16 -16
  143. package/esm2020/components/button-group/index.mjs +3 -3
  144. package/esm2020/components/checkbox/checkbox.component.mjs +11 -11
  145. package/esm2020/components/checkbox/checkbox.module.mjs +16 -16
  146. package/esm2020/components/checkbox/index.mjs +3 -3
  147. package/esm2020/components/context-menu/context-menu.component.mjs +146 -146
  148. package/esm2020/components/context-menu/context-menu.module.mjs +24 -24
  149. package/esm2020/components/context-menu/index.mjs +3 -3
  150. package/esm2020/components/dialog/dialog-actions/dialog-actions.component.mjs +11 -11
  151. package/esm2020/components/dialog/dialog-header/dialog-header.component.mjs +28 -28
  152. package/esm2020/components/dialog/dialog.component.mjs +64 -64
  153. package/esm2020/components/dialog/dialog.interfaces.mjs +2 -2
  154. package/esm2020/components/dialog/dialog.module.mjs +50 -50
  155. package/esm2020/components/dialog/dialog.service.mjs +17 -17
  156. package/esm2020/components/dialog/dialog.tokens.mjs +11 -11
  157. package/esm2020/components/dialog/dialogs.component.mjs +51 -51
  158. package/esm2020/components/dialog/index.mjs +9 -9
  159. package/esm2020/components/form-field/form-field.component.mjs +11 -11
  160. package/esm2020/components/form-field/form-field.module.mjs +16 -16
  161. package/esm2020/components/form-field/index.mjs +3 -3
  162. package/esm2020/components/hint/hint.component.mjs +19 -19
  163. package/esm2020/components/hint/hint.module.mjs +16 -16
  164. package/esm2020/components/hint/index.mjs +3 -3
  165. package/esm2020/components/icon-button/icon-button.component.mjs +32 -32
  166. package/esm2020/components/icon-button/icon-button.module.mjs +24 -24
  167. package/esm2020/components/icon-button/index.mjs +3 -3
  168. package/esm2020/components/index.mjs +27 -27
  169. package/esm2020/components/input-number/index.mjs +3 -3
  170. package/esm2020/components/input-number/input-number.component.mjs +204 -204
  171. package/esm2020/components/input-number/input-number.module.mjs +33 -33
  172. package/esm2020/components/input-number/input-number.options.mjs +11 -11
  173. package/esm2020/components/input-password/index.mjs +3 -3
  174. package/esm2020/components/input-password/input-password.component.mjs +89 -89
  175. package/esm2020/components/input-password/input-password.module.mjs +33 -33
  176. package/esm2020/components/input-text/index.mjs +3 -3
  177. package/esm2020/components/input-text/input-text.component.mjs +87 -87
  178. package/esm2020/components/input-text/input-text.module.mjs +33 -33
  179. package/esm2020/components/input-time/index.mjs +4 -4
  180. package/esm2020/components/input-time/input-time.component.mjs +99 -99
  181. package/esm2020/components/input-time/input-time.module.mjs +36 -36
  182. package/esm2020/components/input-time/input-time.options.mjs +8 -8
  183. package/esm2020/components/label/index.mjs +3 -3
  184. package/esm2020/components/label/label.component.mjs +17 -17
  185. package/esm2020/components/label/label.module.mjs +18 -18
  186. package/esm2020/components/notification/index.mjs +4 -4
  187. package/esm2020/components/notification/notification.component.mjs +51 -51
  188. package/esm2020/components/notification/notification.module.mjs +27 -27
  189. package/esm2020/components/notification/notification.options.mjs +6 -6
  190. package/esm2020/components/radio/index.mjs +3 -3
  191. package/esm2020/components/radio/radio.component.mjs +11 -11
  192. package/esm2020/components/radio/radio.module.mjs +16 -16
  193. package/esm2020/components/root/index.mjs +4 -4
  194. package/esm2020/components/root/root.component.mjs +31 -31
  195. package/esm2020/components/root/root.module.mjs +28 -28
  196. package/esm2020/components/root/root.options.mjs +1 -1
  197. package/esm2020/components/select/index.mjs +3 -3
  198. package/esm2020/components/select/select.component.mjs +167 -167
  199. package/esm2020/components/select/select.module.mjs +29 -29
  200. package/esm2020/components/svg/index.mjs +3 -3
  201. package/esm2020/components/svg/svg.component.mjs +50 -50
  202. package/esm2020/components/svg/svg.module.mjs +18 -18
  203. package/esm2020/components/tabs/index.mjs +4 -4
  204. package/esm2020/components/tabs/tab/index.mjs +1 -1
  205. package/esm2020/components/tabs/tab/tab.component.mjs +21 -21
  206. package/esm2020/components/tabs/tabs.component.mjs +49 -49
  207. package/esm2020/components/tabs/tabs.module.mjs +18 -18
  208. package/esm2020/components/textarea/index.mjs +3 -3
  209. package/esm2020/components/textarea/textarea.component.mjs +35 -35
  210. package/esm2020/components/textarea/textarea.module.mjs +16 -16
  211. package/esm2020/components/toggle/index.mjs +3 -3
  212. package/esm2020/components/toggle/toggle.component.mjs +11 -11
  213. package/esm2020/components/toggle/toggle.module.mjs +16 -16
  214. package/esm2020/cuby-ui-core.mjs +4 -4
  215. package/esm2020/directives/index.mjs +2 -2
  216. package/esm2020/directives/text-field-controller/index.mjs +9 -9
  217. package/esm2020/directives/text-field-controller/text-field-controller.module.mjs +40 -40
  218. package/esm2020/directives/text-field-controller/text-field-controller.provider.mjs +24 -24
  219. package/esm2020/directives/text-field-controller/text-field-icon-left.directive.mjs +21 -21
  220. package/esm2020/directives/text-field-controller/text-field-id.directive.mjs +21 -21
  221. package/esm2020/directives/text-field-controller/text-field-is-error.directive.mjs +24 -24
  222. package/esm2020/directives/text-field-controller/text-field-placeholder.directive.mjs +21 -21
  223. package/esm2020/directives/text-field-controller/text-field-size.directive.mjs +24 -24
  224. package/esm2020/directives/text-field-controller/text-field.controller.mjs +25 -25
  225. package/esm2020/index.mjs +7 -7
  226. package/esm2020/interfaces/context-menu-item.mjs +2 -2
  227. package/esm2020/interfaces/index.mjs +3 -3
  228. package/esm2020/interfaces/option.mjs +2 -2
  229. package/esm2020/services/index.mjs +3 -3
  230. package/esm2020/services/theme.options.mjs +6 -6
  231. package/esm2020/services/theme.service.mjs +30 -30
  232. package/esm2020/types/appearance.mjs +2 -2
  233. package/esm2020/types/hint-type.mjs +2 -2
  234. package/esm2020/types/index.mjs +8 -8
  235. package/esm2020/types/position.mjs +2 -2
  236. package/esm2020/types/resizing.mjs +2 -2
  237. package/esm2020/types/shape.mjs +2 -2
  238. package/esm2020/types/size.mjs +2 -2
  239. package/esm2020/types/status.mjs +2 -2
  240. package/esm2020/utils/format/index.mjs +3 -3
  241. package/esm2020/utils/format/remove-spaces.mjs +4 -4
  242. package/esm2020/utils/format/replace.mjs +5 -5
  243. package/esm2020/utils/index.mjs +2 -2
  244. package/fesm2015/cuby-ui-core.mjs +2162 -2162
  245. package/fesm2015/cuby-ui-core.mjs.map +1 -1
  246. package/fesm2020/cuby-ui-core.mjs +2160 -2160
  247. package/fesm2020/cuby-ui-core.mjs.map +1 -1
  248. package/fonts/Inter-Bold.svg +25443 -25443
  249. package/fonts/Inter-Medium.svg +25400 -25400
  250. package/fonts/Inter-Regular.svg +24341 -24341
  251. package/fonts/Inter-SemiBold.svg +25459 -25459
  252. package/index.d.ts +6 -6
  253. package/interfaces/context-menu-item.d.ts +7 -7
  254. package/interfaces/index.d.ts +2 -2
  255. package/interfaces/option.d.ts +5 -5
  256. package/package.json +3 -3
  257. package/services/index.d.ts +2 -2
  258. package/services/theme.options.d.ts +5 -5
  259. package/services/theme.service.d.ts +12 -12
  260. package/styles/fonts.scss +51 -51
  261. package/styles/global.scss +9 -9
  262. package/styles/mixins/buttons.scss +13 -13
  263. package/styles/mixins/headings.scss +115 -115
  264. package/styles/mixins/inputs.scss +91 -91
  265. package/styles/mixins/lists.scss +5 -5
  266. package/styles/mixins/paddings.scss +35 -35
  267. package/styles/mixins/shadows.scss +38 -38
  268. package/styles/mixins/texts.scss +225 -225
  269. package/styles/theme.scss +385 -385
  270. package/styles/variables/colors.scss +253 -253
  271. package/types/appearance.d.ts +8 -8
  272. package/types/hint-type.d.ts +1 -1
  273. package/types/index.d.ts +7 -7
  274. package/types/position.d.ts +2 -2
  275. package/types/resizing.d.ts +2 -2
  276. package/types/shape.d.ts +1 -1
  277. package/types/size.d.ts +4 -4
  278. package/types/status.d.ts +1 -1
  279. package/utils/format/index.d.ts +2 -2
  280. package/utils/format/remove-spaces.d.ts +1 -1
  281. package/utils/format/replace.d.ts +1 -1
  282. package/utils/index.d.ts +1 -1
@@ -1,204 +1,204 @@
1
- import { ChangeDetectionStrategy, ChangeDetectorRef, Component, HostBinding, HostListener, inject, Input, ViewChild } from '@angular/core';
2
- import { NG_VALUE_ACCESSOR } from '@angular/forms';
3
- import { cuiProvide } from '@cuby-ui/cdk';
4
- import { CUI_INPUT_NUMBER_OPTIONS } from './input-number.options';
5
- import { cuiRemoveSpaces, cuiReplace } from '../../utils';
6
- import { CUI_TEXT_FIELD_CONTROLLER, CUI_TEXT_FILED_CONTROLLER_PROVIDER } from '../../directives';
7
- import * as i0 from "@angular/core";
8
- import * as i1 from "@angular/common";
9
- import * as i2 from "@angular/forms";
10
- import * as i3 from "../svg/svg.component";
11
- export class CuiInputNumberComponent {
12
- constructor() {
13
- this.changeDetectorRef = inject(ChangeDetectorRef);
14
- this.cuiTextFieldController = inject(CUI_TEXT_FIELD_CONTROLLER);
15
- this.cuiInputNumberOptions = inject(CUI_INPUT_NUMBER_OPTIONS);
16
- this.MIN_JS_NUMBER = -(2 ** 53);
17
- this.MAX_JS_NUMBER = 2 ** 53;
18
- this.INPUT_VALUE_REGEX = /^-?[\d\s]*(,\d*)?$/;
19
- this.INTERVAL_BETWEEN_SPACES = 3;
20
- this.formattedValue = '';
21
- this._min = this.calculateValidMinValue(this.cuiInputNumberOptions.min);
22
- this._max = this.calculateValidMaxValue(this.cuiInputNumberOptions.max);
23
- this.step = this.cuiInputNumberOptions.step;
24
- this.precision = this.cuiInputNumberOptions.precision;
25
- }
26
- set min(min) {
27
- this._min = this.calculateValidMinValue(min);
28
- }
29
- set max(max) {
30
- this._max = this.calculateValidMaxValue(max);
31
- }
32
- get id() {
33
- return this.cuiTextFieldController.id;
34
- }
35
- get placeholder() {
36
- return this.cuiTextFieldController.placeholder;
37
- }
38
- get iconLeft() {
39
- return this.cuiTextFieldController.iconLeft;
40
- }
41
- get size() {
42
- return this.cuiTextFieldController.size;
43
- }
44
- get isError() {
45
- return this.cuiTextFieldController.isError;
46
- }
47
- writeValue(value) {
48
- this.value = value?.toString() ?? null;
49
- this.formattedValue = this.formatValue(this.value);
50
- this.changeDetectorRef.markForCheck();
51
- }
52
- registerOnChange(fn) {
53
- this.onChange = fn;
54
- }
55
- registerOnTouched(fn) {
56
- this.onTouched = fn;
57
- }
58
- setDisabledState(isDisabled) {
59
- this.isDisabled = isDisabled;
60
- this.changeDetectorRef.markForCheck();
61
- }
62
- onInput(event) {
63
- const eventTarget = event.target;
64
- const targetValue = eventTarget.value;
65
- const selectionStart = this.input.nativeElement.selectionStart ?? 0;
66
- const previousFormattedValue = this.formattedValue;
67
- if (this.isInputValueCorrect(targetValue)) {
68
- const parsedValue = this.parseValue(targetValue);
69
- this.changeModel(parsedValue);
70
- }
71
- this.formattedValue = this.formatValue(this.value);
72
- eventTarget.value = this.formattedValue;
73
- const currentCaretPosition = selectionStart
74
- + (this.formattedValue.length - previousFormattedValue.length === 2 ? 1 : 0);
75
- this.input.nativeElement.setSelectionRange(currentCaretPosition, currentCaretPosition);
76
- }
77
- onArrowUp() {
78
- this.increaseByStep();
79
- }
80
- onArrowDown() {
81
- this.decreaseByStep();
82
- }
83
- onFocus() {
84
- this.input.nativeElement.focus();
85
- }
86
- isInputValueCorrect(inputValue) {
87
- return this.INPUT_VALUE_REGEX.test(inputValue) && this.isInputValueValid(inputValue);
88
- }
89
- isInputValueValid(inputValue) {
90
- const [, fractionPart = ''] = inputValue.split(',');
91
- return this.isNumberValid(inputValue) && this.isPrecisionCountCorrect(fractionPart);
92
- }
93
- isNumberValid(inputValue) {
94
- if (inputValue === '-' && this._min > 0) {
95
- return false;
96
- }
97
- if (inputValue === ',' || inputValue === '-' || inputValue === '-,' || inputValue === '') {
98
- return true;
99
- }
100
- const convertedValue = +cuiReplace(cuiRemoveSpaces(inputValue), ',', '.');
101
- return convertedValue <= this._max && convertedValue >= this._min;
102
- }
103
- isPrecisionCountCorrect(fractionPart = '') {
104
- return fractionPart.length <= this.precision;
105
- }
106
- parseValue(inputValue) {
107
- const valueWithoutSpaces = cuiRemoveSpaces(inputValue);
108
- switch (valueWithoutSpaces) {
109
- case ',':
110
- return '0.';
111
- case '-,':
112
- return '-0.';
113
- default:
114
- return cuiReplace(valueWithoutSpaces, ',', '.');
115
- }
116
- }
117
- formatValue(value) {
118
- if (!value) {
119
- return '';
120
- }
121
- const [integerPart, fractionPart] = value.split('.');
122
- let formattedInteger = this.insertSpacesWithInterval(integerPart) || '0';
123
- if (fractionPart !== undefined && integerPart.startsWith('-') && !formattedInteger.slice(1)) {
124
- formattedInteger = '-0';
125
- }
126
- return fractionPart !== undefined ? `${formattedInteger},${fractionPart}` : formattedInteger;
127
- }
128
- insertSpacesWithInterval(value) {
129
- const regex = new RegExp(`\\B(?=(\\d{${this.INTERVAL_BETWEEN_SPACES}})+(?!\\d))`, 'g');
130
- return value.replace(regex, ' ');
131
- }
132
- changeModel(value) {
133
- this.value = value;
134
- this.onChange(value === '-' ? 0 : +value);
135
- }
136
- increaseByStep() {
137
- const value = this.value === '-'
138
- ? this.step
139
- : (+(Number(this.value) + this.step).toFixed(this.precision));
140
- if (value > this._max) {
141
- return;
142
- }
143
- const convertedValue = value.toString();
144
- this.formattedValue = this.formatValue(convertedValue);
145
- this.changeModel(convertedValue);
146
- }
147
- decreaseByStep() {
148
- const value = this.value === '-'
149
- ? -this.step
150
- : (+(Number(this.value) - this.step).toFixed(this.precision));
151
- if (value < this._min) {
152
- return;
153
- }
154
- const convertedValue = value.toString();
155
- this.formattedValue = this.formatValue(convertedValue);
156
- this.changeModel(convertedValue);
157
- }
158
- calculateValidMinValue(initialValue) {
159
- return initialValue >= this.MIN_JS_NUMBER
160
- ? initialValue
161
- : this.MIN_JS_NUMBER;
162
- }
163
- calculateValidMaxValue(initialValue) {
164
- return initialValue <= this.MAX_JS_NUMBER
165
- ? initialValue
166
- : this.MAX_JS_NUMBER;
167
- }
168
- }
169
- CuiInputNumberComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiInputNumberComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
170
- CuiInputNumberComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: CuiInputNumberComponent, selector: "cui-input-number", inputs: { step: "step", precision: "precision", min: "min", max: "max" }, host: { listeners: { "click": "onFocus()" }, properties: { "class._disabled": "this.isDisabled", "attr.data-size": "this.size", "class._with-error": "this.isError" } }, providers: [
171
- CUI_TEXT_FILED_CONTROLLER_PROVIDER,
172
- cuiProvide(NG_VALUE_ACCESSOR, CuiInputNumberComponent, true),
173
- ], viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], ngImport: i0, template: "<cui-svg\r\n *ngIf=\"iconLeft\"\r\n [icon]=\"iconLeft\"\r\n color=\"var(--cui-base-500)\"\r\n></cui-svg>\r\n<input\r\n #input\r\n [ngModel]=\"formattedValue\"\r\n [attr.id]=\"id\"\r\n [attr.placeholder]=\"placeholder\"\r\n type=\"text\"\r\n [disabled]=\"isDisabled\"\r\n class=\"c-input\"\r\n (input)=\"onInput($event)\"\r\n (focus)=\"onTouched()\"\r\n (keydown.arrowUp)=\"onArrowUp()\"\r\n (keydown.arrowDown)=\"onArrowDown()\"\r\n>\r\n", styles: [":host{padding-right:13px;padding-left:13px;font-weight:400;font-size:14px;line-height:20px;display:flex;align-items:center;gap:8px;border:1px solid var(--cui-base-200);border-radius:8px;cursor:text;background:var(--cui-input);color:var(--cui-base-900);font-family:var(--cui-main-font)}:host:hover{border-color:var(--cui-base-300)}:host:focus-within{box-shadow:0 0 0 2px var(--cui-focus);border-color:var(--cui-info)}:host[data-size=sm]{padding-top:7px;padding-bottom:7px}:host[data-size=md]{padding-top:8px;padding-bottom:8px}:host._disabled{cursor:not-allowed;opacity:.5;background:var(--cui-base-50);border-color:var(--cui-base-200)}:host._with-error{border-color:var(--cui-danger)}:host._with-error:focus-within{box-shadow:0 0 0 2px #d92d2040}.c-input{padding:0;outline:none;margin:0;border-width:0;appearance:none;caret-color:currentColor;background:none;color:inherit;font:inherit;line-height:inherit;width:100%}.c-input:disabled{cursor:not-allowed}.c-input::placeholder{color:var(--cui-base-400)}.c-button{padding:0;border:0;flex-shrink:0;outline:none;cursor:pointer;appearance:none;color:inherit;font:inherit;background:inherit;text-decoration:none;-webkit-tap-highlight-color:transparent;display:flex}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.CuiSvgComponent, selector: "cui-svg[icon]", inputs: ["width", "height", "strokeWidth", "color", "icon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
174
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiInputNumberComponent, decorators: [{
175
- type: Component,
176
- args: [{ selector: 'cui-input-number', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
177
- CUI_TEXT_FILED_CONTROLLER_PROVIDER,
178
- cuiProvide(NG_VALUE_ACCESSOR, CuiInputNumberComponent, true),
179
- ], template: "<cui-svg\r\n *ngIf=\"iconLeft\"\r\n [icon]=\"iconLeft\"\r\n color=\"var(--cui-base-500)\"\r\n></cui-svg>\r\n<input\r\n #input\r\n [ngModel]=\"formattedValue\"\r\n [attr.id]=\"id\"\r\n [attr.placeholder]=\"placeholder\"\r\n type=\"text\"\r\n [disabled]=\"isDisabled\"\r\n class=\"c-input\"\r\n (input)=\"onInput($event)\"\r\n (focus)=\"onTouched()\"\r\n (keydown.arrowUp)=\"onArrowUp()\"\r\n (keydown.arrowDown)=\"onArrowDown()\"\r\n>\r\n", styles: [":host{padding-right:13px;padding-left:13px;font-weight:400;font-size:14px;line-height:20px;display:flex;align-items:center;gap:8px;border:1px solid var(--cui-base-200);border-radius:8px;cursor:text;background:var(--cui-input);color:var(--cui-base-900);font-family:var(--cui-main-font)}:host:hover{border-color:var(--cui-base-300)}:host:focus-within{box-shadow:0 0 0 2px var(--cui-focus);border-color:var(--cui-info)}:host[data-size=sm]{padding-top:7px;padding-bottom:7px}:host[data-size=md]{padding-top:8px;padding-bottom:8px}:host._disabled{cursor:not-allowed;opacity:.5;background:var(--cui-base-50);border-color:var(--cui-base-200)}:host._with-error{border-color:var(--cui-danger)}:host._with-error:focus-within{box-shadow:0 0 0 2px #d92d2040}.c-input{padding:0;outline:none;margin:0;border-width:0;appearance:none;caret-color:currentColor;background:none;color:inherit;font:inherit;line-height:inherit;width:100%}.c-input:disabled{cursor:not-allowed}.c-input::placeholder{color:var(--cui-base-400)}.c-button{padding:0;border:0;flex-shrink:0;outline:none;cursor:pointer;appearance:none;color:inherit;font:inherit;background:inherit;text-decoration:none;-webkit-tap-highlight-color:transparent;display:flex}\n"] }]
180
- }], propDecorators: { step: [{
181
- type: Input
182
- }], precision: [{
183
- type: Input
184
- }], min: [{
185
- type: Input
186
- }], max: [{
187
- type: Input
188
- }], isDisabled: [{
189
- type: HostBinding,
190
- args: ['class._disabled']
191
- }], input: [{
192
- type: ViewChild,
193
- args: ['input']
194
- }], size: [{
195
- type: HostBinding,
196
- args: ['attr.data-size']
197
- }], isError: [{
198
- type: HostBinding,
199
- args: ['class._with-error']
200
- }], onFocus: [{
201
- type: HostListener,
202
- args: ['click']
203
- }] } });
204
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtbnVtYmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY29tcG9uZW50cy9pbnB1dC1udW1iZXIvaW5wdXQtbnVtYmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY29tcG9uZW50cy9pbnB1dC1udW1iZXIvaW5wdXQtbnVtYmVyLnRlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFdBQVcsRUFDWCxZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFDTCxTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFbkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUcxQyxPQUFPLEVBQUUsd0JBQXdCLEVBQXlCLE1BQU0sd0JBQXdCLENBQUM7QUFDekYsT0FBTyxFQUFFLGVBQWUsRUFBRSxVQUFVLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFMUQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLGtDQUFrQyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7Ozs7O0FBWWpHLE1BQU0sT0FBTyx1QkFBdUI7SUFWcEM7UUFXbUIsc0JBQWlCLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDOUMsMkJBQXNCLEdBQUcsTUFBTSxDQUFDLHlCQUF5QixDQUFDLENBQUM7UUFDM0QsMEJBQXFCLEdBQUcsTUFBTSxDQUFDLHdCQUF3QixDQUFDLENBQUM7UUFFdkQsa0JBQWEsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQzNCLGtCQUFhLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN4QixzQkFBaUIsR0FBRyxvQkFBb0IsQ0FBQztRQUN6Qyw0QkFBdUIsR0FBRyxDQUFDLENBQUM7UUFFckMsbUJBQWMsR0FBRyxFQUFFLENBQUM7UUFDcEIsU0FBSSxHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDbkUsU0FBSSxHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsR0FBRyxDQUFDLENBQUM7UUFNdEUsU0FBSSxHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUM7UUFHdkMsY0FBUyxHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxTQUFTLENBQUM7S0FvTnpEO0lBbE5DLElBQ1csR0FBRyxDQUFDLEdBQVc7UUFDeEIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVELElBQ1csR0FBRyxDQUFDLEdBQVc7UUFDeEIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQVFELElBQWMsRUFBRTtRQUNkLE9BQU8sSUFBSSxDQUFDLHNCQUFzQixDQUFDLEVBQUUsQ0FBQztJQUN4QyxDQUFDO0lBRUQsSUFBYyxXQUFXO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLHNCQUFzQixDQUFDLFdBQVcsQ0FBQztJQUNqRCxDQUFDO0lBRUQsSUFBYyxRQUFRO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLHNCQUFzQixDQUFDLFFBQVEsQ0FBQztJQUM5QyxDQUFDO0lBRUQsSUFDYyxJQUFJO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQztJQUMxQyxDQUFDO0lBRUQsSUFDYyxPQUFPO1FBQ25CLE9BQU8sSUFBSSxDQUFDLHNCQUFzQixDQUFDLE9BQU8sQ0FBQztJQUM3QyxDQUFDO0lBRU0sVUFBVSxDQUFDLEtBQTBCO1FBQzFDLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxFQUFFLFFBQVEsRUFBRSxJQUFJLElBQUksQ0FBQztRQUN2QyxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRW5ELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN4QyxDQUFDO0lBRU0sZ0JBQWdCLENBQUMsRUFBdUI7UUFDN0MsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVNLGlCQUFpQixDQUFDLEVBQWdCO1FBQ3ZDLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFTSxnQkFBZ0IsQ0FBQyxVQUFtQjtRQUN6QyxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUU3QixJQUFJLENBQUMsaUJBQWlCLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDeEMsQ0FBQztJQUVTLE9BQU8sQ0FBQyxLQUFZO1FBQzVCLE1BQU0sV0FBVyxHQUFHLEtBQUssQ0FBQyxNQUEwQixDQUFDO1FBQ3JELE1BQU0sV0FBVyxHQUFHLFdBQVcsQ0FBQyxLQUFLLENBQUM7UUFDdEMsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsY0FBYyxJQUFJLENBQUMsQ0FBQztRQUNwRSxNQUFNLHNCQUFzQixHQUFHLElBQUksQ0FBQyxjQUFjLENBQUM7UUFFbkQsSUFBSSxJQUFJLENBQUMsbUJBQW1CLENBQUMsV0FBVyxDQUFDLEVBQUU7WUFDekMsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUVqRCxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1NBQy9CO1FBRUQsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNuRCxXQUFXLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUM7UUFFeEMsTUFBTSxvQkFBb0IsR0FBRyxjQUFjO2NBQ3ZDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEdBQUcsc0JBQXNCLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUUvRSxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQyxvQkFBb0IsRUFBRSxvQkFBb0IsQ0FBQyxDQUFDO0lBQ3pGLENBQUM7SUFFUyxTQUFTO1FBQ2pCLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRVMsV0FBVztRQUNuQixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUdTLE9BQU87UUFDZixJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNuQyxDQUFDO0lBRU8sbUJBQW1CLENBQUMsVUFBa0I7UUFDNUMsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUN2RixDQUFDO0lBRU8saUJBQWlCLENBQUMsVUFBa0I7UUFDMUMsTUFBTSxDQUFDLEVBQUUsWUFBWSxHQUFHLEVBQUUsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFcEQsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxJQUFJLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUN0RixDQUFDO0lBRU8sYUFBYSxDQUFDLFVBQWtCO1FBQ3RDLElBQUksVUFBVSxLQUFLLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsRUFBRTtZQUN2QyxPQUFPLEtBQUssQ0FBQztTQUNkO1FBRUQsSUFBSSxVQUFVLEtBQUssR0FBRyxJQUFJLFVBQVUsS0FBSyxHQUFHLElBQUksVUFBVSxLQUFLLElBQUksSUFBSSxVQUFVLEtBQUssRUFBRSxFQUFFO1lBQ3hGLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFFRCxNQUFNLGNBQWMsR0FBRyxDQUFDLFVBQVUsQ0FDaEMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxFQUMzQixHQUFHLEVBQ0gsR0FBRyxDQUNKLENBQUM7UUFFRixPQUFPLGNBQWMsSUFBSSxJQUFJLENBQUMsSUFBSSxJQUFJLGNBQWMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ3BFLENBQUM7SUFFTyx1QkFBdUIsQ0FBQyxZQUFZLEdBQUcsRUFBRTtRQUMvQyxPQUFPLFlBQVksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUMvQyxDQUFDO0lBRU8sVUFBVSxDQUFDLFVBQWtCO1FBQ25DLE1BQU0sa0JBQWtCLEdBQUcsZUFBZSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRXZELFFBQVEsa0JBQWtCLEVBQUU7WUFDMUIsS0FBSyxHQUFHO2dCQUNOLE9BQU8sSUFBSSxDQUFDO1lBRWQsS0FBSyxJQUFJO2dCQUNQLE9BQU8sS0FBSyxDQUFDO1lBRWY7Z0JBQ0UsT0FBTyxVQUFVLENBQUMsa0JBQWtCLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1NBQ25EO0lBQ0gsQ0FBQztJQUVPLFdBQVcsQ0FBQyxLQUEwQjtRQUM1QyxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ1YsT0FBTyxFQUFFLENBQUM7U0FDWDtRQUVELE1BQU0sQ0FBQyxXQUFXLEVBQUUsWUFBWSxDQUFDLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNyRCxJQUFJLGdCQUFnQixHQUFHLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxXQUFXLENBQUMsSUFBSSxHQUFHLENBQUM7UUFFekUsSUFBSSxZQUFZLEtBQUssU0FBUyxJQUFJLFdBQVcsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDM0YsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDO1NBQ3pCO1FBRUQsT0FBTyxZQUFZLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxHQUFHLGdCQUFnQixJQUFJLFlBQVksRUFBRSxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQztJQUMvRixDQUFDO0lBRU8sd0JBQXdCLENBQUMsS0FBYTtRQUM1QyxNQUFNLEtBQUssR0FBRyxJQUFJLE1BQU0sQ0FBQyxjQUFjLElBQUksQ0FBQyx1QkFBdUIsYUFBYSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBRXZGLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVPLFdBQVcsQ0FBQyxLQUFhO1FBQy9CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBRW5CLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFTyxjQUFjO1FBQ3BCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLEtBQUssR0FBRztZQUM5QixDQUFDLENBQUMsSUFBSSxDQUFDLElBQUk7WUFDWCxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1FBRWhFLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDckIsT0FBTztTQUNSO1FBRUQsTUFBTSxjQUFjLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBRXhDLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUV2RCxJQUFJLENBQUMsV0FBVyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFTyxjQUFjO1FBQ3BCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLEtBQUssR0FBRztZQUM5QixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSTtZQUNaLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7UUFFaEUsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRTtZQUNyQixPQUFPO1NBQ1I7UUFFRCxNQUFNLGNBQWMsR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFFeEMsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBRXZELElBQUksQ0FBQyxXQUFXLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVPLHNCQUFzQixDQUFDLFlBQW9CO1FBQ2pELE9BQU8sWUFBWSxJQUFJLElBQUksQ0FBQyxhQUFhO1lBQ3ZDLENBQUMsQ0FBQyxZQUFZO1lBQ2QsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDekIsQ0FBQztJQUVPLHNCQUFzQixDQUFDLFlBQW9CO1FBQ2pELE9BQU8sWUFBWSxJQUFJLElBQUksQ0FBQyxhQUFhO1lBQ3ZDLENBQUMsQ0FBQyxZQUFZO1lBQ2QsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDekIsQ0FBQzs7cUhBeE9VLHVCQUF1Qjt5R0FBdkIsdUJBQXVCLDhSQUx2QjtRQUNULGtDQUFrQztRQUNsQyxVQUFVLENBQUMsaUJBQWlCLEVBQUUsdUJBQXVCLEVBQUUsSUFBSSxDQUFDO0tBQzdELDBIQzlCSCxxY0FrQkE7NEZEY2EsdUJBQXVCO2tCQVZuQyxTQUFTOytCQUNFLGtCQUFrQixtQkFHWCx1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDO3dCQUNULGtDQUFrQzt3QkFDbEMsVUFBVSxDQUFDLGlCQUFpQiwyQkFBMkIsSUFBSSxDQUFDO3FCQUM3RDs4QkFvQk0sSUFBSTtzQkFEVixLQUFLO2dCQUlDLFNBQVM7c0JBRGYsS0FBSztnQkFJSyxHQUFHO3NCQURiLEtBQUs7Z0JBTUssR0FBRztzQkFEYixLQUFLO2dCQU1JLFVBQVU7c0JBRG5CLFdBQVc7dUJBQUMsaUJBQWlCO2dCQUlwQixLQUFLO3NCQURkLFNBQVM7dUJBQUMsT0FBTztnQkFnQkosSUFBSTtzQkFEakIsV0FBVzt1QkFBQyxnQkFBZ0I7Z0JBTWYsT0FBTztzQkFEcEIsV0FBVzt1QkFBQyxtQkFBbUI7Z0JBd0R0QixPQUFPO3NCQURoQixZQUFZO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEVsZW1lbnRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDb21wb25lbnQsXHJcbiAgSG9zdEJpbmRpbmcsXHJcbiAgSG9zdExpc3RlbmVyLFxyXG4gIGluamVjdCxcclxuICBJbnB1dCxcclxuICBWaWV3Q2hpbGRcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHR5cGUgeyBDb250cm9sVmFsdWVBY2Nlc3NvciB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB0eXBlIHsgQ3VpTnVsbGFibGUsIEN1aU9uQ2hhbmdlLCBDdWlPblRvdWNoZWQgfSBmcm9tICdAY3VieS11aS9jZGsnO1xyXG5pbXBvcnQgeyBjdWlQcm92aWRlIH0gZnJvbSAnQGN1YnktdWkvY2RrJztcclxuaW1wb3J0IHR5cGUgeyBDdWlJY29uIH0gZnJvbSAnQGN1YnktdWkvaWNvbnMnO1xyXG5cclxuaW1wb3J0IHsgQ1VJX0lOUFVUX05VTUJFUl9PUFRJT05TLCBDdWlJbnB1dE51bWJlck9wdGlvbnMgfSBmcm9tICcuL2lucHV0LW51bWJlci5vcHRpb25zJztcclxuaW1wb3J0IHsgY3VpUmVtb3ZlU3BhY2VzLCBjdWlSZXBsYWNlIH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xyXG5pbXBvcnQgeyBDdWlTaXplTWQsIEN1aVNpemVTbSB9IGZyb20gJy4uLy4uL3R5cGVzJztcclxuaW1wb3J0IHsgQ1VJX1RFWFRfRklFTERfQ09OVFJPTExFUiwgQ1VJX1RFWFRfRklMRURfQ09OVFJPTExFUl9QUk9WSURFUiB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdjdWktaW5wdXQtbnVtYmVyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vaW5wdXQtbnVtYmVyLnRlbXBsYXRlLmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2lucHV0LW51bWJlci5zdHlsZS5zY3NzJ10sXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICBDVUlfVEVYVF9GSUxFRF9DT05UUk9MTEVSX1BST1ZJREVSLFxyXG4gICAgY3VpUHJvdmlkZShOR19WQUxVRV9BQ0NFU1NPUiwgQ3VpSW5wdXROdW1iZXJDb21wb25lbnQsIHRydWUpLFxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIEN1aUlucHV0TnVtYmVyQ29tcG9uZW50IGltcGxlbWVudHMgQ3VpSW5wdXROdW1iZXJPcHRpb25zLCBDb250cm9sVmFsdWVBY2Nlc3NvciB7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBjaGFuZ2VEZXRlY3RvclJlZiA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBjdWlUZXh0RmllbGRDb250cm9sbGVyID0gaW5qZWN0KENVSV9URVhUX0ZJRUxEX0NPTlRST0xMRVIpO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgY3VpSW5wdXROdW1iZXJPcHRpb25zID0gaW5qZWN0KENVSV9JTlBVVF9OVU1CRVJfT1BUSU9OUyk7XHJcblxyXG4gIHByb3RlY3RlZCByZWFkb25seSBNSU5fSlNfTlVNQkVSID0gLSgyICoqIDUzKTtcclxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgTUFYX0pTX05VTUJFUiA9IDIgKiogNTM7XHJcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IElOUFVUX1ZBTFVFX1JFR0VYID0gL14tP1tcXGRcXHNdKigsXFxkKik/JC87XHJcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IElOVEVSVkFMX0JFVFdFRU5fU1BBQ0VTID0gMztcclxuXHJcbiAgcHJvdGVjdGVkIGZvcm1hdHRlZFZhbHVlID0gJyc7XHJcbiAgcHJvdGVjdGVkIF9taW4gPSB0aGlzLmNhbGN1bGF0ZVZhbGlkTWluVmFsdWUodGhpcy5jdWlJbnB1dE51bWJlck9wdGlvbnMubWluKTtcclxuICBwcm90ZWN0ZWQgX21heCA9IHRoaXMuY2FsY3VsYXRlVmFsaWRNYXhWYWx1ZSh0aGlzLmN1aUlucHV0TnVtYmVyT3B0aW9ucy5tYXgpO1xyXG4gIHByb3RlY3RlZCB2YWx1ZSE6IEN1aU51bGxhYmxlPHN0cmluZz47XHJcbiAgcHJvdGVjdGVkIG9uQ2hhbmdlITogQ3VpT25DaGFuZ2U8bnVtYmVyPjtcclxuICBwcm90ZWN0ZWQgb25Ub3VjaGVkITogQ3VpT25Ub3VjaGVkO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzdGVwID0gdGhpcy5jdWlJbnB1dE51bWJlck9wdGlvbnMuc3RlcDtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgcHJlY2lzaW9uID0gdGhpcy5jdWlJbnB1dE51bWJlck9wdGlvbnMucHJlY2lzaW9uO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZXQgbWluKG1pbjogbnVtYmVyKSB7XHJcbiAgICB0aGlzLl9taW4gPSB0aGlzLmNhbGN1bGF0ZVZhbGlkTWluVmFsdWUobWluKTtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNldCBtYXgobWF4OiBudW1iZXIpIHtcclxuICAgIHRoaXMuX21heCA9IHRoaXMuY2FsY3VsYXRlVmFsaWRNYXhWYWx1ZShtYXgpO1xyXG4gIH1cclxuXHJcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5fZGlzYWJsZWQnKVxyXG4gIHByb3RlY3RlZCBpc0Rpc2FibGVkITogYm9vbGVhbjtcclxuXHJcbiAgQFZpZXdDaGlsZCgnaW5wdXQnKVxyXG4gIHByb3RlY3RlZCBpbnB1dCE6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XHJcblxyXG4gIHByb3RlY3RlZCBnZXQgaWQoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcclxuICAgIHJldHVybiB0aGlzLmN1aVRleHRGaWVsZENvbnRyb2xsZXIuaWQ7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgZ2V0IHBsYWNlaG9sZGVyKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XHJcbiAgICByZXR1cm4gdGhpcy5jdWlUZXh0RmllbGRDb250cm9sbGVyLnBsYWNlaG9sZGVyO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIGdldCBpY29uTGVmdCgpOiBDdWlJY29uIHwgc3RyaW5nIHwgdW5kZWZpbmVkIHtcclxuICAgIHJldHVybiB0aGlzLmN1aVRleHRGaWVsZENvbnRyb2xsZXIuaWNvbkxlZnQ7XHJcbiAgfVxyXG5cclxuICBASG9zdEJpbmRpbmcoJ2F0dHIuZGF0YS1zaXplJylcclxuICBwcm90ZWN0ZWQgZ2V0IHNpemUoKTogQ3VpU2l6ZVNtIHwgQ3VpU2l6ZU1kIHtcclxuICAgIHJldHVybiB0aGlzLmN1aVRleHRGaWVsZENvbnRyb2xsZXIuc2l6ZTtcclxuICB9XHJcblxyXG4gIEBIb3N0QmluZGluZygnY2xhc3MuX3dpdGgtZXJyb3InKVxyXG4gIHByb3RlY3RlZCBnZXQgaXNFcnJvcigpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmN1aVRleHRGaWVsZENvbnRyb2xsZXIuaXNFcnJvcjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyB3cml0ZVZhbHVlKHZhbHVlOiBDdWlOdWxsYWJsZTxudW1iZXI+KTogdm9pZCB7XHJcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU/LnRvU3RyaW5nKCkgPz8gbnVsbDtcclxuICAgIHRoaXMuZm9ybWF0dGVkVmFsdWUgPSB0aGlzLmZvcm1hdFZhbHVlKHRoaXMudmFsdWUpO1xyXG5cclxuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShmbjogQ3VpT25DaGFuZ2U8bnVtYmVyPik6IHZvaWQge1xyXG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBDdWlPblRvdWNoZWQpOiB2b2lkIHtcclxuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICB0aGlzLmlzRGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xyXG5cclxuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgb25JbnB1dChldmVudDogRXZlbnQpOiB2b2lkIHtcclxuICAgIGNvbnN0IGV2ZW50VGFyZ2V0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XHJcbiAgICBjb25zdCB0YXJnZXRWYWx1ZSA9IGV2ZW50VGFyZ2V0LnZhbHVlO1xyXG4gICAgY29uc3Qgc2VsZWN0aW9uU3RhcnQgPSB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuc2VsZWN0aW9uU3RhcnQgPz8gMDtcclxuICAgIGNvbnN0IHByZXZpb3VzRm9ybWF0dGVkVmFsdWUgPSB0aGlzLmZvcm1hdHRlZFZhbHVlO1xyXG5cclxuICAgIGlmICh0aGlzLmlzSW5wdXRWYWx1ZUNvcnJlY3QodGFyZ2V0VmFsdWUpKSB7XHJcbiAgICAgIGNvbnN0IHBhcnNlZFZhbHVlID0gdGhpcy5wYXJzZVZhbHVlKHRhcmdldFZhbHVlKTtcclxuXHJcbiAgICAgIHRoaXMuY2hhbmdlTW9kZWwocGFyc2VkVmFsdWUpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuZm9ybWF0dGVkVmFsdWUgPSB0aGlzLmZvcm1hdFZhbHVlKHRoaXMudmFsdWUpO1xyXG4gICAgZXZlbnRUYXJnZXQudmFsdWUgPSB0aGlzLmZvcm1hdHRlZFZhbHVlO1xyXG5cclxuICAgIGNvbnN0IGN1cnJlbnRDYXJldFBvc2l0aW9uID0gc2VsZWN0aW9uU3RhcnRcclxuICAgICAgKyAodGhpcy5mb3JtYXR0ZWRWYWx1ZS5sZW5ndGggLSBwcmV2aW91c0Zvcm1hdHRlZFZhbHVlLmxlbmd0aCA9PT0gMiA/IDEgOiAwKTtcclxuXHJcbiAgICB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuc2V0U2VsZWN0aW9uUmFuZ2UoY3VycmVudENhcmV0UG9zaXRpb24sIGN1cnJlbnRDYXJldFBvc2l0aW9uKTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBvbkFycm93VXAoKTogdm9pZCB7XHJcbiAgICB0aGlzLmluY3JlYXNlQnlTdGVwKCk7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgb25BcnJvd0Rvd24oKTogdm9pZCB7XHJcbiAgICB0aGlzLmRlY3JlYXNlQnlTdGVwKCk7XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCdjbGljaycpXHJcbiAgcHJvdGVjdGVkIG9uRm9jdXMoKTogdm9pZCB7XHJcbiAgICB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaXNJbnB1dFZhbHVlQ29ycmVjdChpbnB1dFZhbHVlOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLklOUFVUX1ZBTFVFX1JFR0VYLnRlc3QoaW5wdXRWYWx1ZSkgJiYgdGhpcy5pc0lucHV0VmFsdWVWYWxpZChpbnB1dFZhbHVlKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaXNJbnB1dFZhbHVlVmFsaWQoaW5wdXRWYWx1ZTogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCBbLCBmcmFjdGlvblBhcnQgPSAnJ10gPSBpbnB1dFZhbHVlLnNwbGl0KCcsJyk7XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuaXNOdW1iZXJWYWxpZChpbnB1dFZhbHVlKSAmJiB0aGlzLmlzUHJlY2lzaW9uQ291bnRDb3JyZWN0KGZyYWN0aW9uUGFydCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGlzTnVtYmVyVmFsaWQoaW5wdXRWYWx1ZTogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICBpZiAoaW5wdXRWYWx1ZSA9PT0gJy0nICYmIHRoaXMuX21pbiA+IDApIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChpbnB1dFZhbHVlID09PSAnLCcgfHwgaW5wdXRWYWx1ZSA9PT0gJy0nIHx8IGlucHV0VmFsdWUgPT09ICctLCcgfHwgaW5wdXRWYWx1ZSA9PT0gJycpIHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgY29udmVydGVkVmFsdWUgPSArY3VpUmVwbGFjZShcclxuICAgICAgY3VpUmVtb3ZlU3BhY2VzKGlucHV0VmFsdWUpLFxyXG4gICAgICAnLCcsXHJcbiAgICAgICcuJ1xyXG4gICAgKTtcclxuXHJcbiAgICByZXR1cm4gY29udmVydGVkVmFsdWUgPD0gdGhpcy5fbWF4ICYmIGNvbnZlcnRlZFZhbHVlID49IHRoaXMuX21pbjtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaXNQcmVjaXNpb25Db3VudENvcnJlY3QoZnJhY3Rpb25QYXJ0ID0gJycpOiBib29sZWFuIHtcclxuICAgIHJldHVybiBmcmFjdGlvblBhcnQubGVuZ3RoIDw9IHRoaXMucHJlY2lzaW9uO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBwYXJzZVZhbHVlKGlucHV0VmFsdWU6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBjb25zdCB2YWx1ZVdpdGhvdXRTcGFjZXMgPSBjdWlSZW1vdmVTcGFjZXMoaW5wdXRWYWx1ZSk7XHJcblxyXG4gICAgc3dpdGNoICh2YWx1ZVdpdGhvdXRTcGFjZXMpIHtcclxuICAgICAgY2FzZSAnLCc6XHJcbiAgICAgICAgcmV0dXJuICcwLic7XHJcblxyXG4gICAgICBjYXNlICctLCc6XHJcbiAgICAgICAgcmV0dXJuICctMC4nO1xyXG5cclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICByZXR1cm4gY3VpUmVwbGFjZSh2YWx1ZVdpdGhvdXRTcGFjZXMsICcsJywgJy4nKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgZm9ybWF0VmFsdWUodmFsdWU6IEN1aU51bGxhYmxlPHN0cmluZz4pOiBzdHJpbmcge1xyXG4gICAgaWYgKCF2YWx1ZSkge1xyXG4gICAgICByZXR1cm4gJyc7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgW2ludGVnZXJQYXJ0LCBmcmFjdGlvblBhcnRdID0gdmFsdWUuc3BsaXQoJy4nKTtcclxuICAgIGxldCBmb3JtYXR0ZWRJbnRlZ2VyID0gdGhpcy5pbnNlcnRTcGFjZXNXaXRoSW50ZXJ2YWwoaW50ZWdlclBhcnQpIHx8ICcwJztcclxuXHJcbiAgICBpZiAoZnJhY3Rpb25QYXJ0ICE9PSB1bmRlZmluZWQgJiYgaW50ZWdlclBhcnQuc3RhcnRzV2l0aCgnLScpICYmICFmb3JtYXR0ZWRJbnRlZ2VyLnNsaWNlKDEpKSB7XHJcbiAgICAgIGZvcm1hdHRlZEludGVnZXIgPSAnLTAnO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBmcmFjdGlvblBhcnQgIT09IHVuZGVmaW5lZCA/IGAke2Zvcm1hdHRlZEludGVnZXJ9LCR7ZnJhY3Rpb25QYXJ0fWAgOiBmb3JtYXR0ZWRJbnRlZ2VyO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpbnNlcnRTcGFjZXNXaXRoSW50ZXJ2YWwodmFsdWU6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBjb25zdCByZWdleCA9IG5ldyBSZWdFeHAoYFxcXFxCKD89KFxcXFxkeyR7dGhpcy5JTlRFUlZBTF9CRVRXRUVOX1NQQUNFU319KSsoPyFcXFxcZCkpYCwgJ2cnKTtcclxuXHJcbiAgICByZXR1cm4gdmFsdWUucmVwbGFjZShyZWdleCwgJyAnKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY2hhbmdlTW9kZWwodmFsdWU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xyXG5cclxuICAgIHRoaXMub25DaGFuZ2UodmFsdWUgPT09ICctJyA/IDAgOiArdmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpbmNyZWFzZUJ5U3RlcCgpOiB2b2lkIHtcclxuICAgIGNvbnN0IHZhbHVlID0gdGhpcy52YWx1ZSA9PT0gJy0nXHJcbiAgICAgID8gdGhpcy5zdGVwXHJcbiAgICAgIDogKCsoTnVtYmVyKHRoaXMudmFsdWUpICsgdGhpcy5zdGVwKS50b0ZpeGVkKHRoaXMucHJlY2lzaW9uKSk7XHJcblxyXG4gICAgaWYgKHZhbHVlID4gdGhpcy5fbWF4KSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBjb252ZXJ0ZWRWYWx1ZSA9IHZhbHVlLnRvU3RyaW5nKCk7XHJcblxyXG4gICAgdGhpcy5mb3JtYXR0ZWRWYWx1ZSA9IHRoaXMuZm9ybWF0VmFsdWUoY29udmVydGVkVmFsdWUpO1xyXG5cclxuICAgIHRoaXMuY2hhbmdlTW9kZWwoY29udmVydGVkVmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBkZWNyZWFzZUJ5U3RlcCgpOiB2b2lkIHtcclxuICAgIGNvbnN0IHZhbHVlID0gdGhpcy52YWx1ZSA9PT0gJy0nXHJcbiAgICAgID8gLXRoaXMuc3RlcFxyXG4gICAgICA6ICgrKE51bWJlcih0aGlzLnZhbHVlKSAtIHRoaXMuc3RlcCkudG9GaXhlZCh0aGlzLnByZWNpc2lvbikpO1xyXG5cclxuICAgIGlmICh2YWx1ZSA8IHRoaXMuX21pbikge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgY29udmVydGVkVmFsdWUgPSB2YWx1ZS50b1N0cmluZygpO1xyXG5cclxuICAgIHRoaXMuZm9ybWF0dGVkVmFsdWUgPSB0aGlzLmZvcm1hdFZhbHVlKGNvbnZlcnRlZFZhbHVlKTtcclxuXHJcbiAgICB0aGlzLmNoYW5nZU1vZGVsKGNvbnZlcnRlZFZhbHVlKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY2FsY3VsYXRlVmFsaWRNaW5WYWx1ZShpbml0aWFsVmFsdWU6IG51bWJlcik6IG51bWJlciB7XHJcbiAgICByZXR1cm4gaW5pdGlhbFZhbHVlID49IHRoaXMuTUlOX0pTX05VTUJFUlxyXG4gICAgICA/IGluaXRpYWxWYWx1ZVxyXG4gICAgICA6IHRoaXMuTUlOX0pTX05VTUJFUjtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY2FsY3VsYXRlVmFsaWRNYXhWYWx1ZShpbml0aWFsVmFsdWU6IG51bWJlcik6IG51bWJlciB7XHJcbiAgICByZXR1cm4gaW5pdGlhbFZhbHVlIDw9IHRoaXMuTUFYX0pTX05VTUJFUlxyXG4gICAgICA/IGluaXRpYWxWYWx1ZVxyXG4gICAgICA6IHRoaXMuTUFYX0pTX05VTUJFUjtcclxuICB9XHJcbn1cclxuIiwiPGN1aS1zdmdcclxuICAqbmdJZj1cImljb25MZWZ0XCJcclxuICBbaWNvbl09XCJpY29uTGVmdFwiXHJcbiAgY29sb3I9XCJ2YXIoLS1jdWktYmFzZS01MDApXCJcclxuPjwvY3VpLXN2Zz5cclxuPGlucHV0XHJcbiAgI2lucHV0XHJcbiAgW25nTW9kZWxdPVwiZm9ybWF0dGVkVmFsdWVcIlxyXG4gIFthdHRyLmlkXT1cImlkXCJcclxuICBbYXR0ci5wbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXHJcbiAgdHlwZT1cInRleHRcIlxyXG4gIFtkaXNhYmxlZF09XCJpc0Rpc2FibGVkXCJcclxuICBjbGFzcz1cImMtaW5wdXRcIlxyXG4gIChpbnB1dCk9XCJvbklucHV0KCRldmVudClcIlxyXG4gIChmb2N1cyk9XCJvblRvdWNoZWQoKVwiXHJcbiAgKGtleWRvd24uYXJyb3dVcCk9XCJvbkFycm93VXAoKVwiXHJcbiAgKGtleWRvd24uYXJyb3dEb3duKT1cIm9uQXJyb3dEb3duKClcIlxyXG4+XHJcbiJdfQ==
1
+ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, HostBinding, HostListener, inject, Input, ViewChild } from '@angular/core';
2
+ import { NG_VALUE_ACCESSOR } from '@angular/forms';
3
+ import { cuiProvide } from '@cuby-ui/cdk';
4
+ import { CUI_INPUT_NUMBER_OPTIONS } from './input-number.options';
5
+ import { cuiRemoveSpaces, cuiReplace } from '../../utils';
6
+ import { CUI_TEXT_FIELD_CONTROLLER, CUI_TEXT_FILED_CONTROLLER_PROVIDER } from '../../directives';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "@angular/common";
9
+ import * as i2 from "@angular/forms";
10
+ import * as i3 from "../svg/svg.component";
11
+ export class CuiInputNumberComponent {
12
+ constructor() {
13
+ this.changeDetectorRef = inject(ChangeDetectorRef);
14
+ this.cuiTextFieldController = inject(CUI_TEXT_FIELD_CONTROLLER);
15
+ this.cuiInputNumberOptions = inject(CUI_INPUT_NUMBER_OPTIONS);
16
+ this.MIN_JS_NUMBER = -(2 ** 53);
17
+ this.MAX_JS_NUMBER = 2 ** 53;
18
+ this.INPUT_VALUE_REGEX = /^-?[\d\s]*(,\d*)?$/;
19
+ this.INTERVAL_BETWEEN_SPACES = 3;
20
+ this.formattedValue = '';
21
+ this._min = this.calculateValidMinValue(this.cuiInputNumberOptions.min);
22
+ this._max = this.calculateValidMaxValue(this.cuiInputNumberOptions.max);
23
+ this.step = this.cuiInputNumberOptions.step;
24
+ this.precision = this.cuiInputNumberOptions.precision;
25
+ }
26
+ set min(min) {
27
+ this._min = this.calculateValidMinValue(min);
28
+ }
29
+ set max(max) {
30
+ this._max = this.calculateValidMaxValue(max);
31
+ }
32
+ get id() {
33
+ return this.cuiTextFieldController.id;
34
+ }
35
+ get placeholder() {
36
+ return this.cuiTextFieldController.placeholder;
37
+ }
38
+ get iconLeft() {
39
+ return this.cuiTextFieldController.iconLeft;
40
+ }
41
+ get size() {
42
+ return this.cuiTextFieldController.size;
43
+ }
44
+ get isError() {
45
+ return this.cuiTextFieldController.isError;
46
+ }
47
+ writeValue(value) {
48
+ this.value = value?.toString() ?? null;
49
+ this.formattedValue = this.formatValue(this.value);
50
+ this.changeDetectorRef.markForCheck();
51
+ }
52
+ registerOnChange(fn) {
53
+ this.onChange = fn;
54
+ }
55
+ registerOnTouched(fn) {
56
+ this.onTouched = fn;
57
+ }
58
+ setDisabledState(isDisabled) {
59
+ this.isDisabled = isDisabled;
60
+ this.changeDetectorRef.markForCheck();
61
+ }
62
+ onInput(event) {
63
+ const eventTarget = event.target;
64
+ const targetValue = eventTarget.value;
65
+ const selectionStart = this.input.nativeElement.selectionStart ?? 0;
66
+ const previousFormattedValue = this.formattedValue;
67
+ if (this.isInputValueCorrect(targetValue)) {
68
+ const parsedValue = this.parseValue(targetValue);
69
+ this.changeModel(parsedValue);
70
+ }
71
+ this.formattedValue = this.formatValue(this.value);
72
+ eventTarget.value = this.formattedValue;
73
+ const currentCaretPosition = selectionStart
74
+ + (this.formattedValue.length - previousFormattedValue.length === 2 ? 1 : 0);
75
+ this.input.nativeElement.setSelectionRange(currentCaretPosition, currentCaretPosition);
76
+ }
77
+ onArrowUp() {
78
+ this.increaseByStep();
79
+ }
80
+ onArrowDown() {
81
+ this.decreaseByStep();
82
+ }
83
+ onFocus() {
84
+ this.input.nativeElement.focus();
85
+ }
86
+ isInputValueCorrect(inputValue) {
87
+ return this.INPUT_VALUE_REGEX.test(inputValue) && this.isInputValueValid(inputValue);
88
+ }
89
+ isInputValueValid(inputValue) {
90
+ const [, fractionPart = ''] = inputValue.split(',');
91
+ return this.isNumberValid(inputValue) && this.isPrecisionCountCorrect(fractionPart);
92
+ }
93
+ isNumberValid(inputValue) {
94
+ if (inputValue === '-' && this._min > 0) {
95
+ return false;
96
+ }
97
+ if (inputValue === ',' || inputValue === '-' || inputValue === '-,' || inputValue === '') {
98
+ return true;
99
+ }
100
+ const convertedValue = +cuiReplace(cuiRemoveSpaces(inputValue), ',', '.');
101
+ return convertedValue <= this._max && convertedValue >= this._min;
102
+ }
103
+ isPrecisionCountCorrect(fractionPart = '') {
104
+ return fractionPart.length <= this.precision;
105
+ }
106
+ parseValue(inputValue) {
107
+ const valueWithoutSpaces = cuiRemoveSpaces(inputValue);
108
+ switch (valueWithoutSpaces) {
109
+ case ',':
110
+ return '0.';
111
+ case '-,':
112
+ return '-0.';
113
+ default:
114
+ return cuiReplace(valueWithoutSpaces, ',', '.');
115
+ }
116
+ }
117
+ formatValue(value) {
118
+ if (!value) {
119
+ return '';
120
+ }
121
+ const [integerPart, fractionPart] = value.split('.');
122
+ let formattedInteger = this.insertSpacesWithInterval(integerPart) || '0';
123
+ if (fractionPart !== undefined && integerPart.startsWith('-') && !formattedInteger.slice(1)) {
124
+ formattedInteger = '-0';
125
+ }
126
+ return fractionPart !== undefined ? `${formattedInteger},${fractionPart}` : formattedInteger;
127
+ }
128
+ insertSpacesWithInterval(value) {
129
+ const regex = new RegExp(`\\B(?=(\\d{${this.INTERVAL_BETWEEN_SPACES}})+(?!\\d))`, 'g');
130
+ return value.replace(regex, ' ');
131
+ }
132
+ changeModel(value) {
133
+ this.value = value;
134
+ this.onChange(value === '-' ? 0 : +value);
135
+ }
136
+ increaseByStep() {
137
+ const value = this.value === '-'
138
+ ? this.step
139
+ : (+(Number(this.value) + this.step).toFixed(this.precision));
140
+ if (value > this._max) {
141
+ return;
142
+ }
143
+ const convertedValue = value.toString();
144
+ this.formattedValue = this.formatValue(convertedValue);
145
+ this.changeModel(convertedValue);
146
+ }
147
+ decreaseByStep() {
148
+ const value = this.value === '-'
149
+ ? -this.step
150
+ : (+(Number(this.value) - this.step).toFixed(this.precision));
151
+ if (value < this._min) {
152
+ return;
153
+ }
154
+ const convertedValue = value.toString();
155
+ this.formattedValue = this.formatValue(convertedValue);
156
+ this.changeModel(convertedValue);
157
+ }
158
+ calculateValidMinValue(initialValue) {
159
+ return initialValue >= this.MIN_JS_NUMBER
160
+ ? initialValue
161
+ : this.MIN_JS_NUMBER;
162
+ }
163
+ calculateValidMaxValue(initialValue) {
164
+ return initialValue <= this.MAX_JS_NUMBER
165
+ ? initialValue
166
+ : this.MAX_JS_NUMBER;
167
+ }
168
+ }
169
+ CuiInputNumberComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiInputNumberComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
170
+ CuiInputNumberComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: CuiInputNumberComponent, selector: "cui-input-number", inputs: { step: "step", precision: "precision", min: "min", max: "max" }, host: { listeners: { "click": "onFocus()" }, properties: { "class._disabled": "this.isDisabled", "attr.data-size": "this.size", "class._with-error": "this.isError" } }, providers: [
171
+ CUI_TEXT_FILED_CONTROLLER_PROVIDER,
172
+ cuiProvide(NG_VALUE_ACCESSOR, CuiInputNumberComponent, true),
173
+ ], viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], ngImport: i0, template: "<cui-svg\n *ngIf=\"iconLeft\"\n [icon]=\"iconLeft\"\n color=\"var(--cui-base-500)\"\n></cui-svg>\n<input\n #input\n [ngModel]=\"formattedValue\"\n [attr.id]=\"id\"\n [attr.placeholder]=\"placeholder\"\n type=\"text\"\n [disabled]=\"isDisabled\"\n class=\"c-input\"\n (input)=\"onInput($event)\"\n (focus)=\"onTouched()\"\n (keydown.arrowUp)=\"onArrowUp()\"\n (keydown.arrowDown)=\"onArrowDown()\"\n>\n", styles: [":host{padding-right:13px;padding-left:13px;font-weight:400;font-size:14px;line-height:20px;display:flex;align-items:center;gap:8px;border:1px solid var(--cui-base-200);border-radius:8px;cursor:text;background:var(--cui-input);color:var(--cui-base-900);font-family:var(--cui-main-font)}:host:hover{border-color:var(--cui-base-300)}:host:focus-within{box-shadow:0 0 0 2px var(--cui-focus);border-color:var(--cui-info)}:host[data-size=sm]{padding-top:7px;padding-bottom:7px}:host[data-size=md]{padding-top:8px;padding-bottom:8px}:host._disabled{cursor:not-allowed;opacity:.5;background:var(--cui-base-50);border-color:var(--cui-base-200)}:host._with-error{border-color:var(--cui-danger)}:host._with-error:focus-within{box-shadow:0 0 0 2px #d92d2040}.c-input{padding:0;outline:none;margin:0;border-width:0;appearance:none;caret-color:currentColor;background:none;color:inherit;font:inherit;line-height:inherit;width:100%}.c-input:disabled{cursor:not-allowed}.c-input::placeholder{color:var(--cui-base-400)}.c-button{padding:0;border:0;flex-shrink:0;outline:none;cursor:pointer;appearance:none;color:inherit;font:inherit;background:inherit;text-decoration:none;-webkit-tap-highlight-color:transparent;display:flex}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.CuiSvgComponent, selector: "cui-svg[icon]", inputs: ["width", "height", "strokeWidth", "color", "icon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
174
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiInputNumberComponent, decorators: [{
175
+ type: Component,
176
+ args: [{ selector: 'cui-input-number', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
177
+ CUI_TEXT_FILED_CONTROLLER_PROVIDER,
178
+ cuiProvide(NG_VALUE_ACCESSOR, CuiInputNumberComponent, true),
179
+ ], template: "<cui-svg\n *ngIf=\"iconLeft\"\n [icon]=\"iconLeft\"\n color=\"var(--cui-base-500)\"\n></cui-svg>\n<input\n #input\n [ngModel]=\"formattedValue\"\n [attr.id]=\"id\"\n [attr.placeholder]=\"placeholder\"\n type=\"text\"\n [disabled]=\"isDisabled\"\n class=\"c-input\"\n (input)=\"onInput($event)\"\n (focus)=\"onTouched()\"\n (keydown.arrowUp)=\"onArrowUp()\"\n (keydown.arrowDown)=\"onArrowDown()\"\n>\n", styles: [":host{padding-right:13px;padding-left:13px;font-weight:400;font-size:14px;line-height:20px;display:flex;align-items:center;gap:8px;border:1px solid var(--cui-base-200);border-radius:8px;cursor:text;background:var(--cui-input);color:var(--cui-base-900);font-family:var(--cui-main-font)}:host:hover{border-color:var(--cui-base-300)}:host:focus-within{box-shadow:0 0 0 2px var(--cui-focus);border-color:var(--cui-info)}:host[data-size=sm]{padding-top:7px;padding-bottom:7px}:host[data-size=md]{padding-top:8px;padding-bottom:8px}:host._disabled{cursor:not-allowed;opacity:.5;background:var(--cui-base-50);border-color:var(--cui-base-200)}:host._with-error{border-color:var(--cui-danger)}:host._with-error:focus-within{box-shadow:0 0 0 2px #d92d2040}.c-input{padding:0;outline:none;margin:0;border-width:0;appearance:none;caret-color:currentColor;background:none;color:inherit;font:inherit;line-height:inherit;width:100%}.c-input:disabled{cursor:not-allowed}.c-input::placeholder{color:var(--cui-base-400)}.c-button{padding:0;border:0;flex-shrink:0;outline:none;cursor:pointer;appearance:none;color:inherit;font:inherit;background:inherit;text-decoration:none;-webkit-tap-highlight-color:transparent;display:flex}\n"] }]
180
+ }], propDecorators: { step: [{
181
+ type: Input
182
+ }], precision: [{
183
+ type: Input
184
+ }], min: [{
185
+ type: Input
186
+ }], max: [{
187
+ type: Input
188
+ }], isDisabled: [{
189
+ type: HostBinding,
190
+ args: ['class._disabled']
191
+ }], input: [{
192
+ type: ViewChild,
193
+ args: ['input']
194
+ }], size: [{
195
+ type: HostBinding,
196
+ args: ['attr.data-size']
197
+ }], isError: [{
198
+ type: HostBinding,
199
+ args: ['class._with-error']
200
+ }], onFocus: [{
201
+ type: HostListener,
202
+ args: ['click']
203
+ }] } });
204
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtbnVtYmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY29tcG9uZW50cy9pbnB1dC1udW1iZXIvaW5wdXQtbnVtYmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY29tcG9uZW50cy9pbnB1dC1udW1iZXIvaW5wdXQtbnVtYmVyLnRlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFdBQVcsRUFDWCxZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFDTCxTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFbkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUcxQyxPQUFPLEVBQUUsd0JBQXdCLEVBQXlCLE1BQU0sd0JBQXdCLENBQUM7QUFDekYsT0FBTyxFQUFFLGVBQWUsRUFBRSxVQUFVLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFMUQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLGtDQUFrQyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7Ozs7O0FBWWpHLE1BQU0sT0FBTyx1QkFBdUI7SUFWcEM7UUFXbUIsc0JBQWlCLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDOUMsMkJBQXNCLEdBQUcsTUFBTSxDQUFDLHlCQUF5QixDQUFDLENBQUM7UUFDM0QsMEJBQXFCLEdBQUcsTUFBTSxDQUFDLHdCQUF3QixDQUFDLENBQUM7UUFFdkQsa0JBQWEsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQzNCLGtCQUFhLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN4QixzQkFBaUIsR0FBRyxvQkFBb0Is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LGlCQUFpQiwyQkFBMkIsSUFBSSxDQUFDO3FCQUM3RDs4QkFvQk0sSUFBSTtzQkFEVixLQUFLO2dCQUlDLFNBQVM7c0JBRGYsS0FBSztnQkFJSyxHQUFHO3NCQURiLEtBQUs7Z0JBTUssR0FBRztzQkFEYixLQUFLO2dCQU1JLFVBQVU7c0JBRG5CLFdBQVc7dUJBQUMsaUJBQWlCO2dCQUlwQixLQUFLO3NCQURkLFNBQVM7dUJBQUMsT0FBTztnQkFnQkosSUFBSTtzQkFEakIsV0FBVzt1QkFBQyxnQkFBZ0I7Z0JBTWYsT0FBTztzQkFEcEIsV0FBVzt1QkFBQyxtQkFBbUI7Z0JBd0R0QixPQUFPO3NCQURoQixZQUFZO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEVsZW1lbnRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBIb3N0QmluZGluZyxcbiAgSG9zdExpc3RlbmVyLFxuICBpbmplY3QsXG4gIElucHV0LFxuICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgdHlwZSB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgdHlwZSB7IEN1aU51bGxhYmxlLCBDdWlPbkNoYW5nZSwgQ3VpT25Ub3VjaGVkIH0gZnJvbSAnQGN1YnktdWkvY2RrJztcbmltcG9ydCB7IGN1aVByb3ZpZGUgfSBmcm9tICdAY3VieS11aS9jZGsnO1xuaW1wb3J0IHR5cGUgeyBDdWlJY29uIH0gZnJvbSAnQGN1YnktdWkvaWNvbnMnO1xuXG5pbXBvcnQgeyBDVUlfSU5QVVRfTlVNQkVSX09QVElPTlMsIEN1aUlucHV0TnVtYmVyT3B0aW9ucyB9IGZyb20gJy4vaW5wdXQtbnVtYmVyLm9wdGlvbnMnO1xuaW1wb3J0IHsgY3VpUmVtb3ZlU3BhY2VzLCBjdWlSZXBsYWNlIH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xuaW1wb3J0IHsgQ3VpU2l6ZU1kLCBDdWlTaXplU20gfSBmcm9tICcuLi8uLi90eXBlcyc7XG5pbXBvcnQgeyBDVUlfVEVYVF9GSUVMRF9DT05UUk9MTEVSLCBDVUlfVEVYVF9GSUxFRF9DT05UUk9MTEVSX1BST1ZJREVSIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2N1aS1pbnB1dC1udW1iZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vaW5wdXQtbnVtYmVyLnRlbXBsYXRlLmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9pbnB1dC1udW1iZXIuc3R5bGUuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgcHJvdmlkZXJzOiBbXG4gICAgQ1VJX1RFWFRfRklMRURfQ09OVFJPTExFUl9QUk9WSURFUixcbiAgICBjdWlQcm92aWRlKE5HX1ZBTFVFX0FDQ0VTU09SLCBDdWlJbnB1dE51bWJlckNvbXBvbmVudCwgdHJ1ZSksXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgQ3VpSW5wdXROdW1iZXJDb21wb25lbnQgaW1wbGVtZW50cyBDdWlJbnB1dE51bWJlck9wdGlvbnMsIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgcHJpdmF0ZSByZWFkb25seSBjaGFuZ2VEZXRlY3RvclJlZiA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG4gIHByaXZhdGUgcmVhZG9ubHkgY3VpVGV4dEZpZWxkQ29udHJvbGxlciA9IGluamVjdChDVUlfVEVYVF9GSUVMRF9DT05UUk9MTEVSKTtcbiAgcHJpdmF0ZSByZWFkb25seSBjdWlJbnB1dE51bWJlck9wdGlvbnMgPSBpbmplY3QoQ1VJX0lOUFVUX05VTUJFUl9PUFRJT05TKTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgTUlOX0pTX05VTUJFUiA9IC0oMiAqKiA1Myk7XG4gIHByb3RlY3RlZCByZWFkb25seSBNQVhfSlNfTlVNQkVSID0gMiAqKiA1MztcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IElOUFVUX1ZBTFVFX1JFR0VYID0gL14tP1tcXGRcXHNdKigsXFxkKik/JC87XG4gIHByb3RlY3RlZCByZWFkb25seSBJTlRFUlZBTF9CRVRXRUVOX1NQQUNFUyA9IDM7XG5cbiAgcHJvdGVjdGVkIGZvcm1hdHRlZFZhbHVlID0gJyc7XG4gIHByb3RlY3RlZCBfbWluID0gdGhpcy5jYWxjdWxhdGVWYWxpZE1pblZhbHVlKHRoaXMuY3VpSW5wdXROdW1iZXJPcHRpb25zLm1pbik7XG4gIHByb3RlY3RlZCBfbWF4ID0gdGhpcy5jYWxjdWxhdGVWYWxpZE1heFZhbHVlKHRoaXMuY3VpSW5wdXROdW1iZXJPcHRpb25zLm1heCk7XG4gIHByb3RlY3RlZCB2YWx1ZSE6IEN1aU51bGxhYmxlPHN0cmluZz47XG4gIHByb3RlY3RlZCBvbkNoYW5nZSE6IEN1aU9uQ2hhbmdlPG51bWJlcj47XG4gIHByb3RlY3RlZCBvblRvdWNoZWQhOiBDdWlPblRvdWNoZWQ7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHN0ZXAgPSB0aGlzLmN1aUlucHV0TnVtYmVyT3B0aW9ucy5zdGVwO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBwcmVjaXNpb24gPSB0aGlzLmN1aUlucHV0TnVtYmVyT3B0aW9ucy5wcmVjaXNpb247XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBtaW4obWluOiBudW1iZXIpIHtcbiAgICB0aGlzLl9taW4gPSB0aGlzLmNhbGN1bGF0ZVZhbGlkTWluVmFsdWUobWluKTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgbWF4KG1heDogbnVtYmVyKSB7XG4gICAgdGhpcy5fbWF4ID0gdGhpcy5jYWxjdWxhdGVWYWxpZE1heFZhbHVlKG1heCk7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLl9kaXNhYmxlZCcpXG4gIHByb3RlY3RlZCBpc0Rpc2FibGVkITogYm9vbGVhbjtcblxuICBAVmlld0NoaWxkKCdpbnB1dCcpXG4gIHByb3RlY3RlZCBpbnB1dCE6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XG5cbiAgcHJvdGVjdGVkIGdldCBpZCgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLmN1aVRleHRGaWVsZENvbnRyb2xsZXIuaWQ7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0IHBsYWNlaG9sZGVyKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuY3VpVGV4dEZpZWxkQ29udHJvbGxlci5wbGFjZWhvbGRlcjtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgaWNvbkxlZnQoKTogQ3VpSWNvbiB8IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuY3VpVGV4dEZpZWxkQ29udHJvbGxlci5pY29uTGVmdDtcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnYXR0ci5kYXRhLXNpemUnKVxuICBwcm90ZWN0ZWQgZ2V0IHNpemUoKTogQ3VpU2l6ZVNtIHwgQ3VpU2l6ZU1kIHtcbiAgICByZXR1cm4gdGhpcy5jdWlUZXh0RmllbGRDb250cm9sbGVyLnNpemU7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLl93aXRoLWVycm9yJylcbiAgcHJvdGVjdGVkIGdldCBpc0Vycm9yKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmN1aVRleHRGaWVsZENvbnRyb2xsZXIuaXNFcnJvcjtcbiAgfVxuXG4gIHB1YmxpYyB3cml0ZVZhbHVlKHZhbHVlOiBDdWlOdWxsYWJsZTxudW1iZXI+KTogdm9pZCB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlPy50b1N0cmluZygpID8/IG51bGw7XG4gICAgdGhpcy5mb3JtYXR0ZWRWYWx1ZSA9IHRoaXMuZm9ybWF0VmFsdWUodGhpcy52YWx1ZSk7XG5cbiAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHVibGljIHJlZ2lzdGVyT25DaGFuZ2UoZm46IEN1aU9uQ2hhbmdlPG51bWJlcj4pOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gIH1cblxuICBwdWJsaWMgcmVnaXN0ZXJPblRvdWNoZWQoZm46IEN1aU9uVG91Y2hlZCk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gIH1cblxuICBwdWJsaWMgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5pc0Rpc2FibGVkID0gaXNEaXNhYmxlZDtcblxuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb25JbnB1dChldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBldmVudFRhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50O1xuICAgIGNvbnN0IHRhcmdldFZhbHVlID0gZXZlbnRUYXJnZXQudmFsdWU7XG4gICAgY29uc3Qgc2VsZWN0aW9uU3RhcnQgPSB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuc2VsZWN0aW9uU3RhcnQgPz8gMDtcbiAgICBjb25zdCBwcmV2aW91c0Zvcm1hdHRlZFZhbHVlID0gdGhpcy5mb3JtYXR0ZWRWYWx1ZTtcblxuICAgIGlmICh0aGlzLmlzSW5wdXRWYWx1ZUNvcnJlY3QodGFyZ2V0VmFsdWUpKSB7XG4gICAgICBjb25zdCBwYXJzZWRWYWx1ZSA9IHRoaXMucGFyc2VWYWx1ZSh0YXJnZXRWYWx1ZSk7XG5cbiAgICAgIHRoaXMuY2hhbmdlTW9kZWwocGFyc2VkVmFsdWUpO1xuICAgIH1cblxuICAgIHRoaXMuZm9ybWF0dGVkVmFsdWUgPSB0aGlzLmZvcm1hdFZhbHVlKHRoaXMudmFsdWUpO1xuICAgIGV2ZW50VGFyZ2V0LnZhbHVlID0gdGhpcy5mb3JtYXR0ZWRWYWx1ZTtcblxuICAgIGNvbnN0IGN1cnJlbnRDYXJldFBvc2l0aW9uID0gc2VsZWN0aW9uU3RhcnRcbiAgICAgICsgKHRoaXMuZm9ybWF0dGVkVmFsdWUubGVuZ3RoIC0gcHJldmlvdXNGb3JtYXR0ZWRWYWx1ZS5sZW5ndGggPT09IDIgPyAxIDogMCk7XG5cbiAgICB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuc2V0U2VsZWN0aW9uUmFuZ2UoY3VycmVudENhcmV0UG9zaXRpb24sIGN1cnJlbnRDYXJldFBvc2l0aW9uKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvbkFycm93VXAoKTogdm9pZCB7XG4gICAgdGhpcy5pbmNyZWFzZUJ5U3RlcCgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG9uQXJyb3dEb3duKCk6IHZvaWQge1xuICAgIHRoaXMuZGVjcmVhc2VCeVN0ZXAoKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJylcbiAgcHJvdGVjdGVkIG9uRm9jdXMoKTogdm9pZCB7XG4gICAgdGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gIH1cblxuICBwcml2YXRlIGlzSW5wdXRWYWx1ZUNvcnJlY3QoaW5wdXRWYWx1ZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuSU5QVVRfVkFMVUVfUkVHRVgudGVzdChpbnB1dFZhbHVlKSAmJiB0aGlzLmlzSW5wdXRWYWx1ZVZhbGlkKGlucHV0VmFsdWUpO1xuICB9XG5cbiAgcHJpdmF0ZSBpc0lucHV0VmFsdWVWYWxpZChpbnB1dFZhbHVlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBjb25zdCBbLCBmcmFjdGlvblBhcnQgPSAnJ10gPSBpbnB1dFZhbHVlLnNwbGl0KCcsJyk7XG5cbiAgICByZXR1cm4gdGhpcy5pc051bWJlclZhbGlkKGlucHV0VmFsdWUpICYmIHRoaXMuaXNQcmVjaXNpb25Db3VudENvcnJlY3QoZnJhY3Rpb25QYXJ0KTtcbiAgfVxuXG4gIHByaXZhdGUgaXNOdW1iZXJWYWxpZChpbnB1dFZhbHVlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBpZiAoaW5wdXRWYWx1ZSA9PT0gJy0nICYmIHRoaXMuX21pbiA+IDApIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBpZiAoaW5wdXRWYWx1ZSA9PT0gJywnIHx8IGlucHV0VmFsdWUgPT09ICctJyB8fCBpbnB1dFZhbHVlID09PSAnLSwnIHx8IGlucHV0VmFsdWUgPT09ICcnKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBjb25zdCBjb252ZXJ0ZWRWYWx1ZSA9ICtjdWlSZXBsYWNlKFxuICAgICAgY3VpUmVtb3ZlU3BhY2VzKGlucHV0VmFsdWUpLFxuICAgICAgJywnLFxuICAgICAgJy4nXG4gICAgKTtcblxuICAgIHJldHVybiBjb252ZXJ0ZWRWYWx1ZSA8PSB0aGlzLl9tYXggJiYgY29udmVydGVkVmFsdWUgPj0gdGhpcy5fbWluO1xuICB9XG5cbiAgcHJpdmF0ZSBpc1ByZWNpc2lvbkNvdW50Q29ycmVjdChmcmFjdGlvblBhcnQgPSAnJyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBmcmFjdGlvblBhcnQubGVuZ3RoIDw9IHRoaXMucHJlY2lzaW9uO1xuICB9XG5cbiAgcHJpdmF0ZSBwYXJzZVZhbHVlKGlucHV0VmFsdWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3QgdmFsdWVXaXRob3V0U3BhY2VzID0gY3VpUmVtb3ZlU3BhY2VzKGlucHV0VmFsdWUpO1xuXG4gICAgc3dpdGNoICh2YWx1ZVdpdGhvdXRTcGFjZXMpIHtcbiAgICAgIGNhc2UgJywnOlxuICAgICAgICByZXR1cm4gJzAuJztcblxuICAgICAgY2FzZSAnLSwnOlxuICAgICAgICByZXR1cm4gJy0wLic7XG5cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiBjdWlSZXBsYWNlKHZhbHVlV2l0aG91dFNwYWNlcywgJywnLCAnLicpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZm9ybWF0VmFsdWUodmFsdWU6IEN1aU51bGxhYmxlPHN0cmluZz4pOiBzdHJpbmcge1xuICAgIGlmICghdmFsdWUpIHtcbiAgICAgIHJldHVybiAnJztcbiAgICB9XG5cbiAgICBjb25zdCBbaW50ZWdlclBhcnQsIGZyYWN0aW9uUGFydF0gPSB2YWx1ZS5zcGxpdCgnLicpO1xuICAgIGxldCBmb3JtYXR0ZWRJbnRlZ2VyID0gdGhpcy5pbnNlcnRTcGFjZXNXaXRoSW50ZXJ2YWwoaW50ZWdlclBhcnQpIHx8ICcwJztcblxuICAgIGlmIChmcmFjdGlvblBhcnQgIT09IHVuZGVmaW5lZCAmJiBpbnRlZ2VyUGFydC5zdGFydHNXaXRoKCctJykgJiYgIWZvcm1hdHRlZEludGVnZXIuc2xpY2UoMSkpIHtcbiAgICAgIGZvcm1hdHRlZEludGVnZXIgPSAnLTAnO1xuICAgIH1cblxuICAgIHJldHVybiBmcmFjdGlvblBhcnQgIT09IHVuZGVmaW5lZCA/IGAke2Zvcm1hdHRlZEludGVnZXJ9LCR7ZnJhY3Rpb25QYXJ0fWAgOiBmb3JtYXR0ZWRJbnRlZ2VyO1xuICB9XG5cbiAgcHJpdmF0ZSBpbnNlcnRTcGFjZXNXaXRoSW50ZXJ2YWwodmFsdWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3QgcmVnZXggPSBuZXcgUmVnRXhwKGBcXFxcQig/PShcXFxcZHske3RoaXMuSU5URVJWQUxfQkVUV0VFTl9TUEFDRVN9fSkrKD8hXFxcXGQpKWAsICdnJyk7XG5cbiAgICByZXR1cm4gdmFsdWUucmVwbGFjZShyZWdleCwgJyAnKTtcbiAgfVxuXG4gIHByaXZhdGUgY2hhbmdlTW9kZWwodmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcblxuICAgIHRoaXMub25DaGFuZ2UodmFsdWUgPT09ICctJyA/IDAgOiArdmFsdWUpO1xuICB9XG5cbiAgcHJpdmF0ZSBpbmNyZWFzZUJ5U3RlcCgpOiB2b2lkIHtcbiAgICBjb25zdCB2YWx1ZSA9IHRoaXMudmFsdWUgPT09ICctJ1xuICAgICAgPyB0aGlzLnN0ZXBcbiAgICAgIDogKCsoTnVtYmVyKHRoaXMudmFsdWUpICsgdGhpcy5zdGVwKS50b0ZpeGVkKHRoaXMucHJlY2lzaW9uKSk7XG5cbiAgICBpZiAodmFsdWUgPiB0aGlzLl9tYXgpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBjb252ZXJ0ZWRWYWx1ZSA9IHZhbHVlLnRvU3RyaW5nKCk7XG5cbiAgICB0aGlzLmZvcm1hdHRlZFZhbHVlID0gdGhpcy5mb3JtYXRWYWx1ZShjb252ZXJ0ZWRWYWx1ZSk7XG5cbiAgICB0aGlzLmNoYW5nZU1vZGVsKGNvbnZlcnRlZFZhbHVlKTtcbiAgfVxuXG4gIHByaXZhdGUgZGVjcmVhc2VCeVN0ZXAoKTogdm9pZCB7XG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLnZhbHVlID09PSAnLSdcbiAgICAgID8gLXRoaXMuc3RlcFxuICAgICAgOiAoKyhOdW1iZXIodGhpcy52YWx1ZSkgLSB0aGlzLnN0ZXApLnRvRml4ZWQodGhpcy5wcmVjaXNpb24pKTtcblxuICAgIGlmICh2YWx1ZSA8IHRoaXMuX21pbikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGNvbnZlcnRlZFZhbHVlID0gdmFsdWUudG9TdHJpbmcoKTtcblxuICAgIHRoaXMuZm9ybWF0dGVkVmFsdWUgPSB0aGlzLmZvcm1hdFZhbHVlKGNvbnZlcnRlZFZhbHVlKTtcblxuICAgIHRoaXMuY2hhbmdlTW9kZWwoY29udmVydGVkVmFsdWUpO1xuICB9XG5cbiAgcHJpdmF0ZSBjYWxjdWxhdGVWYWxpZE1pblZhbHVlKGluaXRpYWxWYWx1ZTogbnVtYmVyKTogbnVtYmVyIHtcbiAgICByZXR1cm4gaW5pdGlhbFZhbHVlID49IHRoaXMuTUlOX0pTX05VTUJFUlxuICAgICAgPyBpbml0aWFsVmFsdWVcbiAgICAgIDogdGhpcy5NSU5fSlNfTlVNQkVSO1xuICB9XG5cbiAgcHJpdmF0ZSBjYWxjdWxhdGVWYWxpZE1heFZhbHVlKGluaXRpYWxWYWx1ZTogbnVtYmVyKTogbnVtYmVyIHtcbiAgICByZXR1cm4gaW5pdGlhbFZhbHVlIDw9IHRoaXMuTUFYX0pTX05VTUJFUlxuICAgICAgPyBpbml0aWFsVmFsdWVcbiAgICAgIDogdGhpcy5NQVhfSlNfTlVNQkVSO1xuICB9XG59XG4iLCI8Y3VpLXN2Z1xuICAqbmdJZj1cImljb25MZWZ0XCJcbiAgW2ljb25dPVwiaWNvbkxlZnRcIlxuICBjb2xvcj1cInZhcigtLWN1aS1iYXNlLTUwMClcIlxuPjwvY3VpLXN2Zz5cbjxpbnB1dFxuICAjaW5wdXRcbiAgW25nTW9kZWxdPVwiZm9ybWF0dGVkVmFsdWVcIlxuICBbYXR0ci5pZF09XCJpZFwiXG4gIFthdHRyLnBsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgdHlwZT1cInRleHRcIlxuICBbZGlzYWJsZWRdPVwiaXNEaXNhYmxlZFwiXG4gIGNsYXNzPVwiYy1pbnB1dFwiXG4gIChpbnB1dCk9XCJvbklucHV0KCRldmVudClcIlxuICAoZm9jdXMpPVwib25Ub3VjaGVkKClcIlxuICAoa2V5ZG93bi5hcnJvd1VwKT1cIm9uQXJyb3dVcCgpXCJcbiAgKGtleWRvd24uYXJyb3dEb3duKT1cIm9uQXJyb3dEb3duKClcIlxuPlxuIl19
@@ -1,33 +1,33 @@
1
- import { NgModule } from '@angular/core';
2
- import { CommonModule } from '@angular/common';
3
- import { FormsModule } from '@angular/forms';
4
- import { CuiInputNumberComponent } from './input-number.component';
5
- import { CuiSvgModule } from '../svg';
6
- import { CuiTextFieldControllerModule } from '../../directives';
7
- import * as i0 from "@angular/core";
8
- export class CuiInputNumberModule {
9
- }
10
- CuiInputNumberModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiInputNumberModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
11
- CuiInputNumberModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: CuiInputNumberModule, declarations: [CuiInputNumberComponent], imports: [CommonModule,
12
- FormsModule,
13
- CuiSvgModule], exports: [CuiInputNumberComponent,
14
- CuiTextFieldControllerModule] });
15
- CuiInputNumberModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiInputNumberModule, imports: [CommonModule,
16
- FormsModule,
17
- CuiSvgModule, CuiTextFieldControllerModule] });
18
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiInputNumberModule, decorators: [{
19
- type: NgModule,
20
- args: [{
21
- imports: [
22
- CommonModule,
23
- FormsModule,
24
- CuiSvgModule
25
- ],
26
- declarations: [CuiInputNumberComponent],
27
- exports: [
28
- CuiInputNumberComponent,
29
- CuiTextFieldControllerModule
30
- ]
31
- }]
32
- }] });
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtbnVtYmVyLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY29tcG9uZW50cy9pbnB1dC1udW1iZXIvaW5wdXQtbnVtYmVyLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFN0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDbkUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUN0QyxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7QUFjaEUsTUFBTSxPQUFPLG9CQUFvQjs7a0hBQXBCLG9CQUFvQjttSEFBcEIsb0JBQW9CLGlCQU5oQix1QkFBdUIsYUFKcEMsWUFBWTtRQUNaLFdBQVc7UUFDWCxZQUFZLGFBSVosdUJBQXVCO1FBQ3ZCLDRCQUE0QjttSEFHbkIsb0JBQW9CLFlBVjdCLFlBQVk7UUFDWixXQUFXO1FBQ1gsWUFBWSxFQUtaLDRCQUE0Qjs0RkFHbkIsb0JBQW9CO2tCQVpoQyxRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsWUFBWTtxQkFDYjtvQkFDRCxZQUFZLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQztvQkFDdkMsT0FBTyxFQUFFO3dCQUNQLHVCQUF1Qjt3QkFDdkIsNEJBQTRCO3FCQUM3QjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuaW1wb3J0IHsgQ3VpSW5wdXROdW1iZXJDb21wb25lbnQgfSBmcm9tICcuL2lucHV0LW51bWJlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDdWlTdmdNb2R1bGUgfSBmcm9tICcuLi9zdmcnO1xyXG5pbXBvcnQgeyBDdWlUZXh0RmllbGRDb250cm9sbGVyTW9kdWxlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcyc7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgQ3VpU3ZnTW9kdWxlXHJcbiAgXSxcclxuICBkZWNsYXJhdGlvbnM6IFtDdWlJbnB1dE51bWJlckNvbXBvbmVudF0sXHJcbiAgZXhwb3J0czogW1xyXG4gICAgQ3VpSW5wdXROdW1iZXJDb21wb25lbnQsXHJcbiAgICBDdWlUZXh0RmllbGRDb250cm9sbGVyTW9kdWxlXHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ3VpSW5wdXROdW1iZXJNb2R1bGUge1xyXG59XHJcbiJdfQ==
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { FormsModule } from '@angular/forms';
4
+ import { CuiInputNumberComponent } from './input-number.component';
5
+ import { CuiSvgModule } from '../svg';
6
+ import { CuiTextFieldControllerModule } from '../../directives';
7
+ import * as i0 from "@angular/core";
8
+ export class CuiInputNumberModule {
9
+ }
10
+ CuiInputNumberModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiInputNumberModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
11
+ CuiInputNumberModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: CuiInputNumberModule, declarations: [CuiInputNumberComponent], imports: [CommonModule,
12
+ FormsModule,
13
+ CuiSvgModule], exports: [CuiInputNumberComponent,
14
+ CuiTextFieldControllerModule] });
15
+ CuiInputNumberModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiInputNumberModule, imports: [CommonModule,
16
+ FormsModule,
17
+ CuiSvgModule, CuiTextFieldControllerModule] });
18
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiInputNumberModule, decorators: [{
19
+ type: NgModule,
20
+ args: [{
21
+ imports: [
22
+ CommonModule,
23
+ FormsModule,
24
+ CuiSvgModule
25
+ ],
26
+ declarations: [CuiInputNumberComponent],
27
+ exports: [
28
+ CuiInputNumberComponent,
29
+ CuiTextFieldControllerModule
30
+ ]
31
+ }]
32
+ }] });
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtbnVtYmVyLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY29tcG9uZW50cy9pbnB1dC1udW1iZXIvaW5wdXQtbnVtYmVyLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFN0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDbkUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUN0QyxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7QUFjaEUsTUFBTSxPQUFPLG9CQUFvQjs7a0hBQXBCLG9CQUFvQjttSEFBcEIsb0JBQW9CLGlCQU5oQix1QkFBdUIsYUFKcEMsWUFBWTtRQUNaLFdBQVc7UUFDWCxZQUFZLGFBSVosdUJBQXVCO1FBQ3ZCLDRCQUE0QjttSEFHbkIsb0JBQW9CLFlBVjdCLFlBQVk7UUFDWixXQUFXO1FBQ1gsWUFBWSxFQUtaLDRCQUE0Qjs0RkFHbkIsb0JBQW9CO2tCQVpoQyxRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsWUFBWTtxQkFDYjtvQkFDRCxZQUFZLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQztvQkFDdkMsT0FBTyxFQUFFO3dCQUNQLHVCQUF1Qjt3QkFDdkIsNEJBQTRCO3FCQUM3QjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IEN1aUlucHV0TnVtYmVyQ29tcG9uZW50IH0gZnJvbSAnLi9pbnB1dC1udW1iZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEN1aVN2Z01vZHVsZSB9IGZyb20gJy4uL3N2Zyc7XG5pbXBvcnQgeyBDdWlUZXh0RmllbGRDb250cm9sbGVyTW9kdWxlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcyc7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgQ3VpU3ZnTW9kdWxlXG4gIF0sXG4gIGRlY2xhcmF0aW9uczogW0N1aUlucHV0TnVtYmVyQ29tcG9uZW50XSxcbiAgZXhwb3J0czogW1xuICAgIEN1aUlucHV0TnVtYmVyQ29tcG9uZW50LFxuICAgIEN1aVRleHRGaWVsZENvbnRyb2xsZXJNb2R1bGVcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBDdWlJbnB1dE51bWJlck1vZHVsZSB7XG59XG4iXX0=
@@ -1,11 +1,11 @@
1
- import { InjectionToken } from '@angular/core';
2
- export const CUI_INPUT_NUMBER_DEFAULT_OPTIONS = {
3
- min: -Infinity,
4
- max: Infinity,
5
- step: 1,
6
- precision: 3
7
- };
8
- export const CUI_INPUT_NUMBER_OPTIONS = new InjectionToken('', {
9
- factory: () => CUI_INPUT_NUMBER_DEFAULT_OPTIONS
10
- });
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtbnVtYmVyLm9wdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2NvbXBvbmVudHMvaW5wdXQtbnVtYmVyL2lucHV0LW51bWJlci5vcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFTL0MsTUFBTSxDQUFDLE1BQU0sZ0NBQWdDLEdBQTBCO0lBQ3JFLEdBQUcsRUFBRSxDQUFDLFFBQVE7SUFDZCxHQUFHLEVBQUUsUUFBUTtJQUNiLElBQUksRUFBRSxDQUFDO0lBQ1AsU0FBUyxFQUFFLENBQUM7Q0FDYixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsSUFBSSxjQUFjLENBQUMsRUFBRSxFQUFFO0lBQzdELE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxnQ0FBZ0M7Q0FDaEQsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ3VpSW5wdXROdW1iZXJPcHRpb25zIHtcclxuICByZWFkb25seSBtaW46IG51bWJlcjtcclxuICByZWFkb25seSBtYXg6IG51bWJlcjtcclxuICByZWFkb25seSBzdGVwOiBudW1iZXI7XHJcbiAgcmVhZG9ubHkgcHJlY2lzaW9uOiBudW1iZXI7XHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBDVUlfSU5QVVRfTlVNQkVSX0RFRkFVTFRfT1BUSU9OUzogQ3VpSW5wdXROdW1iZXJPcHRpb25zID0ge1xyXG4gIG1pbjogLUluZmluaXR5LFxyXG4gIG1heDogSW5maW5pdHksXHJcbiAgc3RlcDogMSxcclxuICBwcmVjaXNpb246IDNcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBDVUlfSU5QVVRfTlVNQkVSX09QVElPTlMgPSBuZXcgSW5qZWN0aW9uVG9rZW4oJycsIHtcclxuICBmYWN0b3J5OiAoKSA9PiBDVUlfSU5QVVRfTlVNQkVSX0RFRkFVTFRfT1BUSU9OU1xyXG59KTtcclxuXHJcbiJdfQ==
1
+ import { InjectionToken } from '@angular/core';
2
+ export const CUI_INPUT_NUMBER_DEFAULT_OPTIONS = {
3
+ min: -Infinity,
4
+ max: Infinity,
5
+ step: 1,
6
+ precision: 3
7
+ };
8
+ export const CUI_INPUT_NUMBER_OPTIONS = new InjectionToken('', {
9
+ factory: () => CUI_INPUT_NUMBER_DEFAULT_OPTIONS
10
+ });
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtbnVtYmVyLm9wdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2NvbXBvbmVudHMvaW5wdXQtbnVtYmVyL2lucHV0LW51bWJlci5vcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFTL0MsTUFBTSxDQUFDLE1BQU0sZ0NBQWdDLEdBQTBCO0lBQ3JFLEdBQUcsRUFBRSxDQUFDLFFBQVE7SUFDZCxHQUFHLEVBQUUsUUFBUTtJQUNiLElBQUksRUFBRSxDQUFDO0lBQ1AsU0FBUyxFQUFFLENBQUM7Q0FDYixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsSUFBSSxjQUFjLENBQUMsRUFBRSxFQUFFO0lBQzdELE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxnQ0FBZ0M7Q0FDaEQsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGludGVyZmFjZSBDdWlJbnB1dE51bWJlck9wdGlvbnMge1xuICByZWFkb25seSBtaW46IG51bWJlcjtcbiAgcmVhZG9ubHkgbWF4OiBudW1iZXI7XG4gIHJlYWRvbmx5IHN0ZXA6IG51bWJlcjtcbiAgcmVhZG9ubHkgcHJlY2lzaW9uOiBudW1iZXI7XG59XG5cbmV4cG9ydCBjb25zdCBDVUlfSU5QVVRfTlVNQkVSX0RFRkFVTFRfT1BUSU9OUzogQ3VpSW5wdXROdW1iZXJPcHRpb25zID0ge1xuICBtaW46IC1JbmZpbml0eSxcbiAgbWF4OiBJbmZpbml0eSxcbiAgc3RlcDogMSxcbiAgcHJlY2lzaW9uOiAzXG59O1xuXG5leHBvcnQgY29uc3QgQ1VJX0lOUFVUX05VTUJFUl9PUFRJT05TID0gbmV3IEluamVjdGlvblRva2VuKCcnLCB7XG4gIGZhY3Rvcnk6ICgpID0+IENVSV9JTlBVVF9OVU1CRVJfREVGQVVMVF9PUFRJT05TXG59KTtcblxuIl19
@@ -1,3 +1,3 @@
1
- export * from './input-password.component';
2
- export * from './input-password.module';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2NvbXBvbmVudHMvaW5wdXQtcGFzc3dvcmQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLHlCQUF5QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9pbnB1dC1wYXNzd29yZC5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2lucHV0LXBhc3N3b3JkLm1vZHVsZSc7XHJcbiJdfQ==
1
+ export * from './input-password.component';
2
+ export * from './input-password.module';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2NvbXBvbmVudHMvaW5wdXQtcGFzc3dvcmQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLHlCQUF5QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9pbnB1dC1wYXNzd29yZC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9pbnB1dC1wYXNzd29yZC5tb2R1bGUnO1xuIl19