tin-spa 9.0.0 → 9.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (249) hide show
  1. package/bundles/tin-spa.umd.js +4416 -1589
  2. package/bundles/tin-spa.umd.js.map +1 -1
  3. package/bundles/tin-spa.umd.min.js +2 -2
  4. package/bundles/tin-spa.umd.min.js.map +1 -1
  5. package/esm2015/lib/classes/Classes.js +58 -45
  6. package/esm2015/lib/classes/TinCore.js +137 -0
  7. package/esm2015/lib/components/activity/activity.component.js +84 -18
  8. package/esm2015/lib/components/attach/attach.component.js +101 -27
  9. package/esm2015/lib/components/change-password/change-password.component.js +122 -34
  10. package/esm2015/lib/components/check/check.component.js +39 -33
  11. package/esm2015/lib/components/chips/chips.component.js +75 -35
  12. package/esm2015/lib/components/create-account/create-account.component.js +124 -42
  13. package/esm2015/lib/components/date/date.component.js +54 -33
  14. package/esm2015/lib/components/datetime/datetime.component.js +43 -30
  15. package/esm2015/lib/components/filter/filter.component.js +64 -0
  16. package/esm2015/lib/components/html/html.component.js +30 -25
  17. package/esm2015/lib/components/label/label.component.js +109 -21
  18. package/esm2015/lib/components/loader/loader.component.js +43 -20
  19. package/esm2015/lib/components/login/login.component.js +194 -76
  20. package/esm2015/lib/components/logs/logs.component.js +180 -28
  21. package/esm2015/lib/components/message/messageDialog.component.js +128 -17
  22. package/esm2015/lib/components/money/currency-input-mask.directive.js +187 -0
  23. package/esm2015/lib/components/money/currency-input-mask.module.js +30 -0
  24. package/esm2015/lib/components/money/money.component.js +141 -39
  25. package/esm2015/lib/components/nav-menu/nav-menu.component.js +174 -21
  26. package/esm2015/lib/components/option/option.component.js +107 -40
  27. package/esm2015/lib/components/profile/profile.component.js +143 -53
  28. package/esm2015/lib/components/recover-account/recover-account.component.js +48 -26
  29. package/esm2015/lib/components/roles/addRoleDialog.component.js +99 -26
  30. package/esm2015/lib/components/roles/roles.component.js +153 -73
  31. package/esm2015/lib/components/select/select.component.js +108 -48
  32. package/esm2015/lib/components/settings/settings.component.js +76 -21
  33. package/esm2015/lib/components/signup/signup.component.js +107 -24
  34. package/esm2015/lib/components/steps/steps.component.js +47 -31
  35. package/esm2015/lib/components/table/table.component.js +301 -35
  36. package/esm2015/lib/components/text/text.component.js +146 -71
  37. package/esm2015/lib/components/tiles/tiles.component.js +75 -21
  38. package/esm2015/lib/components/timeout/timeout.component.js +65 -22
  39. package/esm2015/lib/components/tin-spa.component.js +19 -12
  40. package/esm2015/lib/components/users/users.component.js +308 -65
  41. package/esm2015/lib/components/viewer/viewer.component.js +64 -39
  42. package/esm2015/lib/components/viewer/viewerDialog.component.js +73 -18
  43. package/esm2015/lib/dnd.directive.js +30 -25
  44. package/esm2015/lib/modules/spa-admin.module.js +65 -51
  45. package/esm2015/lib/modules/spa-index.module.js +45 -20
  46. package/esm2015/lib/modules/spa-mat.module.js +40 -25
  47. package/esm2015/lib/modules/spa-user.module.js +43 -19
  48. package/esm2015/lib/services/auth.service.js +39 -50
  49. package/esm2015/lib/services/data.service.js +82 -49
  50. package/esm2015/lib/services/export.service.js +11 -11
  51. package/esm2015/lib/services/http.service.js +79 -0
  52. package/esm2015/lib/services/loader-interceptor.service.js +30 -30
  53. package/esm2015/lib/services/loader.service.js +11 -11
  54. package/esm2015/lib/services/log.service.js +12 -12
  55. package/esm2015/lib/services/message.service.js +11 -17
  56. package/esm2015/lib/services/storage.service.js +12 -11
  57. package/esm2015/lib/services/tin-spa.service.js +11 -11
  58. package/esm2015/lib/tin-spa.module.js +113 -48
  59. package/esm2015/public-api.js +4 -6
  60. package/esm2015/tin-spa.js +1 -5
  61. package/esm5/lib/classes/Classes.js +70 -55
  62. package/esm5/lib/classes/TinCore.js +164 -0
  63. package/esm5/lib/components/activity/activity.component.js +82 -15
  64. package/esm5/lib/components/attach/attach.component.js +100 -24
  65. package/esm5/lib/components/change-password/change-password.component.js +120 -31
  66. package/esm5/lib/components/check/check.component.js +37 -30
  67. package/esm5/lib/components/chips/chips.component.js +73 -32
  68. package/esm5/lib/components/create-account/create-account.component.js +122 -39
  69. package/esm5/lib/components/date/date.component.js +52 -30
  70. package/esm5/lib/components/datetime/datetime.component.js +41 -27
  71. package/esm5/lib/components/filter/filter.component.js +66 -0
  72. package/esm5/lib/components/html/html.component.js +28 -22
  73. package/esm5/lib/components/label/label.component.js +107 -18
  74. package/esm5/lib/components/loader/loader.component.js +41 -17
  75. package/esm5/lib/components/login/login.component.js +193 -74
  76. package/esm5/lib/components/logs/logs.component.js +178 -25
  77. package/esm5/lib/components/message/messageDialog.component.js +126 -14
  78. package/esm5/lib/components/money/currency-input-mask.directive.js +193 -0
  79. package/esm5/lib/components/money/currency-input-mask.module.js +34 -0
  80. package/esm5/lib/components/money/money.component.js +139 -36
  81. package/esm5/lib/components/nav-menu/nav-menu.component.js +172 -18
  82. package/esm5/lib/components/option/option.component.js +105 -37
  83. package/esm5/lib/components/profile/profile.component.js +141 -50
  84. package/esm5/lib/components/recover-account/recover-account.component.js +46 -23
  85. package/esm5/lib/components/roles/addRoleDialog.component.js +97 -23
  86. package/esm5/lib/components/roles/roles.component.js +152 -72
  87. package/esm5/lib/components/select/select.component.js +106 -45
  88. package/esm5/lib/components/settings/settings.component.js +74 -18
  89. package/esm5/lib/components/signup/signup.component.js +105 -21
  90. package/esm5/lib/components/steps/steps.component.js +46 -28
  91. package/esm5/lib/components/table/table.component.js +299 -32
  92. package/esm5/lib/components/text/text.component.js +144 -68
  93. package/esm5/lib/components/tiles/tiles.component.js +73 -18
  94. package/esm5/lib/components/timeout/timeout.component.js +63 -19
  95. package/esm5/lib/components/tin-spa.component.js +16 -8
  96. package/esm5/lib/components/users/users.component.js +307 -62
  97. package/esm5/lib/components/viewer/viewer.component.js +62 -36
  98. package/esm5/lib/components/viewer/viewerDialog.component.js +71 -15
  99. package/esm5/lib/dnd.directive.js +28 -22
  100. package/esm5/lib/modules/spa-admin.module.js +63 -48
  101. package/esm5/lib/modules/spa-index.module.js +43 -17
  102. package/esm5/lib/modules/spa-mat.module.js +38 -22
  103. package/esm5/lib/modules/spa-user.module.js +41 -16
  104. package/esm5/lib/services/auth.service.js +37 -47
  105. package/esm5/lib/services/data.service.js +89 -55
  106. package/esm5/lib/services/export.service.js +9 -8
  107. package/esm5/lib/services/http.service.js +81 -0
  108. package/esm5/lib/services/loader-interceptor.service.js +28 -27
  109. package/esm5/lib/services/loader.service.js +9 -8
  110. package/esm5/lib/services/log.service.js +11 -9
  111. package/esm5/lib/services/message.service.js +9 -14
  112. package/esm5/lib/services/storage.service.js +10 -8
  113. package/esm5/lib/services/tin-spa.service.js +9 -8
  114. package/esm5/lib/tin-spa.module.js +111 -45
  115. package/esm5/public-api.js +4 -6
  116. package/esm5/tin-spa.js +1 -5
  117. package/fesm2015/tin-spa.js +4418 -1612
  118. package/fesm2015/tin-spa.js.map +1 -1
  119. package/fesm5/tin-spa.js +4442 -1612
  120. package/fesm5/tin-spa.js.map +1 -1
  121. package/lib/classes/Classes.d.ts +55 -43
  122. package/lib/classes/TinCore.d.ts +27 -0
  123. package/lib/components/activity/activity.component.d.ts +3 -5
  124. package/lib/components/attach/attach.component.d.ts +3 -5
  125. package/lib/components/change-password/change-password.component.d.ts +11 -9
  126. package/lib/components/check/check.component.d.ts +3 -5
  127. package/lib/components/chips/chips.component.d.ts +3 -5
  128. package/lib/components/create-account/create-account.component.d.ts +13 -13
  129. package/lib/components/date/date.component.d.ts +6 -7
  130. package/lib/components/datetime/datetime.component.d.ts +3 -5
  131. package/lib/components/filter/filter.component.d.ts +15 -0
  132. package/lib/components/html/html.component.d.ts +3 -5
  133. package/lib/components/label/label.component.d.ts +3 -5
  134. package/lib/components/loader/loader.component.d.ts +3 -5
  135. package/lib/components/login/login.component.d.ts +12 -14
  136. package/lib/components/logs/logs.component.d.ts +5 -9
  137. package/lib/components/message/messageDialog.component.d.ts +3 -5
  138. package/lib/components/money/currency-input-mask.directive.d.ts +41 -0
  139. package/lib/components/money/currency-input-mask.module.d.ts +8 -0
  140. package/lib/components/money/money.component.d.ts +19 -8
  141. package/lib/components/nav-menu/nav-menu.component.d.ts +3 -5
  142. package/lib/components/option/option.component.d.ts +4 -5
  143. package/lib/components/profile/profile.component.d.ts +9 -11
  144. package/lib/components/recover-account/recover-account.component.d.ts +6 -8
  145. package/lib/components/roles/addRoleDialog.component.d.ts +5 -7
  146. package/lib/components/roles/roles.component.d.ts +6 -10
  147. package/lib/components/select/select.component.d.ts +4 -6
  148. package/lib/components/settings/settings.component.d.ts +5 -7
  149. package/lib/components/signup/signup.component.d.ts +6 -8
  150. package/lib/components/steps/steps.component.d.ts +3 -5
  151. package/lib/components/table/table.component.d.ts +3 -5
  152. package/lib/components/text/text.component.d.ts +4 -5
  153. package/lib/components/tiles/tiles.component.d.ts +3 -5
  154. package/lib/components/timeout/timeout.component.d.ts +3 -5
  155. package/lib/components/tin-spa.component.d.ts +3 -5
  156. package/lib/components/users/users.component.d.ts +8 -13
  157. package/lib/components/viewer/viewer.component.d.ts +3 -5
  158. package/lib/components/viewer/viewerDialog.component.d.ts +4 -6
  159. package/lib/dnd.directive.d.ts +3 -5
  160. package/lib/modules/spa-admin.module.d.ts +13 -19
  161. package/lib/modules/spa-index.module.d.ts +10 -11
  162. package/lib/modules/spa-mat.module.d.ts +30 -32
  163. package/lib/modules/spa-user.module.d.ts +9 -10
  164. package/lib/services/auth.service.d.ts +14 -14
  165. package/lib/services/data.service.d.ts +28 -17
  166. package/lib/services/export.service.d.ts +3 -4
  167. package/lib/services/http.service.d.ts +22 -0
  168. package/lib/services/loader-interceptor.service.d.ts +3 -5
  169. package/lib/services/loader.service.d.ts +3 -4
  170. package/lib/services/log.service.d.ts +3 -4
  171. package/lib/services/message.service.d.ts +3 -4
  172. package/lib/services/storage.service.d.ts +3 -4
  173. package/lib/services/tin-spa.service.d.ts +3 -4
  174. package/lib/tin-spa.module.d.ts +35 -35
  175. package/package.json +2 -10
  176. package/public-api.d.ts +3 -5
  177. package/tin-spa.d.ts +1 -6
  178. package/__ivy_ngcc__/fesm2015/tin-spa.js +0 -6813
  179. package/__ivy_ngcc__/fesm2015/tin-spa.js.map +0 -1
  180. package/esm2015/lib/components/profiles/profiles.component.js +0 -16
  181. package/esm2015/lib/components/roles/editRoleDialog.component.js +0 -57
  182. package/esm2015/lib/components/roles/viewRoleDialog.component.js +0 -38
  183. package/esm2015/lib/components/users/addUserDialog.component.js +0 -53
  184. package/esm2015/lib/components/users/editUserDialog.component.js +0 -96
  185. package/esm5/lib/components/profiles/profiles.component.js +0 -18
  186. package/esm5/lib/components/roles/editRoleDialog.component.js +0 -59
  187. package/esm5/lib/components/roles/viewRoleDialog.component.js +0 -39
  188. package/esm5/lib/components/users/addUserDialog.component.js +0 -55
  189. package/esm5/lib/components/users/editUserDialog.component.js +0 -99
  190. package/lib/components/activity/activity.component.d.ts.__ivy_ngcc_bak +0 -8
  191. package/lib/components/attach/attach.component.d.ts.__ivy_ngcc_bak +0 -39
  192. package/lib/components/change-password/change-password.component.d.ts.__ivy_ngcc_bak +0 -20
  193. package/lib/components/check/check.component.d.ts.__ivy_ngcc_bak +0 -16
  194. package/lib/components/chips/chips.component.d.ts.__ivy_ngcc_bak +0 -15
  195. package/lib/components/create-account/create-account.component.d.ts.__ivy_ngcc_bak +0 -25
  196. package/lib/components/date/date.component.d.ts.__ivy_ngcc_bak +0 -13
  197. package/lib/components/datetime/datetime.component.d.ts.__ivy_ngcc_bak +0 -12
  198. package/lib/components/html/html.component.d.ts.__ivy_ngcc_bak +0 -12
  199. package/lib/components/label/label.component.d.ts.__ivy_ngcc_bak +0 -8
  200. package/lib/components/loader/loader.component.d.ts.__ivy_ngcc_bak +0 -9
  201. package/lib/components/login/login.component.d.ts.__ivy_ngcc_bak +0 -29
  202. package/lib/components/logs/logs.component.d.ts.__ivy_ngcc_bak +0 -17
  203. package/lib/components/message/messageDialog.component.d.ts.__ivy_ngcc_bak +0 -12
  204. package/lib/components/money/money.component.d.ts.__ivy_ngcc_bak +0 -14
  205. package/lib/components/nav-menu/nav-menu.component.d.ts.__ivy_ngcc_bak +0 -17
  206. package/lib/components/option/option.component.d.ts.__ivy_ngcc_bak +0 -17
  207. package/lib/components/profile/profile.component.d.ts.__ivy_ngcc_bak +0 -30
  208. package/lib/components/profiles/profiles.component.d.ts +0 -10
  209. package/lib/components/profiles/profiles.component.d.ts.__ivy_ngcc_bak +0 -5
  210. package/lib/components/recover-account/recover-account.component.d.ts.__ivy_ngcc_bak +0 -15
  211. package/lib/components/roles/addRoleDialog.component.d.ts.__ivy_ngcc_bak +0 -19
  212. package/lib/components/roles/editRoleDialog.component.d.ts +0 -24
  213. package/lib/components/roles/editRoleDialog.component.d.ts.__ivy_ngcc_bak +0 -19
  214. package/lib/components/roles/roles.component.d.ts.__ivy_ngcc_bak +0 -29
  215. package/lib/components/roles/viewRoleDialog.component.d.ts +0 -20
  216. package/lib/components/roles/viewRoleDialog.component.d.ts.__ivy_ngcc_bak +0 -15
  217. package/lib/components/select/select.component.d.ts.__ivy_ngcc_bak +0 -20
  218. package/lib/components/settings/settings.component.d.ts.__ivy_ngcc_bak +0 -16
  219. package/lib/components/signup/signup.component.d.ts.__ivy_ngcc_bak +0 -20
  220. package/lib/components/steps/steps.component.d.ts.__ivy_ngcc_bak +0 -15
  221. package/lib/components/table/table.component.d.ts.__ivy_ngcc_bak +0 -25
  222. package/lib/components/text/text.component.d.ts.__ivy_ngcc_bak +0 -37
  223. package/lib/components/tiles/tiles.component.d.ts.__ivy_ngcc_bak +0 -11
  224. package/lib/components/timeout/timeout.component.d.ts.__ivy_ngcc_bak +0 -21
  225. package/lib/components/tin-spa.component.d.ts.__ivy_ngcc_bak +0 -5
  226. package/lib/components/users/addUserDialog.component.d.ts +0 -21
  227. package/lib/components/users/addUserDialog.component.d.ts.__ivy_ngcc_bak +0 -16
  228. package/lib/components/users/editUserDialog.component.d.ts +0 -32
  229. package/lib/components/users/editUserDialog.component.d.ts.__ivy_ngcc_bak +0 -27
  230. package/lib/components/users/users.component.d.ts.__ivy_ngcc_bak +0 -35
  231. package/lib/components/viewer/viewer.component.d.ts.__ivy_ngcc_bak +0 -16
  232. package/lib/components/viewer/viewerDialog.component.d.ts.__ivy_ngcc_bak +0 -19
  233. package/lib/dnd.directive.d.ts.__ivy_ngcc_bak +0 -8
  234. package/lib/modules/spa-admin.module.d.ts.__ivy_ngcc_bak +0 -2
  235. package/lib/modules/spa-index.module.d.ts.__ivy_ngcc_bak +0 -2
  236. package/lib/modules/spa-mat.module.d.ts.__ivy_ngcc_bak +0 -2
  237. package/lib/modules/spa-user.module.d.ts.__ivy_ngcc_bak +0 -2
  238. package/lib/services/auth.service.d.ts.__ivy_ngcc_bak +0 -45
  239. package/lib/services/data.service.d.ts.__ivy_ngcc_bak +0 -23
  240. package/lib/services/export.service.d.ts.__ivy_ngcc_bak +0 -7
  241. package/lib/services/loader-interceptor.service.d.ts.__ivy_ngcc_bak +0 -18
  242. package/lib/services/loader.service.d.ts.__ivy_ngcc_bak +0 -5
  243. package/lib/services/log.service.d.ts.__ivy_ngcc_bak +0 -16
  244. package/lib/services/message.service.d.ts.__ivy_ngcc_bak +0 -12
  245. package/lib/services/storage.service.d.ts.__ivy_ngcc_bak +0 -7
  246. package/lib/services/tin-spa.service.d.ts.__ivy_ngcc_bak +0 -3
  247. package/lib/tin-spa.module.d.ts.__ivy_ngcc_bak +0 -2
  248. package/tin-spa.d.ts.__ivy_ngcc_bak +0 -8
  249. package/tin-spa.metadata.json +0 -1
@@ -0,0 +1,193 @@
1
+ import { Directive, HostListener, forwardRef } from '@angular/core';
2
+ import { NG_VALUE_ACCESSOR } from '@angular/forms';
3
+ import { DecimalPipe } from '@angular/common';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/common";
6
+ export var CURRENCY_INPUT_MASK_DIRECTIVE_VALUE_ACCESSOR = {
7
+ provide: NG_VALUE_ACCESSOR,
8
+ useExisting: forwardRef(function () { return CurrencyInputMaskDirective; }),
9
+ multi: true
10
+ };
11
+ var CurrencyInputMaskDirective = /** @class */ (function () {
12
+ function CurrencyInputMaskDirective(elementRef, decimalPipe) {
13
+ this.elementRef = elementRef;
14
+ this.decimalPipe = decimalPipe;
15
+ this.DECIMAL_MARK = '.';
16
+ }
17
+ CurrencyInputMaskDirective.prototype.ngOnInit = function () {
18
+ this.el = this.elementRef.nativeElement;
19
+ };
20
+ CurrencyInputMaskDirective.prototype.handleFocus = function (event) {
21
+ var strVal = this.getInputValue();
22
+ var unmaskedStr = this.getUnmaskedValue(strVal);
23
+ this.updateInputValue(unmaskedStr);
24
+ };
25
+ CurrencyInputMaskDirective.prototype.handleCut = function (event) {
26
+ var _this = this;
27
+ setTimeout(function () {
28
+ _this.inputUpdated();
29
+ }, 0);
30
+ };
31
+ CurrencyInputMaskDirective.prototype.handleKeypress = function (event) {
32
+ // Restrict characters
33
+ var newChar = String.fromCharCode(event.which);
34
+ var allowedChars = /^[\d.]+$/;
35
+ if (!allowedChars.test(newChar)) {
36
+ event.preventDefault();
37
+ return;
38
+ }
39
+ // Handle decimal mark input
40
+ var currentValue = event.target.value;
41
+ var separatorIdx = currentValue.indexOf(this.DECIMAL_MARK);
42
+ var hasFractionalPart = (separatorIdx >= 0);
43
+ if (!hasFractionalPart || newChar !== this.DECIMAL_MARK) {
44
+ return;
45
+ }
46
+ var isOutsideSelection = !this.isIdxBetweenSelection(separatorIdx);
47
+ if (isOutsideSelection) {
48
+ var positionAfterMark = separatorIdx + 1;
49
+ this.setCursorPosition(positionAfterMark);
50
+ event.preventDefault();
51
+ return;
52
+ }
53
+ };
54
+ CurrencyInputMaskDirective.prototype.handleInput = function (event) {
55
+ this.inputUpdated();
56
+ };
57
+ CurrencyInputMaskDirective.prototype.handlePaste = function (event) {
58
+ var _this = this;
59
+ setTimeout(function () {
60
+ _this.inputUpdated();
61
+ }, 1);
62
+ };
63
+ CurrencyInputMaskDirective.prototype.handleBlur = function (event) {
64
+ var strVal = this.getInputValue();
65
+ var numVal = this.convertStrToDecimal(strVal);
66
+ this.maskInput(numVal);
67
+ this.onModelTouched.apply(event);
68
+ };
69
+ CurrencyInputMaskDirective.prototype.registerOnChange = function (callbackFunction) {
70
+ this.onModelChange = callbackFunction;
71
+ };
72
+ CurrencyInputMaskDirective.prototype.registerOnTouched = function (callbackFunction) {
73
+ this.onModelTouched = callbackFunction;
74
+ };
75
+ CurrencyInputMaskDirective.prototype.setDisabledState = function (value) {
76
+ this.el.disabled = value;
77
+ };
78
+ CurrencyInputMaskDirective.prototype.writeValue = function (numValue) {
79
+ this.maskInput(numValue);
80
+ };
81
+ CurrencyInputMaskDirective.prototype.maskInput = function (numVal) {
82
+ if (!this.isNumeric(numVal)) {
83
+ this.updateInputValue('');
84
+ return;
85
+ }
86
+ var strVal = this.convertDecimalToStr(numVal);
87
+ var newVal = this.transformWithPipe(strVal);
88
+ this.updateInputValue(newVal);
89
+ };
90
+ CurrencyInputMaskDirective.prototype.inputUpdated = function () {
91
+ this.restrictDecimalValue();
92
+ var strVal = this.getInputValue();
93
+ var unmaskedVal = this.getUnmaskedValue(strVal);
94
+ var numVal = this.convertStrToDecimal(unmaskedVal);
95
+ if (numVal !== this.lastNumVal) {
96
+ this.lastNumVal = numVal;
97
+ this.onModelChange(numVal);
98
+ }
99
+ };
100
+ CurrencyInputMaskDirective.prototype.restrictDecimalValue = function () {
101
+ var strVal = this.getInputValue();
102
+ var dotIdx = strVal.indexOf(this.DECIMAL_MARK);
103
+ var hasFractionalPart = (dotIdx >= 0);
104
+ if (hasFractionalPart) {
105
+ var fractionalPart = strVal.substring(dotIdx + 1);
106
+ if (fractionalPart.length > 2) {
107
+ var choppedVal = strVal.substring(0, dotIdx + 3);
108
+ this.updateInputValue(choppedVal, true);
109
+ return;
110
+ }
111
+ }
112
+ };
113
+ CurrencyInputMaskDirective.prototype.transformWithPipe = function (str) {
114
+ return this.decimalPipe.transform(str, '1.2-2');
115
+ };
116
+ CurrencyInputMaskDirective.prototype.getUnmaskedValue = function (value) {
117
+ return value.replace(/[^-\d\\.]/g, '');
118
+ };
119
+ CurrencyInputMaskDirective.prototype.updateInputValue = function (value, savePosition) {
120
+ if (savePosition === void 0) { savePosition = false; }
121
+ if (savePosition) {
122
+ this.saveCursorPosition();
123
+ }
124
+ this.el.value = value;
125
+ };
126
+ CurrencyInputMaskDirective.prototype.getInputValue = function () {
127
+ return this.el.value;
128
+ };
129
+ CurrencyInputMaskDirective.prototype.convertStrToDecimal = function (str) {
130
+ return (this.isNumeric(str)) ? parseFloat(str) : null;
131
+ };
132
+ CurrencyInputMaskDirective.prototype.convertDecimalToStr = function (n) {
133
+ return (this.isNumeric(n)) ? n + '' : '';
134
+ };
135
+ CurrencyInputMaskDirective.prototype.isNumeric = function (n) {
136
+ return !isNaN(parseFloat(n)) && isFinite(n);
137
+ };
138
+ CurrencyInputMaskDirective.prototype.saveCursorPosition = function () {
139
+ var _this = this;
140
+ var position = this.el.selectionStart;
141
+ setTimeout(function () {
142
+ _this.setCursorPosition(position);
143
+ }, 1);
144
+ };
145
+ CurrencyInputMaskDirective.prototype.setCursorPosition = function (position) {
146
+ this.el.selectionStart = position;
147
+ this.el.selectionEnd = position;
148
+ };
149
+ CurrencyInputMaskDirective.prototype.isIdxBetweenSelection = function (idx) {
150
+ if (this.el.selectionStart === this.el.selectionEnd) {
151
+ return false;
152
+ }
153
+ return (idx >= this.el.selectionStart && idx < this.el.selectionEnd);
154
+ };
155
+ CurrencyInputMaskDirective.ɵfac = function CurrencyInputMaskDirective_Factory(t) { return new (t || CurrencyInputMaskDirective)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i1.DecimalPipe)); };
156
+ CurrencyInputMaskDirective.ɵdir = i0.ɵɵdefineDirective({ type: CurrencyInputMaskDirective, selectors: [["", "appCurrencyInputMask", ""]], hostBindings: function CurrencyInputMaskDirective_HostBindings(rf, ctx) { if (rf & 1) {
157
+ i0.ɵɵlistener("focus", function CurrencyInputMaskDirective_focus_HostBindingHandler($event) { return ctx.handleFocus($event); })("cut", function CurrencyInputMaskDirective_cut_HostBindingHandler($event) { return ctx.handleCut($event); })("keypress", function CurrencyInputMaskDirective_keypress_HostBindingHandler($event) { return ctx.handleKeypress($event); })("input", function CurrencyInputMaskDirective_input_HostBindingHandler($event) { return ctx.handleInput($event); })("paste", function CurrencyInputMaskDirective_paste_HostBindingHandler($event) { return ctx.handlePaste($event); })("blur", function CurrencyInputMaskDirective_blur_HostBindingHandler($event) { return ctx.handleBlur($event); });
158
+ } }, features: [i0.ɵɵProvidersFeature([
159
+ CURRENCY_INPUT_MASK_DIRECTIVE_VALUE_ACCESSOR,
160
+ DecimalPipe
161
+ ])] });
162
+ return CurrencyInputMaskDirective;
163
+ }());
164
+ export { CurrencyInputMaskDirective };
165
+ /*@__PURE__*/ (function () { i0.ɵsetClassMetadata(CurrencyInputMaskDirective, [{
166
+ type: Directive,
167
+ args: [{
168
+ selector: '[appCurrencyInputMask]',
169
+ providers: [
170
+ CURRENCY_INPUT_MASK_DIRECTIVE_VALUE_ACCESSOR,
171
+ DecimalPipe
172
+ ]
173
+ }]
174
+ }], function () { return [{ type: i0.ElementRef }, { type: i1.DecimalPipe }]; }, { handleFocus: [{
175
+ type: HostListener,
176
+ args: ['focus', ['$event']]
177
+ }], handleCut: [{
178
+ type: HostListener,
179
+ args: ['cut', ['$event']]
180
+ }], handleKeypress: [{
181
+ type: HostListener,
182
+ args: ['keypress', ['$event']]
183
+ }], handleInput: [{
184
+ type: HostListener,
185
+ args: ['input', ['$event']]
186
+ }], handlePaste: [{
187
+ type: HostListener,
188
+ args: ['paste', ['$event']]
189
+ }], handleBlur: [{
190
+ type: HostListener,
191
+ args: ['blur', ['$event']]
192
+ }] }); })();
193
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VycmVuY3ktaW5wdXQtbWFzay5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly90aW4tc3BhLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvbW9uZXkvY3VycmVuY3ktaW5wdXQtbWFzay5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFDVCxZQUFZLEVBQ0EsVUFBVSxFQUN2QixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7QUFFOUMsTUFBTSxDQUFDLElBQU0sNENBQTRDLEdBQVE7SUFDL0QsT0FBTyxFQUFFLGlCQUFpQjtJQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLGNBQU0sT0FBQSwwQkFBMEIsRUFBMUIsQ0FBMEIsQ0FBQztJQUN6RCxLQUFLLEVBQUUsSUFBSTtDQUNaLENBQUM7QUFFRjtJQWNFLG9DQUNVLFVBQXNCLEVBQ3RCLFdBQXdCO1FBRHhCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFKMUIsaUJBQVksR0FBRyxHQUFHLENBQUM7SUFLdkIsQ0FBQztJQUVMLDZDQUFRLEdBQVI7UUFDRSxJQUFJLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDO0lBQzFDLENBQUM7SUFHRCxnREFBVyxHQURYLFVBQ1ksS0FBVTtRQUNwQixJQUFNLE1BQU0sR0FBVyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDNUMsSUFBTSxXQUFXLEdBQVcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzFELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBR0QsOENBQVMsR0FEVCxVQUNVLEtBQVU7UUFEcEIsaUJB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QUMsVUFBVSxFQUFFLENBQUMsUUFBUSxDQUFDOztrQkF5Qm5DLFlBQVk7bUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDOztrQkFLaEMsWUFBWTttQkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUM7O2tCQU9oQyxZQUFZO21CQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgT25Jbml0LFxyXG4gIERpcmVjdGl2ZSxcclxuICBIb3N0TGlzdGVuZXIsXHJcbiAgRWxlbWVudFJlZiwgZm9yd2FyZFJlZlxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IERlY2ltYWxQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuXHJcbmV4cG9ydCBjb25zdCBDVVJSRU5DWV9JTlBVVF9NQVNLX0RJUkVDVElWRV9WQUxVRV9BQ0NFU1NPUjogYW55ID0ge1xyXG4gIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEN1cnJlbmN5SW5wdXRNYXNrRGlyZWN0aXZlKSxcclxuICBtdWx0aTogdHJ1ZVxyXG59O1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6ICdbYXBwQ3VycmVuY3lJbnB1dE1hc2tdJyxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIENVUlJFTkNZX0lOUFVUX01BU0tfRElSRUNUSVZFX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgRGVjaW1hbFBpcGVcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDdXJyZW5jeUlucHV0TWFza0RpcmVjdGl2ZSBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkluaXQge1xyXG4gIHByaXZhdGUgZWw6IEhUTUxJbnB1dEVsZW1lbnQ7XHJcbiAgcHJpdmF0ZSBvbk1vZGVsQ2hhbmdlOiBGdW5jdGlvbjtcclxuICBwcml2YXRlIG9uTW9kZWxUb3VjaGVkOiBGdW5jdGlvbjtcclxuICBwcml2YXRlIGxhc3ROdW1WYWw6IG51bWJlcjtcclxuICBwcml2YXRlIERFQ0lNQUxfTUFSSyA9ICcuJztcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXHJcbiAgICBwcml2YXRlIGRlY2ltYWxQaXBlOiBEZWNpbWFsUGlwZVxyXG4gICkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5lbCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xyXG4gIH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcignZm9jdXMnLCBbJyRldmVudCddKVxyXG4gIGhhbmRsZUZvY3VzKGV2ZW50OiBhbnkpIHtcclxuICAgIGNvbnN0IHN0clZhbDogc3RyaW5nID0gdGhpcy5nZXRJbnB1dFZhbHVlKCk7XHJcbiAgICBjb25zdCB1bm1hc2tlZFN0cjogc3RyaW5nID0gdGhpcy5nZXRVbm1hc2tlZFZhbHVlKHN0clZhbCk7XHJcbiAgICB0aGlzLnVwZGF0ZUlucHV0VmFsdWUodW5tYXNrZWRTdHIpO1xyXG4gIH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcignY3V0JywgWyckZXZlbnQnXSlcclxuICBoYW5kbGVDdXQoZXZlbnQ6IGFueSkge1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuaW5wdXRVcGRhdGVkKCk7XHJcbiAgICB9LCAwKTtcclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ2tleXByZXNzJywgWyckZXZlbnQnXSlcclxuICBoYW5kbGVLZXlwcmVzcyhldmVudDogYW55KSB7XHJcbiAgICAvLyBSZXN0cmljdCBjaGFyYWN0ZXJzXHJcbiAgICBjb25zdCBuZXdDaGFyOiBzdHJpbmcgPSBTdHJpbmcuZnJvbUNoYXJDb2RlKGV2ZW50LndoaWNoKTtcclxuICAgIGNvbnN0IGFsbG93ZWRDaGFyczogUmVnRXhwID0gL15bXFxkLl0rJC87XHJcbiAgICBpZiAoIWFsbG93ZWRDaGFycy50ZXN0KG5ld0NoYXIpKSB7XHJcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIC8vIEhhbmRsZSBkZWNpbWFsIG1hcmsgaW5wdXRcclxuICAgIGNvbnN0IGN1cnJlbnRWYWx1ZTogc3RyaW5nID0gZXZlbnQudGFyZ2V0LnZhbHVlO1xyXG4gICAgY29uc3Qgc2VwYXJhdG9ySWR4OiBudW1iZXIgPSBjdXJyZW50VmFsdWUuaW5kZXhPZih0aGlzLkRFQ0lNQUxfTUFSSyk7XHJcbiAgICBjb25zdCBoYXNGcmFjdGlvbmFsUGFydDogYm9vbGVhbiA9IChzZXBhcmF0b3JJZHggPj0gMCk7XHJcbiAgICBpZiAoIWhhc0ZyYWN0aW9uYWxQYXJ0IHx8IG5ld0NoYXIgIT09IHRoaXMuREVDSU1BTF9NQVJLKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGNvbnN0IGlzT3V0c2lkZVNlbGVjdGlvbiA9ICF0aGlzLmlzSWR4QmV0d2VlblNlbGVjdGlvbihzZXBhcmF0b3JJZHgpO1xyXG4gICAgaWYgKGlzT3V0c2lkZVNlbGVjdGlvbikge1xyXG4gICAgICBjb25zdCBwb3NpdGlvbkFmdGVyTWFyayA9IHNlcGFyYXRvcklkeCArIDE7XHJcbiAgICAgIHRoaXMuc2V0Q3Vyc29yUG9zaXRpb24ocG9zaXRpb25BZnRlck1hcmspO1xyXG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCdpbnB1dCcsIFsnJGV2ZW50J10pXHJcbiAgaGFuZGxlSW5wdXQoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5pbnB1dFVwZGF0ZWQoKTtcclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ3Bhc3RlJywgWyckZXZlbnQnXSlcclxuICBoYW5kbGVQYXN0ZShldmVudDogYW55KSB7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5pbnB1dFVwZGF0ZWQoKTtcclxuICAgIH0sIDEpO1xyXG4gIH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcignYmx1cicsIFsnJGV2ZW50J10pXHJcbiAgaGFuZGxlQmx1cihldmVudDogYW55KSB7XHJcbiAgICBjb25zdCBzdHJWYWw6IHN0cmluZyA9IHRoaXMuZ2V0SW5wdXRWYWx1ZSgpO1xyXG4gICAgY29uc3QgbnVtVmFsOiBudW1iZXIgPSB0aGlzLmNvbnZlcnRTdHJUb0RlY2ltYWwoc3RyVmFsKTtcclxuICAgIHRoaXMubWFza0lucHV0KG51bVZhbCk7XHJcbiAgICB0aGlzLm9uTW9kZWxUb3VjaGVkLmFwcGx5KGV2ZW50KTtcclxuICB9XHJcblxyXG4gIHJlZ2lzdGVyT25DaGFuZ2UoY2FsbGJhY2tGdW5jdGlvbjogRnVuY3Rpb24pOiB2b2lkIHtcclxuICAgIHRoaXMub25Nb2RlbENoYW5nZSA9IGNhbGxiYWNrRnVuY3Rpb247XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uVG91Y2hlZChjYWxsYmFja0Z1bmN0aW9uOiBGdW5jdGlvbik6IHZvaWQge1xyXG4gICAgdGhpcy5vbk1vZGVsVG91Y2hlZCA9IGNhbGxiYWNrRnVuY3Rpb247XHJcbiAgfVxyXG5cclxuICBzZXREaXNhYmxlZFN0YXRlKHZhbHVlOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICB0aGlzLmVsLmRpc2FibGVkID0gdmFsdWU7XHJcbiAgfVxyXG5cclxuICB3cml0ZVZhbHVlKG51bVZhbHVlOiBudW1iZXIpOiB2b2lkIHtcclxuICAgIHRoaXMubWFza0lucHV0KG51bVZhbHVlKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgbWFza0lucHV0KG51bVZhbDogbnVtYmVyKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuaXNOdW1lcmljKG51bVZhbCkpIHtcclxuICAgICAgdGhpcy51cGRhdGVJbnB1dFZhbHVlKCcnKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgY29uc3Qgc3RyVmFsOiBzdHJpbmcgPSB0aGlzLmNvbnZlcnREZWNpbWFsVG9TdHIobnVtVmFsKTtcclxuICAgIGNvbnN0IG5ld1ZhbDogc3RyaW5nID0gdGhpcy50cmFuc2Zvcm1XaXRoUGlwZShzdHJWYWwpO1xyXG4gICAgdGhpcy51cGRhdGVJbnB1dFZhbHVlKG5ld1ZhbCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGlucHV0VXBkYXRlZCgpIHtcclxuICAgIHRoaXMucmVzdHJpY3REZWNpbWFsVmFsdWUoKTtcclxuICAgIGNvbnN0IHN0clZhbDogc3RyaW5nID0gdGhpcy5nZXRJbnB1dFZhbHVlKCk7XHJcbiAgICBjb25zdCB1bm1hc2tlZFZhbDogc3RyaW5nID0gdGhpcy5nZXRVbm1hc2tlZFZhbHVlKHN0clZhbCk7XHJcbiAgICBjb25zdCBudW1WYWw6IG51bWJlciA9IHRoaXMuY29udmVydFN0clRvRGVjaW1hbCh1bm1hc2tlZFZhbCk7XHJcbiAgICBpZiAobnVtVmFsICE9PSB0aGlzLmxhc3ROdW1WYWwpIHtcclxuICAgICAgdGhpcy5sYXN0TnVtVmFsID0gbnVtVmFsO1xyXG4gICAgICB0aGlzLm9uTW9kZWxDaGFuZ2UobnVtVmFsKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgcmVzdHJpY3REZWNpbWFsVmFsdWUoKTogdm9pZCB7XHJcbiAgICBjb25zdCBzdHJWYWw6IHN0cmluZyA9IHRoaXMuZ2V0SW5wdXRWYWx1ZSgpO1xyXG4gICAgY29uc3QgZG90SWR4OiBudW1iZXIgPSBzdHJWYWwuaW5kZXhPZih0aGlzLkRFQ0lNQUxfTUFSSyk7XHJcbiAgICBjb25zdCBoYXNGcmFjdGlvbmFsUGFydDogYm9vbGVhbiA9IChkb3RJZHggPj0gMCk7XHJcbiAgICBpZiAoaGFzRnJhY3Rpb25hbFBhcnQpIHtcclxuICAgICAgY29uc3QgZnJhY3Rpb25hbFBhcnQ6IHN0cmluZyA9IHN0clZhbC5zdWJzdHJpbmcoZG90SWR4ICsgMSk7XHJcbiAgICAgIGlmIChmcmFjdGlvbmFsUGFydC5sZW5ndGggPiAyKSB7XHJcbiAgICAgICAgY29uc3QgY2hvcHBlZFZhbDogc3RyaW5nID0gc3RyVmFsLnN1YnN0cmluZygwLCBkb3RJZHggKyAzKTtcclxuICAgICAgICB0aGlzLnVwZGF0ZUlucHV0VmFsdWUoY2hvcHBlZFZhbCwgdHJ1ZSk7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbiAgcHJpdmF0ZSB0cmFuc2Zvcm1XaXRoUGlwZShzdHI6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5kZWNpbWFsUGlwZS50cmFuc2Zvcm0oc3RyLCAnMS4yLTInKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0VW5tYXNrZWRWYWx1ZSh2YWx1ZTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB2YWx1ZS5yZXBsYWNlKC9bXi1cXGRcXFxcLl0vZywgJycpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB1cGRhdGVJbnB1dFZhbHVlKHZhbHVlOiBzdHJpbmcsIHNhdmVQb3NpdGlvbiA9IGZhbHNlKSB7XHJcbiAgICBpZiAoc2F2ZVBvc2l0aW9uKSB7XHJcbiAgICAgIHRoaXMuc2F2ZUN1cnNvclBvc2l0aW9uKCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmVsLnZhbHVlID0gdmFsdWU7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldElucHV0VmFsdWUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLmVsLnZhbHVlO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjb252ZXJ0U3RyVG9EZWNpbWFsKHN0cjogc3RyaW5nKTogbnVtYmVyIHtcclxuICAgIHJldHVybiAodGhpcy5pc051bWVyaWMoc3RyKSkgPyBwYXJzZUZsb2F0KHN0cikgOiBudWxsO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjb252ZXJ0RGVjaW1hbFRvU3RyKG46IG51bWJlcik6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gKHRoaXMuaXNOdW1lcmljKG4pKSA/IG4gKyAnJyA6ICcnO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpc051bWVyaWMobjogYW55KTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gIWlzTmFOKHBhcnNlRmxvYXQobikpICYmIGlzRmluaXRlKG4pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzYXZlQ3Vyc29yUG9zaXRpb24oKSB7XHJcbiAgICBjb25zdCBwb3NpdGlvbjogbnVtYmVyID0gdGhpcy5lbC5zZWxlY3Rpb25TdGFydDtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLnNldEN1cnNvclBvc2l0aW9uKHBvc2l0aW9uKTtcclxuICAgIH0sIDEpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRDdXJzb3JQb3NpdGlvbihwb3NpdGlvbjogbnVtYmVyKSB7XHJcbiAgICB0aGlzLmVsLnNlbGVjdGlvblN0YXJ0ID0gcG9zaXRpb247XHJcbiAgICB0aGlzLmVsLnNlbGVjdGlvbkVuZCA9IHBvc2l0aW9uO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpc0lkeEJldHdlZW5TZWxlY3Rpb24oaWR4OiBudW1iZXIpIHtcclxuICAgIGlmICh0aGlzLmVsLnNlbGVjdGlvblN0YXJ0ID09PSB0aGlzLmVsLnNlbGVjdGlvbkVuZCkge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gKGlkeCA+PSB0aGlzLmVsLnNlbGVjdGlvblN0YXJ0ICYmIGlkeCA8IHRoaXMuZWwuc2VsZWN0aW9uRW5kKTtcclxuICB9XHJcblxyXG59XHJcbiJdfQ==
@@ -0,0 +1,34 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { NgModule } from '@angular/core';
3
+ import { FormsModule } from '@angular/forms';
4
+ import { CurrencyInputMaskDirective } from './currency-input-mask.directive';
5
+ import * as i0 from "@angular/core";
6
+ var CurrencyInputModule = /** @class */ (function () {
7
+ function CurrencyInputModule() {
8
+ }
9
+ CurrencyInputModule.ɵmod = i0.ɵɵdefineNgModule({ type: CurrencyInputModule });
10
+ CurrencyInputModule.ɵinj = i0.ɵɵdefineInjector({ factory: function CurrencyInputModule_Factory(t) { return new (t || CurrencyInputModule)(); }, imports: [[
11
+ CommonModule,
12
+ FormsModule
13
+ ]] });
14
+ return CurrencyInputModule;
15
+ }());
16
+ export { CurrencyInputModule };
17
+ (function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(CurrencyInputModule, { declarations: [CurrencyInputMaskDirective], imports: [CommonModule,
18
+ FormsModule], exports: [CurrencyInputMaskDirective] }); })();
19
+ /*@__PURE__*/ (function () { i0.ɵsetClassMetadata(CurrencyInputModule, [{
20
+ type: NgModule,
21
+ args: [{
22
+ imports: [
23
+ CommonModule,
24
+ FormsModule
25
+ ],
26
+ declarations: [
27
+ CurrencyInputMaskDirective
28
+ ],
29
+ exports: [
30
+ CurrencyInputMaskDirective
31
+ ]
32
+ }]
33
+ }], null, null); })();
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VycmVuY3ktaW5wdXQtbWFzay5tb2R1bGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly90aW4tc3BhLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvbW9uZXkvY3VycmVuY3ktaW5wdXQtbWFzay5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTdDLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDOztBQUU3RTtJQUFBO0tBYUM7MkRBRFksbUJBQW1CO3lIQUFuQixtQkFBbUIsa0JBWHJCO2dCQUNQLFlBQVk7Z0JBQ1osV0FBVzthQUNaOzhCQVZIO0NBbUJDLEFBYkQsSUFhQztTQURZLG1CQUFtQjt3RkFBbkIsbUJBQW1CLG1CQU41QiwwQkFBMEIsYUFKMUIsWUFBWTtRQUNaLFdBQVcsYUFNWCwwQkFBMEI7a0RBR2pCLG1CQUFtQjtjQVovQixRQUFRO2VBQUM7Z0JBQ1IsT0FBTyxFQUFFO29CQUNQLFlBQVk7b0JBQ1osV0FBVztpQkFDWjtnQkFDRCxZQUFZLEVBQUU7b0JBQ1osMEJBQTBCO2lCQUMzQjtnQkFDRCxPQUFPLEVBQUU7b0JBQ1AsMEJBQTBCO2lCQUMzQjthQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG5pbXBvcnQgeyBDdXJyZW5jeUlucHV0TWFza0RpcmVjdGl2ZSB9IGZyb20gJy4vY3VycmVuY3ktaW5wdXQtbWFzay5kaXJlY3RpdmUnO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBGb3Jtc01vZHVsZVxyXG4gIF0sXHJcbiAgZGVjbGFyYXRpb25zOiBbXHJcbiAgICBDdXJyZW5jeUlucHV0TWFza0RpcmVjdGl2ZVxyXG4gIF0sXHJcbiAgZXhwb3J0czogW1xyXG4gICAgQ3VycmVuY3lJbnB1dE1hc2tEaXJlY3RpdmVcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDdXJyZW5jeUlucHV0TW9kdWxlIHtcclxufVxyXG4iXX0=
@@ -1,51 +1,154 @@
1
- import { __decorate } from "tslib";
2
1
  import { Component, EventEmitter, Input, Output } from '@angular/core';
2
+ import { FormControl, Validators } from '@angular/forms';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/material/form-field";
5
+ import * as i2 from "@angular/common";
6
+ import * as i3 from "@angular/material/input";
7
+ import * as i4 from "@angular/forms";
8
+ import * as i5 from "./currency-input-mask.directive";
9
+ function MoneyComponent_span_4_Template(rf, ctx) { if (rf & 1) {
10
+ i0.ɵɵelementStart(0, "span", 4);
11
+ i0.ɵɵtext(1);
12
+ i0.ɵɵelementEnd();
13
+ } if (rf & 2) {
14
+ var ctx_r0 = i0.ɵɵnextContext();
15
+ i0.ɵɵadvance(1);
16
+ i0.ɵɵtextInterpolate1("", ctx_r0.currency, "\u00A0");
17
+ } }
18
+ function MoneyComponent_mat_error_5_Template(rf, ctx) { if (rf & 1) {
19
+ i0.ɵɵelementStart(0, "mat-error");
20
+ i0.ɵɵtext(1);
21
+ i0.ɵɵelementEnd();
22
+ } if (rf & 2) {
23
+ var ctx_r1 = i0.ɵɵnextContext();
24
+ i0.ɵɵadvance(1);
25
+ i0.ɵɵtextInterpolate(ctx_r1.validate(ctx_r1.control));
26
+ } }
27
+ var _c0 = function (a0) { return { "width": a0 }; };
3
28
  var MoneyComponent = /** @class */ (function () {
4
29
  function MoneyComponent() {
5
30
  this.readonly = false;
31
+ this.hint = "";
6
32
  this.display = "";
33
+ this.placeholder = "";
7
34
  this.value = "";
8
- this.valueChange = new EventEmitter();
9
35
  this.width = "100%";
10
- this.hint = "";
11
- this.currency = "$";
36
+ this.currency = "";
37
+ this.valueChange = new EventEmitter();
38
+ this.leave = new EventEmitter();
39
+ this.enterPress = new EventEmitter();
40
+ //validation input
41
+ this.required = true;
42
+ this.min = 0;
43
+ this.max = 9000000000000000; //Math.max 9000000000000000
44
+ //validation
45
+ this.control = new FormControl(this.value, [Validators.required, Validators.min(this.min), Validators.max(this.max)]);
12
46
  }
13
47
  MoneyComponent.prototype.ngOnInit = function () {
48
+ if (this.placeholder == "") {
49
+ this.placeholder = "Enter " + this.display;
50
+ }
14
51
  };
15
52
  MoneyComponent.prototype.ngOnChanges = function () {
16
53
  };
17
- MoneyComponent.prototype.changed = function () {
18
- this.valueChange.emit(this.value);
19
- };
20
- __decorate([
21
- Input()
22
- ], MoneyComponent.prototype, "readonly", void 0);
23
- __decorate([
24
- Input()
25
- ], MoneyComponent.prototype, "display", void 0);
26
- __decorate([
27
- Input()
28
- ], MoneyComponent.prototype, "value", void 0);
29
- __decorate([
30
- Output()
31
- ], MoneyComponent.prototype, "valueChange", void 0);
32
- __decorate([
33
- Input()
34
- ], MoneyComponent.prototype, "width", void 0);
35
- __decorate([
36
- Input()
37
- ], MoneyComponent.prototype, "hint", void 0);
38
- __decorate([
39
- Input()
40
- ], MoneyComponent.prototype, "currency", void 0);
41
- MoneyComponent = __decorate([
42
- Component({
43
- selector: 'spa-money',
44
- template: "\r\n<div class=\"tin-input-row\">\r\n\r\n<Label>{{currency}}</Label>\r\n<mat-form-field [hintLabel]=\"hint\" style=\"padding-right: 20px;\" [ngStyle]=\"{'width':width}\" >\r\n <mat-label>{{display}}</mat-label>\r\n <!-- <span>$</span> -->\r\n <input matInput class=\"example-right-align\" autocomplete=\"off\" type=\"number\" min=\"0.00\" step=\"0.01\" [(ngModel)]=\"value \" [placeholder]=\"display\" (change)=\"changed()\" [readonly]=\"readonly\" />\r\n<!-- <span matTextSuffix>.00</span> -->\r\n</mat-form-field>\r\n</div>\r\n\r\n\r\n\r\n\r\n",
45
- styles: ["input.example-right-align{-moz-appearance:textfield}.example-right-align{text-align:right}input.example-right-align::-webkit-inner-spin-button,input.example-right-align::-webkit-outer-spin-button{display:none}.curr{background-color:red}"]
46
- })
47
- ], MoneyComponent);
54
+ MoneyComponent.prototype.ngAfterViewInit = function () {
55
+ this.initControl(this.control);
56
+ };
57
+ MoneyComponent.prototype.initControl = function (control) {
58
+ if (this.readonly) {
59
+ control.setValidators(null);
60
+ control.updateValueAndValidity();
61
+ }
62
+ if (!this.required && !this.readonly) {
63
+ control.setValidators([Validators.min(this.min), Validators.max(this.max)]);
64
+ this.control.updateValueAndValidity();
65
+ }
66
+ };
67
+ MoneyComponent.prototype.changed = function (x) {
68
+ this.valueChange.emit(x);
69
+ };
70
+ MoneyComponent.prototype.leaved = function () {
71
+ this.leave.emit();
72
+ };
73
+ MoneyComponent.prototype.enterPressed = function () {
74
+ this.enterPress.emit();
75
+ };
76
+ MoneyComponent.prototype.validate = function (control) {
77
+ if (this.required && control.hasError('required')) {
78
+ return "Required";
79
+ }
80
+ if (parseFloat(this.value) < this.min) {
81
+ return "Minimun value is " + this.min;
82
+ }
83
+ if (parseFloat(this.value) > this.max) {
84
+ return "Maximum value is " + this.max;
85
+ }
86
+ if (control.hasError('min')) {
87
+ return "Minimun value is " + this.min;
88
+ }
89
+ if (control.hasError('max')) {
90
+ return "Maximum value is " + this.max;
91
+ }
92
+ return "";
93
+ };
94
+ MoneyComponent.ɵfac = function MoneyComponent_Factory(t) { return new (t || MoneyComponent)(); };
95
+ MoneyComponent.ɵcmp = i0.ɵɵdefineComponent({ type: MoneyComponent, selectors: [["spa-money"]], inputs: { readonly: "readonly", hint: "hint", display: "display", placeholder: "placeholder", value: "value", width: "width", currency: "currency", required: "required", min: "min", max: "max" }, outputs: { valueChange: "valueChange", leave: "leave", enterPress: "enterPress" }, features: [i0.ɵɵNgOnChangesFeature], decls: 6, vars: 13, consts: [["hideRequiredMarker", "true", "hideRequiredMarker", "true", 2, "margin-right", "5px", 3, "hintLabel", "ngStyle"], ["matInput", "", "appCurrencyInputMask", "", "autocomplete", "off", 2, "text-align", "right", 3, "min", "max", "ngModel", "placeholder", "formControl", "readonly", "ngModelChange", "keyup.enter", "blur"], ["matPrefix", "", 4, "ngIf"], [4, "ngIf"], ["matPrefix", ""]], template: function MoneyComponent_Template(rf, ctx) { if (rf & 1) {
96
+ i0.ɵɵelementStart(0, "mat-form-field", 0);
97
+ i0.ɵɵelementStart(1, "mat-label");
98
+ i0.ɵɵtext(2);
99
+ i0.ɵɵelementEnd();
100
+ i0.ɵɵelementStart(3, "input", 1);
101
+ i0.ɵɵlistener("ngModelChange", function MoneyComponent_Template_input_ngModelChange_3_listener($event) { return ctx.changed($event); })("keyup.enter", function MoneyComponent_Template_input_keyup_enter_3_listener() { return ctx.enterPressed(); })("blur", function MoneyComponent_Template_input_blur_3_listener() { return ctx.leaved(); });
102
+ i0.ɵɵelementEnd();
103
+ i0.ɵɵtemplate(4, MoneyComponent_span_4_Template, 2, 1, "span", 2);
104
+ i0.ɵɵtemplate(5, MoneyComponent_mat_error_5_Template, 2, 1, "mat-error", 3);
105
+ i0.ɵɵelementEnd();
106
+ } if (rf & 2) {
107
+ i0.ɵɵproperty("hintLabel", ctx.hint)("ngStyle", i0.ɵɵpureFunction1(11, _c0, ctx.width));
108
+ i0.ɵɵadvance(2);
109
+ i0.ɵɵtextInterpolate(ctx.display);
110
+ i0.ɵɵadvance(1);
111
+ i0.ɵɵproperty("min", ctx.min)("max", ctx.max)("ngModel", ctx.value)("placeholder", ctx.placeholder)("formControl", ctx.control)("readonly", ctx.readonly);
112
+ i0.ɵɵadvance(1);
113
+ i0.ɵɵproperty("ngIf", ctx.currency != "");
114
+ i0.ɵɵadvance(1);
115
+ i0.ɵɵproperty("ngIf", ctx.control.invalid);
116
+ } }, directives: [i1.MatFormField, i2.NgStyle, i1.MatLabel, i3.MatInput, i4.DefaultValueAccessor, i5.CurrencyInputMaskDirective, i4.NgControlStatus, i4.FormControlDirective, i2.NgIf, i1.MatPrefix, i1.MatError], styles: ["input.example-right-align[_ngcontent-%COMP%]{-moz-appearance:textfield}.example-right-align[_ngcontent-%COMP%]{text-align:right}input.example-right-align[_ngcontent-%COMP%]::-webkit-inner-spin-button, input.example-right-align[_ngcontent-%COMP%]::-webkit-outer-spin-button{display:none}.curr[_ngcontent-%COMP%]{background-color:red}"] });
48
117
  return MoneyComponent;
49
118
  }());
50
119
  export { MoneyComponent };
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9uZXkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vdGluLXNwYS8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL21vbmV5L21vbmV5LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQVMvRTtJQUVFO1FBV1MsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNqQixZQUFPLEdBQUcsRUFBRSxDQUFDO1FBQ2IsVUFBSyxHQUFHLEVBQUUsQ0FBQztRQUNWLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUVsQyxVQUFLLEdBQUcsTUFBTSxDQUFBO1FBQ2QsU0FBSSxHQUFHLEVBQUUsQ0FBQztRQUNWLGFBQVEsR0FBRyxHQUFHLENBQUM7SUFsQlIsQ0FBQztJQUVqQixpQ0FBUSxHQUFSO0lBR0EsQ0FBQztJQUVELG9DQUFXLEdBQVg7SUFFQSxDQUFDO0lBZUQsZ0NBQU8sR0FBUDtRQUVFLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUVwQyxDQUFDO0lBakJRO1FBQVIsS0FBSyxFQUFFO29EQUFrQjtJQUNqQjtRQUFSLEtBQUssRUFBRTttREFBYztJQUNiO1FBQVIsS0FBSyxFQUFFO2lEQUFZO0lBQ1Y7UUFBVCxNQUFNLEVBQUU7dURBQWtDO0lBRWxDO1FBQVIsS0FBSyxFQUFFO2lEQUFlO0lBQ2Q7UUFBUixLQUFLLEVBQUU7Z0RBQVc7SUFDVjtRQUFSLEtBQUssRUFBRTtvREFBZ0I7SUFwQmIsY0FBYztRQUwxQixTQUFTLENBQUM7WUFDVCxRQUFRLEVBQUUsV0FBVztZQUNyQixvakJBQXFDOztTQUV0QyxDQUFDO09BQ1csY0FBYyxDQWlDMUI7SUFBRCxxQkFBQztDQUFBLEFBakNELElBaUNDO1NBakNZLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbi8vIGltcG9ydCB7IEN1cnJlbmN5UGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IENvcmUgfSBmcm9tICd0aW4tY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NwYS1tb25leScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL21vbmV5LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9tb25leS5jb21wb25lbnQuY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIE1vbmV5Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcblxyXG5cclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKCkge1xyXG5cclxuICB9XHJcblxyXG4gIEBJbnB1dCgpIHJlYWRvbmx5ID0gZmFsc2U7XHJcbiAgQElucHV0KCkgZGlzcGxheSA9IFwiXCI7XHJcbiAgQElucHV0KCkgdmFsdWUgPSBcIlwiO1xyXG4gIEBPdXRwdXQoKSB2YWx1ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgQElucHV0KCkgd2lkdGggPSBcIjEwMCVcIlxyXG4gIEBJbnB1dCgpIGhpbnQgPSBcIlwiO1xyXG4gIEBJbnB1dCgpIGN1cnJlbmN5ID0gXCIkXCI7XHJcblxyXG5cclxuXHJcblxyXG5cclxuICBjaGFuZ2VkKCl7XHJcblxyXG4gICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHRoaXMudmFsdWUpO1xyXG5cclxuICB9XHJcblxyXG5cclxufVxyXG4iXX0=
120
+ /*@__PURE__*/ (function () { i0.ɵsetClassMetadata(MoneyComponent, [{
121
+ type: Component,
122
+ args: [{
123
+ selector: 'spa-money',
124
+ templateUrl: './money.component.html',
125
+ styleUrls: ['./money.component.css']
126
+ }]
127
+ }], function () { return []; }, { readonly: [{
128
+ type: Input
129
+ }], hint: [{
130
+ type: Input
131
+ }], display: [{
132
+ type: Input
133
+ }], placeholder: [{
134
+ type: Input
135
+ }], value: [{
136
+ type: Input
137
+ }], width: [{
138
+ type: Input
139
+ }], currency: [{
140
+ type: Input
141
+ }], valueChange: [{
142
+ type: Output
143
+ }], leave: [{
144
+ type: Output
145
+ }], enterPress: [{
146
+ type: Output
147
+ }], required: [{
148
+ type: Input
149
+ }], min: [{
150
+ type: Input
151
+ }], max: [{
152
+ type: Input
153
+ }] }); })();
154
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9uZXkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vdGluLXNwYS8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL21vbmV5L21vbmV5LmNvbXBvbmVudC50cyIsImxpYi9jb21wb25lbnRzL21vbmV5L21vbmV5LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7SUNNdkQsK0JBQXFDO0lBQUEsWUFBa0I7SUFBQSxpQkFBTzs7O0lBQXpCLGVBQWtCO0lBQWxCLG9EQUFrQjs7O0lBQ3ZELGlDQUFtQztJQUFBLFlBQXFCO0lBQUEsaUJBQVk7OztJQUFqQyxlQUFxQjtJQUFyQixxREFBcUI7OztBREwxRDtJQU9FO1FBNEJTLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDakIsU0FBSSxHQUFHLEVBQUUsQ0FBQztRQUNWLFlBQU8sR0FBRyxFQUFFLENBQUM7UUFDYixnQkFBVyxHQUFHLEVBQUUsQ0FBQztRQUNqQixVQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ1gsVUFBSyxHQUFHLE1BQU0sQ0FBQTtRQUNkLGFBQVEsR0FBRyxFQUFFLENBQUM7UUFFYixnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDakMsVUFBSyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDM0IsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFJMUMsa0JBQWtCO1FBQ1QsYUFBUSxHQUFHLElBQUksQ0FBQztRQUNoQixRQUFHLEdBQUcsQ0FBQyxDQUFDO1FBQ1IsUUFBRyxHQUFHLGdCQUFnQixDQUFDLENBQUMsMkJBQTJCO1FBZTVELFlBQVk7UUFDWixZQUFPLEdBQUcsSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFD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QSxnQ0FBQSw0QkFBQSwwQkFBQTtZQUVMLGVBQW9CO1lBQXBCLHlDQUFvQjtZQUNmLGVBQXVCO1lBQXZCLDBDQUF1Qjs7eUJEUnBDO0NBbUdDLEFBaEdELElBZ0dDO1NBM0ZZLGNBQWM7a0RBQWQsY0FBYztjQUwxQixTQUFTO2VBQUM7Z0JBQ1QsUUFBUSxFQUFFLFdBQVc7Z0JBQ3JCLFdBQVcsRUFBRSx3QkFBd0I7Z0JBQ3JDLFNBQVMsRUFBRSxDQUFDLHVCQUF1QixDQUFDO2FBQ3JDOztrQkErQkUsS0FBSzs7a0JBQ0wsS0FBSzs7a0JBQ0wsS0FBSzs7a0JBQ0wsS0FBSzs7a0JBQ0wsS0FBSzs7a0JBQ0wsS0FBSzs7a0JBQ0wsS0FBSzs7a0JBRUwsTUFBTTs7a0JBQ04sTUFBTTs7a0JBQ04sTUFBTTs7a0JBS04sS0FBSzs7a0JBQ0wsS0FBSzs7a0JBQ0wsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NwYS1tb25leScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL21vbmV5LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9tb25leS5jb21wb25lbnQuY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIE1vbmV5Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5wbGFjZWhvbGRlciA9PSBcIlwiKSB7XHJcbiAgICAgIHRoaXMucGxhY2Vob2xkZXIgPSBcIkVudGVyIFwiICsgdGhpcy5kaXNwbGF5O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoKSB7XHJcblxyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgdGhpcy5pbml0Q29udHJvbCh0aGlzLmNvbnRyb2wpXHJcbiAgfVxyXG5cclxuICBpbml0Q29udHJvbChjb250cm9sOiBGb3JtQ29udHJvbCkge1xyXG4gICAgaWYgKHRoaXMucmVhZG9ubHkpIHtcclxuICAgICAgY29udHJvbC5zZXRWYWxpZGF0b3JzKG51bGwpO1xyXG4gICAgICBjb250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICAgIH1cclxuICAgIGlmICghdGhpcy5yZXF1aXJlZCAmJiAhdGhpcy5yZWFkb25seSkge1xyXG5cclxuICAgICAgY29udHJvbC5zZXRWYWxpZGF0b3JzKFtWYWxpZGF0b3JzLm1pbih0aGlzLm1pbiksIFZhbGlkYXRvcnMubWF4KHRoaXMubWF4KV0pO1xyXG4gICAgICB0aGlzLmNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQElucHV0KCkgcmVhZG9ubHkgPSBmYWxzZTtcclxuICBASW5wdXQoKSBoaW50ID0gXCJcIjtcclxuICBASW5wdXQoKSBkaXNwbGF5ID0gXCJcIjtcclxuICBASW5wdXQoKSBwbGFjZWhvbGRlciA9IFwiXCI7XHJcbiAgQElucHV0KCkgdmFsdWUgPSBcIlwiO1xyXG4gIEBJbnB1dCgpIHdpZHRoID0gXCIxMDAlXCJcclxuICBASW5wdXQoKSBjdXJyZW5jeSA9IFwiXCI7XHJcblxyXG4gIEBPdXRwdXQoKSB2YWx1ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgbGVhdmUgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIGVudGVyUHJlc3MgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG5cclxuXHJcbiAgLy92YWxpZGF0aW9uIGlucHV0XHJcbiAgQElucHV0KCkgcmVxdWlyZWQgPSB0cnVlO1xyXG4gIEBJbnB1dCgpIG1pbiA9IDA7XHJcbiAgQElucHV0KCkgbWF4ID0gOTAwMDAwMDAwMDAwMDAwMDsgLy9NYXRoLm1heCA5MDAwMDAwMDAwMDAwMDAwXHJcblxyXG5cclxuICBjaGFuZ2VkKHgpe1xyXG4gICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHgpO1xyXG4gIH1cclxuXHJcbiAgbGVhdmVkKCkge1xyXG4gICAgdGhpcy5sZWF2ZS5lbWl0KCk7XHJcbiAgfVxyXG5cclxuICBlbnRlclByZXNzZWQoKSB7XHJcbiAgICB0aGlzLmVudGVyUHJlc3MuZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgLy92YWxpZGF0aW9uXHJcbiAgY29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCh0aGlzLnZhbHVlLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5taW4odGhpcy5taW4pLCBWYWxpZGF0b3JzLm1heCh0aGlzLm1heCldKTtcclxuXHJcbiAgdmFsaWRhdGUoY29udHJvbDogRm9ybUNvbnRyb2wpOiBzdHJpbmcge1xyXG5cclxuICAgIGlmICh0aGlzLnJlcXVpcmVkICYmIGNvbnRyb2wuaGFzRXJyb3IoJ3JlcXVpcmVkJykpIHtcclxuICAgICAgcmV0dXJuIGBSZXF1aXJlZGA7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHBhcnNlRmxvYXQodGhpcy52YWx1ZSkgPCB0aGlzLm1pbil7XHJcbiAgICAgIHJldHVybiBgTWluaW11biB2YWx1ZSBpcyAke3RoaXMubWlufWA7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHBhcnNlRmxvYXQodGhpcy52YWx1ZSkgPiB0aGlzLm1heCkge1xyXG4gICAgICByZXR1cm4gYE1heGltdW0gdmFsdWUgaXMgJHt0aGlzLm1heH1gO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChjb250cm9sLmhhc0Vycm9yKCdtaW4nKSkge1xyXG4gICAgICByZXR1cm4gYE1pbmltdW4gdmFsdWUgaXMgJHt0aGlzLm1pbn1gO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChjb250cm9sLmhhc0Vycm9yKCdtYXgnKSkge1xyXG4gICAgICByZXR1cm4gYE1heGltdW0gdmFsdWUgaXMgJHt0aGlzLm1heH1gO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBcIlwiO1xyXG4gIH1cclxuXHJcblxyXG59XHJcbiIsIlxyXG5cclxuPG1hdC1mb3JtLWZpZWxkIGhpZGVSZXF1aXJlZE1hcmtlcj1cInRydWVcIiBbaGludExhYmVsXT1cImhpbnRcIiAgW25nU3R5bGVdPVwieyd3aWR0aCc6d2lkdGh9XCIgaGlkZVJlcXVpcmVkTWFya2VyPVwidHJ1ZVwiIHN0eWxlPVwibWFyZ2luLXJpZ2h0OiA1cHg7XCI+XHJcbiAgPG1hdC1sYWJlbD57e2Rpc3BsYXl9fTwvbWF0LWxhYmVsPlxyXG4gIDxpbnB1dCBtYXRJbnB1dCBhcHBDdXJyZW5jeUlucHV0TWFzayBhdXRvY29tcGxldGU9XCJvZmZcIiBzdHlsZT1cInRleHQtYWxpZ246IHJpZ2h0O1wiXHJcbiAgW21pbl09XCJtaW5cIiBbbWF4XT1cIm1heFwiXHJcbiAgW25nTW9kZWxdPVwidmFsdWVcIiAobmdNb2RlbENoYW5nZSk9XCJjaGFuZ2VkKCRldmVudClcIiAoa2V5dXAuZW50ZXIpPVwiZW50ZXJQcmVzc2VkKClcIiAoYmx1cik9XCJsZWF2ZWQoKVwiIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiIFtmb3JtQ29udHJvbF09XCJjb250cm9sXCIgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCIgLz5cclxuICA8c3BhbiAqbmdJZj1cImN1cnJlbmN5IT0nJ1wiIG1hdFByZWZpeD57e2N1cnJlbmN5fX0mbmJzcDs8L3NwYW4+XHJcbiAgPG1hdC1lcnJvciAqbmdJZj1cImNvbnRyb2wuaW52YWxpZFwiPnt7dmFsaWRhdGUoY29udHJvbCl9fTwvbWF0LWVycm9yPlxyXG48L21hdC1mb3JtLWZpZWxkPlxyXG5cclxuIl19