@kato-lee/components 1.0.3

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 (207) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +7 -0
  3. package/assets/_fade-in.scss +40 -0
  4. package/assets/_fields.scss +76 -0
  5. package/assets/_grids.scss +317 -0
  6. package/assets/components/_buttons.scss +3 -0
  7. package/assets/components/_cards.scss +26 -0
  8. package/assets/components/_dialogs.scss +13 -0
  9. package/assets/components/_fields.scss +110 -0
  10. package/assets/components/_material.scss +15 -0
  11. package/assets/components/_pretty-box.scss +41 -0
  12. package/assets/components/_scroll-bar.scss +23 -0
  13. package/assets/components/_snack-bar.scss +18 -0
  14. package/assets/components/_tables.scss +235 -0
  15. package/assets/components/_tabs.scss +7 -0
  16. package/assets/components/main.scss +25 -0
  17. package/assets/fonts/body/Transpass-Bold.ttf +0 -0
  18. package/assets/fonts/body/Transpass-Light.ttf +0 -0
  19. package/assets/fonts/body/Transpass-Medium.ttf +0 -0
  20. package/assets/fonts/body/Transpass-Regular.ttf +0 -0
  21. package/assets/fonts/body/style-font.scss +40 -0
  22. package/assets/fonts/main.scss +2 -0
  23. package/assets/fonts/title/Poppins-Bold.ttf +0 -0
  24. package/assets/fonts/title/Poppins-Light.ttf +0 -0
  25. package/assets/fonts/title/Poppins-Medium.ttf +0 -0
  26. package/assets/fonts/title/Poppins-Regular.ttf +0 -0
  27. package/assets/fonts/title/Poppins-SemiBold.ttf +0 -0
  28. package/assets/fonts/title/style-font.scss +39 -0
  29. package/assets/layouts/_loader.scss +71 -0
  30. package/assets/layouts/origin.scss +775 -0
  31. package/assets/main.scss +4 -0
  32. package/assets/material/icons/icons.woff2 +0 -0
  33. package/assets/material/icons/local.css +1 -0
  34. package/assets/material/icons/remote.css +1 -0
  35. package/assets/material/themes/dark.scss +55 -0
  36. package/assets/material/themes/default.scss +106 -0
  37. package/assets/material/themes/main.scss +2907 -0
  38. package/assets/themes/_dark.scss +15 -0
  39. package/assets/themes/_default.scss +30 -0
  40. package/assets/themes/main.scss +2 -0
  41. package/assets/variables.scss +7 -0
  42. package/box-form/box-form.component.d.ts +34 -0
  43. package/box-form/box-form.module.d.ts +13 -0
  44. package/box-form/common.d.ts +5 -0
  45. package/box-form/index.d.ts +3 -0
  46. package/box-form/package.json +3 -0
  47. package/capsule/capsule.component.d.ts +14 -0
  48. package/capsule/capsule.module.d.ts +7 -0
  49. package/capsule/index.d.ts +2 -0
  50. package/capsule/package.json +3 -0
  51. package/cards/cards.module.d.ts +7 -0
  52. package/cards/index.d.ts +2 -0
  53. package/cards/package.json +3 -0
  54. package/cards/simple-card.component.d.ts +8 -0
  55. package/dialogs/dialogs.module.d.ts +11 -0
  56. package/dialogs/dismiss-dialog-button.component.d.ts +8 -0
  57. package/dialogs/index.d.ts +2 -0
  58. package/dialogs/package.json +3 -0
  59. package/esm2022/box-form/box-form.component.mjs +99 -0
  60. package/esm2022/box-form/box-form.module.mjs +40 -0
  61. package/esm2022/box-form/common.mjs +2 -0
  62. package/esm2022/box-form/index.mjs +7 -0
  63. package/esm2022/box-form/kato-lee-components-box-form.mjs +5 -0
  64. package/esm2022/capsule/capsule.component.mjs +78 -0
  65. package/esm2022/capsule/capsule.module.mjs +16 -0
  66. package/esm2022/capsule/index.mjs +6 -0
  67. package/esm2022/capsule/kato-lee-components-capsule.mjs +5 -0
  68. package/esm2022/cards/cards.module.mjs +17 -0
  69. package/esm2022/cards/index.mjs +6 -0
  70. package/esm2022/cards/kato-lee-components-cards.mjs +5 -0
  71. package/esm2022/cards/simple-card.component.mjs +47 -0
  72. package/esm2022/dialogs/dialogs.module.mjs +22 -0
  73. package/esm2022/dialogs/dismiss-dialog-button.component.mjs +44 -0
  74. package/esm2022/dialogs/index.mjs +6 -0
  75. package/esm2022/dialogs/kato-lee-components-dialogs.mjs +5 -0
  76. package/esm2022/fields/autocomplete-field/autocomplete-field.component.mjs +240 -0
  77. package/esm2022/fields/date-field/date-field.component.mjs +148 -0
  78. package/esm2022/fields/date-range-field/date-range-field.component.mjs +70 -0
  79. package/esm2022/fields/error/error-equals.pipe.mjs +19 -0
  80. package/esm2022/fields/error/error.component.mjs +55 -0
  81. package/esm2022/fields/error/error.module.mjs +21 -0
  82. package/esm2022/fields/error/error.msg.pipe.mjs +19 -0
  83. package/esm2022/fields/error/lang/_en.mjs +12 -0
  84. package/esm2022/fields/error/lang/_es.mjs +12 -0
  85. package/esm2022/fields/error/lang/index.mjs +3 -0
  86. package/esm2022/fields/fields.common.mjs +8 -0
  87. package/esm2022/fields/fields.module.mjs +118 -0
  88. package/esm2022/fields/general-field/general-field.component.mjs +188 -0
  89. package/esm2022/fields/index.mjs +17 -0
  90. package/esm2022/fields/kato-lee-components-fields.mjs +5 -0
  91. package/esm2022/fields/money-field/money-field.component.mjs +188 -0
  92. package/esm2022/fields/number-field/number-field.component.mjs +165 -0
  93. package/esm2022/fields/select-field/select-field.component.mjs +135 -0
  94. package/esm2022/fields/text-area/textarea.component.mjs +171 -0
  95. package/esm2022/index.mjs +2 -0
  96. package/esm2022/kato-lee-components.mjs +5 -0
  97. package/esm2022/layouts/origin/breadcrumb/breadcrumb.component.mjs +65 -0
  98. package/esm2022/layouts/origin/footer/footer.component.mjs +11 -0
  99. package/esm2022/layouts/origin/header/header.component.mjs +46 -0
  100. package/esm2022/layouts/origin/index.mjs +12 -0
  101. package/esm2022/layouts/origin/kato-lee-components-layouts-origin.mjs +5 -0
  102. package/esm2022/layouts/origin/layout.component.mjs +210 -0
  103. package/esm2022/layouts/origin/layout.module.mjs +52 -0
  104. package/esm2022/layouts/origin/layout.navigation.mjs +19 -0
  105. package/esm2022/layouts/origin/navigation-interfaces.mjs +2 -0
  106. package/esm2022/layouts/origin/services/index.mjs +4 -0
  107. package/esm2022/layouts/origin/services/route-parts.service.mjs +28 -0
  108. package/esm2022/layouts/origin/services/toggle-sidebar.mjs +48 -0
  109. package/esm2022/layouts/origin/services/validate-access.pipe.mjs +53 -0
  110. package/esm2022/layouts/origin/sidebar/sidebar.component.mjs +69 -0
  111. package/esm2022/layouts/origin/sidebar/sidenav/expansion/accordion.component.mjs +74 -0
  112. package/esm2022/layouts/origin/sidebar/sidenav/expansion/expansion-panel-header.component.mjs +51 -0
  113. package/esm2022/layouts/origin/sidebar/sidenav/expansion/expansion-panel.component.mjs +63 -0
  114. package/esm2022/layouts/origin/sidebar/sidenav/sidenav.component.mjs +130 -0
  115. package/esm2022/modal/config.mjs +2 -0
  116. package/esm2022/modal/index.mjs +8 -0
  117. package/esm2022/modal/kato-lee-components-modal.mjs +5 -0
  118. package/esm2022/modal/modal.component.mjs +63 -0
  119. package/esm2022/modal/modal.module.mjs +21 -0
  120. package/esm2022/modal/modal.service.mjs +33 -0
  121. package/esm2022/pretty-box/index.mjs +5 -0
  122. package/esm2022/pretty-box/kato-lee-components-pretty-box.mjs +5 -0
  123. package/esm2022/pretty-box/pretty-box.component.mjs +94 -0
  124. package/esm2022/tables/index.mjs +6 -0
  125. package/esm2022/tables/kato-lee-components-tables.mjs +5 -0
  126. package/esm2022/tables/mat-paginator.translation.mjs +22 -0
  127. package/esm2022/tables/tables.module.mjs +19 -0
  128. package/esm2022/toast/index.mjs +5 -0
  129. package/esm2022/toast/kato-lee-components-toast.mjs +5 -0
  130. package/esm2022/toast/toast.service.mjs +42 -0
  131. package/fesm2022/kato-lee-components-box-form.mjs +146 -0
  132. package/fesm2022/kato-lee-components-box-form.mjs.map +1 -0
  133. package/fesm2022/kato-lee-components-capsule.mjs +102 -0
  134. package/fesm2022/kato-lee-components-capsule.mjs.map +1 -0
  135. package/fesm2022/kato-lee-components-cards.mjs +72 -0
  136. package/fesm2022/kato-lee-components-cards.mjs.map +1 -0
  137. package/fesm2022/kato-lee-components-dialogs.mjs +74 -0
  138. package/fesm2022/kato-lee-components-dialogs.mjs.map +1 -0
  139. package/fesm2022/kato-lee-components-fields.mjs +1486 -0
  140. package/fesm2022/kato-lee-components-fields.mjs.map +1 -0
  141. package/fesm2022/kato-lee-components-layouts-origin.mjs +872 -0
  142. package/fesm2022/kato-lee-components-layouts-origin.mjs.map +1 -0
  143. package/fesm2022/kato-lee-components-modal.mjs +121 -0
  144. package/fesm2022/kato-lee-components-modal.mjs.map +1 -0
  145. package/fesm2022/kato-lee-components-pretty-box.mjs +105 -0
  146. package/fesm2022/kato-lee-components-pretty-box.mjs.map +1 -0
  147. package/fesm2022/kato-lee-components-tables.mjs +51 -0
  148. package/fesm2022/kato-lee-components-tables.mjs.map +1 -0
  149. package/fesm2022/kato-lee-components-toast.mjs +53 -0
  150. package/fesm2022/kato-lee-components-toast.mjs.map +1 -0
  151. package/fesm2022/kato-lee-components.mjs +4 -0
  152. package/fesm2022/kato-lee-components.mjs.map +1 -0
  153. package/fields/autocomplete-field/autocomplete-field.component.d.ts +65 -0
  154. package/fields/date-field/date-field.component.d.ts +46 -0
  155. package/fields/date-range-field/date-range-field.component.d.ts +23 -0
  156. package/fields/error/error-equals.pipe.d.ts +7 -0
  157. package/fields/error/error.component.d.ts +22 -0
  158. package/fields/error/error.module.d.ts +11 -0
  159. package/fields/error/error.msg.pipe.d.ts +7 -0
  160. package/fields/error/lang/_en.d.ts +1 -0
  161. package/fields/error/lang/_es.d.ts +1 -0
  162. package/fields/error/lang/index.d.ts +2 -0
  163. package/fields/fields.common.d.ts +5 -0
  164. package/fields/fields.module.d.ts +28 -0
  165. package/fields/general-field/general-field.component.d.ts +56 -0
  166. package/fields/index.d.ts +13 -0
  167. package/fields/money-field/money-field.component.d.ts +53 -0
  168. package/fields/number-field/number-field.component.d.ts +52 -0
  169. package/fields/package.json +3 -0
  170. package/fields/select-field/select-field.component.d.ts +44 -0
  171. package/fields/text-area/textarea.component.d.ts +55 -0
  172. package/index.d.ts +1 -0
  173. package/layouts/origin/breadcrumb/breadcrumb.component.d.ts +24 -0
  174. package/layouts/origin/footer/footer.component.d.ts +5 -0
  175. package/layouts/origin/header/header.component.d.ts +15 -0
  176. package/layouts/origin/index.d.ts +8 -0
  177. package/layouts/origin/layout.component.d.ts +58 -0
  178. package/layouts/origin/layout.module.d.ts +18 -0
  179. package/layouts/origin/layout.navigation.d.ts +10 -0
  180. package/layouts/origin/navigation-interfaces.d.ts +24 -0
  181. package/layouts/origin/package.json +3 -0
  182. package/layouts/origin/services/index.d.ts +3 -0
  183. package/layouts/origin/services/route-parts.service.d.ts +15 -0
  184. package/layouts/origin/services/toggle-sidebar.d.ts +10 -0
  185. package/layouts/origin/services/validate-access.pipe.d.ts +7 -0
  186. package/layouts/origin/sidebar/sidebar.component.d.ts +27 -0
  187. package/layouts/origin/sidebar/sidenav/expansion/accordion.component.d.ts +10 -0
  188. package/layouts/origin/sidebar/sidenav/expansion/expansion-panel-header.component.d.ts +11 -0
  189. package/layouts/origin/sidebar/sidenav/expansion/expansion-panel.component.d.ts +12 -0
  190. package/layouts/origin/sidebar/sidenav/sidenav.component.d.ts +23 -0
  191. package/modal/config.d.ts +9 -0
  192. package/modal/index.d.ts +4 -0
  193. package/modal/modal.component.d.ts +35 -0
  194. package/modal/modal.module.d.ts +11 -0
  195. package/modal/modal.service.d.ts +13 -0
  196. package/modal/package.json +3 -0
  197. package/package.json +82 -0
  198. package/pretty-box/index.d.ts +1 -0
  199. package/pretty-box/package.json +3 -0
  200. package/pretty-box/pretty-box.component.d.ts +24 -0
  201. package/tables/index.d.ts +2 -0
  202. package/tables/mat-paginator.translation.d.ts +2 -0
  203. package/tables/package.json +3 -0
  204. package/tables/tables.module.d.ts +9 -0
  205. package/toast/index.d.ts +1 -0
  206. package/toast/package.json +3 -0
  207. package/toast/toast.service.d.ts +21 -0
@@ -0,0 +1,188 @@
1
+ import { Component, Optional, Input, Self, Output, EventEmitter, } from '@angular/core';
2
+ import { Validators, } from '@angular/forms';
3
+ import { TAK_DEFAULT_APPEARANCE_FORM } from '../fields.common';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/forms";
6
+ import * as i2 from "@kato-lee/material/form-field";
7
+ import * as i3 from "@kato-lee/material/button";
8
+ import * as i4 from "../error/error.component";
9
+ import * as i5 from "@kato-lee/material/icon";
10
+ import * as i6 from "@kato-lee/material/input";
11
+ export class TakGeneralFieldComponent {
12
+ constructor(_ngControl, _formGroupDirective, _cd) {
13
+ this._ngControl = _ngControl;
14
+ this._formGroupDirective = _formGroupDirective;
15
+ this._cd = _cd;
16
+ this.autocomplete = 'off';
17
+ this.appearance = TAK_DEFAULT_APPEARANCE_FORM;
18
+ this.type = 'text';
19
+ this.floatLabel = 'never';
20
+ this.color = 'primary';
21
+ this.actionIcon = 'search';
22
+ this.defaultFilterStyle = true;
23
+ this.hasActionButton = false;
24
+ this.hasClearButton = false;
25
+ this.countCaracters = false;
26
+ this.placeholder = '';
27
+ this.disabled = false;
28
+ this.onExecuteAction = new EventEmitter();
29
+ this.onKeyUp = new EventEmitter();
30
+ this.onChangeFn = (_) => { };
31
+ this.onTouchFn = (_) => { };
32
+ this._isSubmitted = false;
33
+ this._isInvalid = false;
34
+ this._required = false;
35
+ this._value = '';
36
+ this._decrypted = false;
37
+ if (_ngControl)
38
+ this._ngControl.valueAccessor = this;
39
+ if (_formGroupDirective) {
40
+ this._subscription = _formGroupDirective.ngSubmit.subscribe(() => {
41
+ this._isSubmitted = true;
42
+ _cd.markForCheck();
43
+ });
44
+ }
45
+ }
46
+ ngOnInit() {
47
+ const form = this.control;
48
+ if (this.type === 'filter' && this.defaultFilterStyle) {
49
+ this.control.removeValidators(Validators.required);
50
+ this.appearance = 'legacy';
51
+ this.floatLabel = 'never';
52
+ if (!this.placeholder)
53
+ this.placeholder = 'Buscar';
54
+ this.hasClearButton = true;
55
+ this._cd.markForCheck();
56
+ }
57
+ if (form?._rawValidators) {
58
+ form._rawValidators.forEach((r) => {
59
+ if (r.name.includes('required'))
60
+ this._required = true;
61
+ });
62
+ }
63
+ if (this.disabled)
64
+ this.control.disable();
65
+ }
66
+ writeValue(value) {
67
+ if (value === null)
68
+ this._isInvalid = false;
69
+ this._value = value;
70
+ this._isSubmitted = false;
71
+ this._cd.markForCheck();
72
+ }
73
+ registerOnChange(fn) {
74
+ this.onChangeFn = fn;
75
+ }
76
+ registerOnTouched(fn) {
77
+ this.onTouchFn = fn;
78
+ }
79
+ onChange(event) {
80
+ this._value = event.target.value;
81
+ this.onChangeFn(event.target.value);
82
+ if (!this.control.value && this.type === 'password')
83
+ this._decrypted = false;
84
+ if (this.control.touched)
85
+ this._onValidate();
86
+ if (this.type === 'filter')
87
+ this.onKeyUp.emit(this.control.value);
88
+ }
89
+ showPassword() {
90
+ if (this.type === 'password') {
91
+ if (this._decrypted)
92
+ this._decrypted = false;
93
+ else
94
+ this._decrypted = true;
95
+ }
96
+ }
97
+ onFocusOut() {
98
+ this.onTouchFn(true);
99
+ this._onValidate();
100
+ }
101
+ _onValidate() {
102
+ if (this.control.invalid)
103
+ this._isInvalid = true;
104
+ else
105
+ this._isInvalid = false;
106
+ }
107
+ onClearControl() {
108
+ if (['', null, undefined].indexOf(this.control.value) >= 0) {
109
+ this.control.setValue('', { emitEvent: false });
110
+ }
111
+ else
112
+ this.control.setValue('');
113
+ this._value = '';
114
+ }
115
+ ngOnDestroy() {
116
+ if (this._subscription)
117
+ this._subscription.unsubscribe();
118
+ }
119
+ get control() {
120
+ return this._ngControl.control;
121
+ }
122
+ get directive() {
123
+ return this._formGroupDirective;
124
+ }
125
+ get decrypted() {
126
+ return this._decrypted;
127
+ }
128
+ get isDisabled() {
129
+ return this._ngControl.disabled;
130
+ }
131
+ get isSubmitted() {
132
+ return this._isSubmitted;
133
+ }
134
+ get isInvalid() {
135
+ return this._isInvalid;
136
+ }
137
+ get required() {
138
+ return this._required;
139
+ }
140
+ get value() {
141
+ return this._value;
142
+ }
143
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: TakGeneralFieldComponent, deps: [{ token: i1.NgControl, optional: true, self: true }, { token: i1.FormGroupDirective, optional: true }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
144
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.3", type: TakGeneralFieldComponent, selector: "tak-general-field", inputs: { autocomplete: "autocomplete", appearance: "appearance", type: "type", floatLabel: "floatLabel", color: "color", actionIcon: "actionIcon", defaultFilterStyle: "defaultFilterStyle", hasActionButton: "hasActionButton", hasClearButton: "hasClearButton", countCaracters: "countCaracters", placeholder: "placeholder", maxLength: "maxLength", minLength: "minLength", disabled: "disabled" }, outputs: { onExecuteAction: "onExecuteAction", onKeyUp: "onKeyUp" }, ngImport: i0, template: "<div class=\"tak-form-container\">\r\n <mat-form-field\r\n [floatLabel]=\"floatLabel\"\r\n [class.mat-form-field-invalid]=\"isInvalid || (isSubmitted && control.invalid)\"\r\n [appearance]=\"appearance\"\r\n [color]=\"color\"\r\n >\r\n <mat-label>\r\n <ng-content></ng-content>{{ ' ' }}\r\n @if (required) {\r\n <span class=\"tak-field__danger-x\">*</span>\r\n }\r\n </mat-label>\r\n <input\r\n [type]=\"type === 'password' && !decrypted ? 'password' : 'text'\"\r\n matInput\r\n [autocomplete]=\"autocomplete\"\r\n [value]=\"value\"\r\n (keyup)=\"onChange($event)\"\r\n (change)=\"onChange($event)\"\r\n [placeholder]=\"placeholder\"\r\n [disabled]=\"isDisabled\"\r\n [attr.minLength]=\"minLength\"\r\n [attr.maxLength]=\"maxLength\"\r\n (focusout)=\"onFocusOut()\"\r\n />\r\n @if (control.value && hasClearButton && !isDisabled) {\r\n <button matSuffix mat-icon-button type=\"button\" (click)=\"onClearControl()\">\r\n <mat-icon class=\"tak-suffix-icon-button\">close</mat-icon>\r\n </button>\r\n }\r\n @if (control.value && hasActionButton && !isDisabled) {\r\n <button matSuffix mat-icon-button type=\"button\" (click)=\"onExecuteAction.emit(control.value)\">\r\n <mat-icon class=\"tak-suffix-icon-button\">{{ actionIcon }}</mat-icon>\r\n </button>\r\n }\r\n @if (control.value && type === 'password' && !isDisabled) {\r\n <button matSuffix mat-icon-button type=\"button\" (click)=\"showPassword()\">\r\n <mat-icon class=\"tak-suffix-icon-button\">{{\r\n decrypted ? 'visibility_off' : 'visibility'\r\n }}</mat-icon>\r\n </button>\r\n }\r\n @if (countCaracters) {\r\n <mat-hint align=\"end\" class=\"tak-hint\">\r\n {{ control.value?.length || 0 }}/{{ maxLength }}\r\n </mat-hint>\r\n }\r\n </mat-form-field>\r\n <div [style.maxWidth]=\"countCaracters ? '80%' : '100%'\">\r\n @if (isInvalid || (isSubmitted && control.invalid)) {\r\n <tak-error [control]=\"control\"></tak-error>\r\n }\r\n </div>\r\n</div>\r\n", dependencies: [{ kind: "component", type: i2.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i2.MatLabel, selector: "mat-label" }, { kind: "directive", type: i2.MatSuffix, selector: "[matSuffix]" }, { kind: "component", type: i3.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i4.TakErrorComponent, selector: "tak-error", inputs: ["control", "start", "end", "isDateField", "isNumberField", "marginTop"] }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i6.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }] }); }
145
+ }
146
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: TakGeneralFieldComponent, decorators: [{
147
+ type: Component,
148
+ args: [{ selector: 'tak-general-field', template: "<div class=\"tak-form-container\">\r\n <mat-form-field\r\n [floatLabel]=\"floatLabel\"\r\n [class.mat-form-field-invalid]=\"isInvalid || (isSubmitted && control.invalid)\"\r\n [appearance]=\"appearance\"\r\n [color]=\"color\"\r\n >\r\n <mat-label>\r\n <ng-content></ng-content>{{ ' ' }}\r\n @if (required) {\r\n <span class=\"tak-field__danger-x\">*</span>\r\n }\r\n </mat-label>\r\n <input\r\n [type]=\"type === 'password' && !decrypted ? 'password' : 'text'\"\r\n matInput\r\n [autocomplete]=\"autocomplete\"\r\n [value]=\"value\"\r\n (keyup)=\"onChange($event)\"\r\n (change)=\"onChange($event)\"\r\n [placeholder]=\"placeholder\"\r\n [disabled]=\"isDisabled\"\r\n [attr.minLength]=\"minLength\"\r\n [attr.maxLength]=\"maxLength\"\r\n (focusout)=\"onFocusOut()\"\r\n />\r\n @if (control.value && hasClearButton && !isDisabled) {\r\n <button matSuffix mat-icon-button type=\"button\" (click)=\"onClearControl()\">\r\n <mat-icon class=\"tak-suffix-icon-button\">close</mat-icon>\r\n </button>\r\n }\r\n @if (control.value && hasActionButton && !isDisabled) {\r\n <button matSuffix mat-icon-button type=\"button\" (click)=\"onExecuteAction.emit(control.value)\">\r\n <mat-icon class=\"tak-suffix-icon-button\">{{ actionIcon }}</mat-icon>\r\n </button>\r\n }\r\n @if (control.value && type === 'password' && !isDisabled) {\r\n <button matSuffix mat-icon-button type=\"button\" (click)=\"showPassword()\">\r\n <mat-icon class=\"tak-suffix-icon-button\">{{\r\n decrypted ? 'visibility_off' : 'visibility'\r\n }}</mat-icon>\r\n </button>\r\n }\r\n @if (countCaracters) {\r\n <mat-hint align=\"end\" class=\"tak-hint\">\r\n {{ control.value?.length || 0 }}/{{ maxLength }}\r\n </mat-hint>\r\n }\r\n </mat-form-field>\r\n <div [style.maxWidth]=\"countCaracters ? '80%' : '100%'\">\r\n @if (isInvalid || (isSubmitted && control.invalid)) {\r\n <tak-error [control]=\"control\"></tak-error>\r\n }\r\n </div>\r\n</div>\r\n" }]
149
+ }], ctorParameters: () => [{ type: i1.NgControl, decorators: [{
150
+ type: Self
151
+ }, {
152
+ type: Optional
153
+ }] }, { type: i1.FormGroupDirective, decorators: [{
154
+ type: Optional
155
+ }] }, { type: i0.ChangeDetectorRef }], propDecorators: { autocomplete: [{
156
+ type: Input
157
+ }], appearance: [{
158
+ type: Input
159
+ }], type: [{
160
+ type: Input
161
+ }], floatLabel: [{
162
+ type: Input
163
+ }], color: [{
164
+ type: Input
165
+ }], actionIcon: [{
166
+ type: Input
167
+ }], defaultFilterStyle: [{
168
+ type: Input
169
+ }], hasActionButton: [{
170
+ type: Input
171
+ }], hasClearButton: [{
172
+ type: Input
173
+ }], countCaracters: [{
174
+ type: Input
175
+ }], placeholder: [{
176
+ type: Input
177
+ }], maxLength: [{
178
+ type: Input
179
+ }], minLength: [{
180
+ type: Input
181
+ }], disabled: [{
182
+ type: Input
183
+ }], onExecuteAction: [{
184
+ type: Output
185
+ }], onKeyUp: [{
186
+ type: Output
187
+ }] } });
188
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhbC1maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29tcG9uZW50cy9maWVsZHMvZ2VuZXJhbC1maWVsZC9nZW5lcmFsLWZpZWxkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb21wb25lbnRzL2ZpZWxkcy9nZW5lcmFsLWZpZWxkL2dlbmVyYWwtZmllbGQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFFVCxRQUFRLEVBRVIsS0FBSyxFQUNMLElBQUksRUFDSixNQUFNLEVBQ04sWUFBWSxHQUNiLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFLTCxVQUFVLEdBQ1gsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QixPQUFPLEVBQUUsMkJBQTJCLEVBQXVCLE1BQU0sa0JBQWtCLENBQUM7Ozs7Ozs7O0FBUXBGLE1BQU0sT0FBTyx3QkFBd0I7SUFrQ25DLFlBQzhCLFVBQXFCLEVBQzdCLG1CQUF1QyxFQUNuRCxHQUFzQjtRQUZGLGVBQVUsR0FBVixVQUFVLENBQVc7UUFDN0Isd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFvQjtRQUNuRCxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQXBDdkIsaUJBQVksR0FBaUIsS0FBSyxDQUFDO1FBRW5DLGVBQVUsR0FBMkIsMkJBQTJCLENBQUM7UUFDakUsU0FBSSxHQUF3QixNQUFNLENBQUM7UUFDbkMsZUFBVSxHQUFtQixPQUFPLENBQUM7UUFDckMsVUFBSyxHQUFpQixTQUFTLENBQUM7UUFDaEMsZUFBVSxHQUFHLFFBQVEsQ0FBQztRQUV0Qix1QkFBa0IsR0FBRyxJQUFJLENBQUM7UUFDMUIsb0JBQWUsR0FBRyxLQUFLLENBQUM7UUFDeEIsbUJBQWMsR0FBRyxLQUFLLENBQUM7UUFDdkIsbUJBQWMsR0FBRyxLQUFLLENBQUM7UUFDdkIsZ0JBQVcsR0FB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QkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFFRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBRUcsUUFBUTtzQkFBaEIsS0FBSztnQkFFSSxlQUFlO3NCQUF4QixNQUFNO2dCQUNHLE9BQU87c0JBQWhCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENvbXBvbmVudCxcclxuICBPbkRlc3Ryb3ksXHJcbiAgT3B0aW9uYWwsXHJcbiAgT25Jbml0LFxyXG4gIElucHV0LFxyXG4gIFNlbGYsXHJcbiAgT3V0cHV0LFxyXG4gIEV2ZW50RW1pdHRlcixcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtcclxuICBDb250cm9sVmFsdWVBY2Nlc3NvcixcclxuICBGb3JtR3JvdXBEaXJlY3RpdmUsXHJcbiAgRm9ybUNvbnRyb2wsXHJcbiAgTmdDb250cm9sLFxyXG4gIFZhbGlkYXRvcnMsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgVEFLX0RFRkFVTFRfQVBQRUFSQU5DRV9GT1JNLCBUYWtHZW5lcmFsRmllbGRUeXBlIH0gZnJvbSAnLi4vZmllbGRzLmNvbW1vbic7XHJcbmltcG9ydCB7IEZsb2F0TGFiZWxUeXBlLCBNYXRGb3JtRmllbGRBcHBlYXJhbmNlIH0gZnJvbSAnQGthdG8tbGVlL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xyXG5pbXBvcnQgeyBUaGVtZVBhbGV0dGUgfSBmcm9tICdAa2F0by1sZWUvbWF0ZXJpYWwvY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3Rhay1nZW5lcmFsLWZpZWxkJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZ2VuZXJhbC1maWVsZC5jb21wb25lbnQuaHRtbCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUYWtHZW5lcmFsRmllbGRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xyXG4gIEBJbnB1dCgpIGF1dG9jb21wbGV0ZTogJ29mZicgfCAnb24nID0gJ29mZic7XHJcblxyXG4gIEBJbnB1dCgpIGFwcGVhcmFuY2U6IE1hdEZvcm1GaWVsZEFwcGVhcmFuY2UgPSBUQUtfREVGQVVMVF9BUFBFQVJBTkNFX0ZPUk07XHJcbiAgQElucHV0KCkgdHlwZTogVGFrR2VuZXJhbEZpZWxkVHlwZSA9ICd0ZXh0JztcclxuICBASW5wdXQoKSBmbG9hdExhYmVsOiBGbG9hdExhYmVsVHlwZSA9ICduZXZlcic7XHJcbiAgQElucHV0KCkgY29sb3I6IFRoZW1lUGFsZXR0ZSA9ICdwcmltYXJ5JztcclxuICBASW5wdXQoKSBhY3Rpb25JY29uID0gJ3NlYXJjaCc7XHJcblxyXG4gIEBJbnB1dCgpIGRlZmF1bHRGaWx0ZXJTdHlsZSA9IHRydWU7XHJcbiAgQElucHV0KCkgaGFzQWN0aW9uQnV0dG9uID0gZmFsc2U7XHJcbiAgQElucHV0KCkgaGFzQ2xlYXJCdXR0b24gPSBmYWxzZTtcclxuICBASW5wdXQoKSBjb3VudENhcmFjdGVycyA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyID0gJyc7XHJcblxyXG4gIEBJbnB1dCgpIG1heExlbmd0aCE6IG51bWJlcjtcclxuICBASW5wdXQoKSBtaW5MZW5ndGghOiBudW1iZXI7XHJcblxyXG4gIEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XHJcblxyXG4gIEBPdXRwdXQoKSBvbkV4ZWN1dGVBY3Rpb24gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIG9uS2V5VXAgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIHB1YmxpYyBvbkNoYW5nZUZuID0gKF86IGFueSkgPT4ge307XHJcbiAgcHVibGljIG9uVG91Y2hGbiA9IChfOiBhbnkpID0+IHt9O1xyXG5cclxuICBwcml2YXRlIF9pc1N1Ym1pdHRlZCA9IGZhbHNlO1xyXG4gIHByaXZhdGUgX2lzSW52YWxpZCA9IGZhbHNlO1xyXG4gIHByaXZhdGUgX3JlcXVpcmVkID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBfdmFsdWUgPSAnJztcclxuXHJcbiAgcHJpdmF0ZSBfc3Vic2NyaXB0aW9uITogU3Vic2NyaXB0aW9uO1xyXG4gIHByaXZhdGUgX2RlY3J5cHRlZCA9IGZhbHNlO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIEBTZWxmKCkgQE9wdGlvbmFsKCkgcHJpdmF0ZSBfbmdDb250cm9sOiBOZ0NvbnRyb2wsXHJcbiAgICBAT3B0aW9uYWwoKSBwcml2YXRlIF9mb3JtR3JvdXBEaXJlY3RpdmU6IEZvcm1Hcm91cERpcmVjdGl2ZSxcclxuICAgIHByaXZhdGUgX2NkOiBDaGFuZ2VEZXRlY3RvclJlZlxyXG4gICkge1xyXG4gICAgaWYgKF9uZ0NvbnRyb2wpIHRoaXMuX25nQ29udHJvbC52YWx1ZUFjY2Vzc29yID0gdGhpcztcclxuXHJcbiAgICBpZiAoX2Zvcm1Hcm91cERpcmVjdGl2ZSkge1xyXG4gICAgICB0aGlzLl9zdWJzY3JpcHRpb24gPSBfZm9ybUdyb3VwRGlyZWN0aXZlLm5nU3VibWl0LnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5faXNTdWJtaXR0ZWQgPSB0cnVlO1xyXG4gICAgICAgIF9jZC5tYXJrRm9yQ2hlY2soKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBjb25zdCBmb3JtOiBhbnkgPSB0aGlzLmNvbnRyb2w7XHJcblxyXG4gICAgaWYgKHRoaXMudHlwZSA9PT0gJ2ZpbHRlcicgJiYgdGhpcy5kZWZhdWx0RmlsdGVyU3R5bGUpIHtcclxuICAgICAgdGhpcy5jb250cm9sLnJlbW92ZVZhbGlkYXRvcnMoVmFsaWRhdG9ycy5yZXF1aXJlZCk7XHJcbiAgICAgIHRoaXMuYXBwZWFyYW5jZSA9ICdsZWdhY3knO1xyXG4gICAgICB0aGlzLmZsb2F0TGFiZWwgPSAnbmV2ZXInO1xyXG4gICAgICBpZiAoIXRoaXMucGxhY2Vob2xkZXIpIHRoaXMucGxhY2Vob2xkZXIgPSAnQnVzY2FyJztcclxuICAgICAgdGhpcy5oYXNDbGVhckJ1dHRvbiA9IHRydWU7XHJcbiAgICAgIHRoaXMuX2NkLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChmb3JtPy5fcmF3VmFsaWRhdG9ycykge1xyXG4gICAgICBmb3JtLl9yYXdWYWxpZGF0b3JzLmZvckVhY2goKHI6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChyLm5hbWUuaW5jbHVkZXMoJ3JlcXVpcmVkJykpIHRoaXMuX3JlcXVpcmVkID0gdHJ1ZTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuZGlzYWJsZWQpIHRoaXMuY29udHJvbC5kaXNhYmxlKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgd3JpdGVWYWx1ZSh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBpZiAodmFsdWUgPT09IG51bGwpIHRoaXMuX2lzSW52YWxpZCA9IGZhbHNlO1xyXG4gICAgdGhpcy5fdmFsdWUgPSB2YWx1ZTtcclxuICAgIHRoaXMuX2lzU3VibWl0dGVkID0gZmFsc2U7XHJcbiAgICB0aGlzLl9jZC5tYXJrRm9yQ2hlY2soKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMub25DaGFuZ2VGbiA9IGZuO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMub25Ub3VjaEZuID0gZm47XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25DaGFuZ2UoZXZlbnQ6IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5fdmFsdWUgPSBldmVudC50YXJnZXQudmFsdWU7XHJcbiAgICB0aGlzLm9uQ2hhbmdlRm4oZXZlbnQudGFyZ2V0LnZhbHVlKTtcclxuICAgIGlmICghdGhpcy5jb250cm9sLnZhbHVlICYmIHRoaXMudHlwZSA9PT0gJ3Bhc3N3b3JkJykgdGhpcy5fZGVjcnlwdGVkID0gZmFsc2U7XHJcbiAgICBpZiAodGhpcy5jb250cm9sLnRvdWNoZWQpIHRoaXMuX29uVmFsaWRhdGUoKTtcclxuICAgIGlmICh0aGlzLnR5cGUgPT09ICdmaWx0ZXInKSB0aGlzLm9uS2V5VXAuZW1pdCh0aGlzLmNvbnRyb2wudmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNob3dQYXNzd29yZCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnR5cGUgPT09ICdwYXNzd29yZCcpIHtcclxuICAgICAgaWYgKHRoaXMuX2RlY3J5cHRlZCkgdGhpcy5fZGVjcnlwdGVkID0gZmFsc2U7XHJcbiAgICAgIGVsc2UgdGhpcy5fZGVjcnlwdGVkID0gdHJ1ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBvbkZvY3VzT3V0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5vblRvdWNoRm4odHJ1ZSk7XHJcbiAgICB0aGlzLl9vblZhbGlkYXRlKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9vblZhbGlkYXRlKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuY29udHJvbC5pbnZhbGlkKSB0aGlzLl9pc0ludmFsaWQgPSB0cnVlO1xyXG4gICAgZWxzZSB0aGlzLl9pc0ludmFsaWQgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvbkNsZWFyQ29udHJvbCgpOiB2b2lkIHtcclxuICAgIGlmIChbJycsIG51bGwsIHVuZGVmaW5lZF0uaW5kZXhPZih0aGlzLmNvbnRyb2wudmFsdWUpID49IDApIHtcclxuICAgICAgdGhpcy5jb250cm9sLnNldFZhbHVlKCcnLCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XHJcbiAgICB9IGVsc2UgdGhpcy5jb250cm9sLnNldFZhbHVlKCcnKTtcclxuICAgIHRoaXMuX3ZhbHVlID0gJyc7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5fc3Vic2NyaXB0aW9uKSB0aGlzLl9zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIGdldCBjb250cm9sKCk6IEZvcm1Db250cm9sIHtcclxuICAgIHJldHVybiB0aGlzLl9uZ0NvbnRyb2wuY29udHJvbCBhcyBGb3JtQ29udHJvbDtcclxuICB9XHJcblxyXG4gIGdldCBkaXJlY3RpdmUoKTogRm9ybUdyb3VwRGlyZWN0aXZlIHtcclxuICAgIHJldHVybiB0aGlzLl9mb3JtR3JvdXBEaXJlY3RpdmUgYXMgRm9ybUdyb3VwRGlyZWN0aXZlO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGRlY3J5cHRlZCgpIHtcclxuICAgIHJldHVybiB0aGlzLl9kZWNyeXB0ZWQ7XHJcbiAgfVxyXG5cclxuICBnZXQgaXNEaXNhYmxlZCgpIHtcclxuICAgIHJldHVybiB0aGlzLl9uZ0NvbnRyb2wuZGlzYWJsZWQ7XHJcbiAgfVxyXG5cclxuICBnZXQgaXNTdWJtaXR0ZWQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5faXNTdWJtaXR0ZWQ7XHJcbiAgfVxyXG5cclxuICBnZXQgaXNJbnZhbGlkKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX2lzSW52YWxpZDtcclxuICB9XHJcblxyXG4gIGdldCByZXF1aXJlZCgpIHtcclxuICAgIHJldHVybiB0aGlzLl9yZXF1aXJlZDtcclxuICB9XHJcblxyXG4gIGdldCB2YWx1ZSgpIHtcclxuICAgIHJldHVybiB0aGlzLl92YWx1ZTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cInRhay1mb3JtLWNvbnRhaW5lclwiPlxyXG4gIDxtYXQtZm9ybS1maWVsZFxyXG4gICAgW2Zsb2F0TGFiZWxdPVwiZmxvYXRMYWJlbFwiXHJcbiAgICBbY2xhc3MubWF0LWZvcm0tZmllbGQtaW52YWxpZF09XCJpc0ludmFsaWQgfHwgKGlzU3VibWl0dGVkICYmIGNvbnRyb2wuaW52YWxpZClcIlxyXG4gICAgW2FwcGVhcmFuY2VdPVwiYXBwZWFyYW5jZVwiXHJcbiAgICBbY29sb3JdPVwiY29sb3JcIlxyXG4gID5cclxuICAgIDxtYXQtbGFiZWw+XHJcbiAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD57eyAnICcgfX1cclxuICAgICAgQGlmIChyZXF1aXJlZCkge1xyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwidGFrLWZpZWxkX19kYW5nZXIteFwiPio8L3NwYW4+XHJcbiAgICAgIH1cclxuICAgIDwvbWF0LWxhYmVsPlxyXG4gICAgPGlucHV0XHJcbiAgICAgIFt0eXBlXT1cInR5cGUgPT09ICdwYXNzd29yZCcgJiYgIWRlY3J5cHRlZCA/ICdwYXNzd29yZCcgOiAndGV4dCdcIlxyXG4gICAgICBtYXRJbnB1dFxyXG4gICAgICBbYXV0b2NvbXBsZXRlXT1cImF1dG9jb21wbGV0ZVwiXHJcbiAgICAgIFt2YWx1ZV09XCJ2YWx1ZVwiXHJcbiAgICAgIChrZXl1cCk9XCJvbkNoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgKGNoYW5nZSk9XCJvbkNoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcclxuICAgICAgW2Rpc2FibGVkXT1cImlzRGlzYWJsZWRcIlxyXG4gICAgICBbYXR0ci5taW5MZW5ndGhdPVwibWluTGVuZ3RoXCJcclxuICAgICAgW2F0dHIubWF4TGVuZ3RoXT1cIm1heExlbmd0aFwiXHJcbiAgICAgIChmb2N1c291dCk9XCJvbkZvY3VzT3V0KClcIlxyXG4gICAgLz5cclxuICAgIEBpZiAoY29udHJvbC52YWx1ZSAmJiBoYXNDbGVhckJ1dHRvbiAmJiAhaXNEaXNhYmxlZCkge1xyXG4gICAgICA8YnV0dG9uIG1hdFN1ZmZpeCBtYXQtaWNvbi1idXR0b24gdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJvbkNsZWFyQ29udHJvbCgpXCI+XHJcbiAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwidGFrLXN1ZmZpeC1pY29uLWJ1dHRvblwiPmNsb3NlPC9tYXQtaWNvbj5cclxuICAgICAgPC9idXR0b24+XHJcbiAgICB9XHJcbiAgICBAaWYgKGNvbnRyb2wudmFsdWUgJiYgaGFzQWN0aW9uQnV0dG9uICYmICFpc0Rpc2FibGVkKSB7XHJcbiAgICAgIDxidXR0b24gbWF0U3VmZml4IG1hdC1pY29uLWJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cIm9uRXhlY3V0ZUFjdGlvbi5lbWl0KGNvbnRyb2wudmFsdWUpXCI+XHJcbiAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwidGFrLXN1ZmZpeC1pY29uLWJ1dHRvblwiPnt7IGFjdGlvbkljb24gfX08L21hdC1pY29uPlxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgIH1cclxuICAgIEBpZiAoY29udHJvbC52YWx1ZSAmJiB0eXBlID09PSAncGFzc3dvcmQnICYmICFpc0Rpc2FibGVkKSB7XHJcbiAgICAgIDxidXR0b24gbWF0U3VmZml4IG1hdC1pY29uLWJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cInNob3dQYXNzd29yZCgpXCI+XHJcbiAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwidGFrLXN1ZmZpeC1pY29uLWJ1dHRvblwiPnt7XHJcbiAgICAgICAgICBkZWNyeXB0ZWQgPyAndmlzaWJpbGl0eV9vZmYnIDogJ3Zpc2liaWxpdHknXHJcbiAgICAgICAgfX08L21hdC1pY29uPlxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgIH1cclxuICAgIEBpZiAoY291bnRDYXJhY3RlcnMpIHtcclxuICAgICAgPG1hdC1oaW50IGFsaWduPVwiZW5kXCIgY2xhc3M9XCJ0YWstaGludFwiPlxyXG4gICAgICAgIHt7IGNvbnRyb2wudmFsdWU/Lmxlbmd0aCB8fCAwIH19L3t7IG1heExlbmd0aCB9fVxyXG4gICAgICA8L21hdC1oaW50PlxyXG4gICAgfVxyXG4gIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgPGRpdiBbc3R5bGUubWF4V2lkdGhdPVwiY291bnRDYXJhY3RlcnMgPyAnODAlJyA6ICcxMDAlJ1wiPlxyXG4gICAgQGlmIChpc0ludmFsaWQgfHwgKGlzU3VibWl0dGVkICYmIGNvbnRyb2wuaW52YWxpZCkpIHtcclxuICAgICAgPHRhay1lcnJvciBbY29udHJvbF09XCJjb250cm9sXCI+PC90YWstZXJyb3I+XHJcbiAgICB9XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
@@ -0,0 +1,17 @@
1
+ /*
2
+ * Public API Surface of @kato-lee/components/fields
3
+ */
4
+ export * from './error/error-equals.pipe';
5
+ export * from './error/error.component';
6
+ export * from './error/error.msg.pipe';
7
+ export * from './fields.common';
8
+ export * from './fields.module';
9
+ export * from './select-field/select-field.component';
10
+ export * from './date-field/date-field.component';
11
+ export * from './autocomplete-field/autocomplete-field.component';
12
+ export * from './general-field/general-field.component';
13
+ export * from './money-field/money-field.component';
14
+ export * from './text-area/textarea.component';
15
+ export * from './date-range-field/date-range-field.component';
16
+ export * from './number-field/number-field.component';
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJyYXJpZXMvY29tcG9uZW50cy9maWVsZHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsbURBQW1ELENBQUM7QUFDbEUsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsZ0NBQWdDLENBQUM7QUFDL0MsY0FBYywrQ0FBK0MsQ0FBQztBQUM5RCxjQUFjLHVDQUF1QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIEBrYXRvLWxlZS9jb21wb25lbnRzL2ZpZWxkc1xyXG4gKi9cclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vZXJyb3IvZXJyb3ItZXF1YWxzLnBpcGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2Vycm9yL2Vycm9yLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vZXJyb3IvZXJyb3IubXNnLnBpcGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2ZpZWxkcy5jb21tb24nO1xyXG5leHBvcnQgKiBmcm9tICcuL2ZpZWxkcy5tb2R1bGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL3NlbGVjdC1maWVsZC9zZWxlY3QtZmllbGQuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9kYXRlLWZpZWxkL2RhdGUtZmllbGQuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9hdXRvY29tcGxldGUtZmllbGQvYXV0b2NvbXBsZXRlLWZpZWxkLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vZ2VuZXJhbC1maWVsZC9nZW5lcmFsLWZpZWxkLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbW9uZXktZmllbGQvbW9uZXktZmllbGQuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi90ZXh0LWFyZWEvdGV4dGFyZWEuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9kYXRlLXJhbmdlLWZpZWxkL2RhdGUtcmFuZ2UtZmllbGQuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9udW1iZXItZmllbGQvbnVtYmVyLWZpZWxkLmNvbXBvbmVudCc7XHJcbiJdfQ==
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './index';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2F0by1sZWUtY29tcG9uZW50cy1maWVsZHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJyYXJpZXMvY29tcG9uZW50cy9maWVsZHMva2F0by1sZWUtY29tcG9uZW50cy1maWVsZHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9pbmRleCc7XG4iXX0=
@@ -0,0 +1,188 @@
1
+ import { Component, Optional, Input, Self, Output, EventEmitter, } from '@angular/core';
2
+ import { Validators, } from '@angular/forms';
3
+ import { TAK_DEFAULT_APPEARANCE_FORM } from '../fields.common';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/forms";
6
+ import * as i2 from "@kato-lee/material/form-field";
7
+ import * as i3 from "@kato-lee/material/button";
8
+ import * as i4 from "../error/error.component";
9
+ import * as i5 from "@kato-lee/material/icon";
10
+ import * as i6 from "@kato-lee/material/input";
11
+ export class TakMoneyFieldComponent {
12
+ constructor(_ngControl, _formGroupDirective, _cd) {
13
+ this._ngControl = _ngControl;
14
+ this._formGroupDirective = _formGroupDirective;
15
+ this._cd = _cd;
16
+ this.autocomplete = 'off';
17
+ this.appearance = TAK_DEFAULT_APPEARANCE_FORM;
18
+ this.floatLabel = 'auto';
19
+ this.color = 'primary';
20
+ this.actionIcon = 'search';
21
+ this.defaultFilterStyle = true;
22
+ this.hasActionButton = false;
23
+ this.hasClearButton = true;
24
+ this.countCaracters = false;
25
+ this.placeholder = '';
26
+ this.disabled = false;
27
+ this.onExecuteAction = new EventEmitter();
28
+ this.onKeyUp = new EventEmitter();
29
+ this.onChangeFn = (_) => { };
30
+ this.onTouchFn = (_) => { };
31
+ this._isSubmitted = false;
32
+ this._isInvalid = false;
33
+ this._required = false;
34
+ this._value = '';
35
+ if (_ngControl)
36
+ this._ngControl.valueAccessor = this;
37
+ if (_formGroupDirective) {
38
+ this._subscription = _formGroupDirective.ngSubmit.subscribe(() => {
39
+ this._isSubmitted = true;
40
+ _cd.markForCheck();
41
+ });
42
+ }
43
+ }
44
+ ngOnInit() {
45
+ const form = this.control;
46
+ if (form?._rawValidators) {
47
+ form._rawValidators.forEach((r) => {
48
+ if (r.name.includes('required'))
49
+ this._required = true;
50
+ });
51
+ }
52
+ this.control.addValidators(Validators.pattern(/^[0-9.,-]+$/));
53
+ if (['', null, undefined, '-'].indexOf(this.control.value) < 0)
54
+ this._addCurrencyMask();
55
+ if (this.disabled)
56
+ this.control.disable();
57
+ }
58
+ writeValue(value) {
59
+ if (value === null) {
60
+ this._isInvalid = false;
61
+ }
62
+ this._value = value;
63
+ this._isSubmitted = false;
64
+ this._cd.markForCheck();
65
+ }
66
+ registerOnChange(fn) {
67
+ this.onChangeFn = fn;
68
+ }
69
+ registerOnTouched(fn) {
70
+ this.onTouchFn = fn;
71
+ }
72
+ onChange(event) {
73
+ this._value = event.target.value;
74
+ this.onChangeFn(event.target.value);
75
+ this._addCurrencyMask();
76
+ if (this.control.touched)
77
+ this._onValidate();
78
+ }
79
+ _addCurrencyMask() {
80
+ const valueFormatted = this.control.value
81
+ .toString()
82
+ .replace(/,/g, '')
83
+ .replace(/ /g, '')
84
+ .replace('$', '');
85
+ if (['', null, undefined, '-'].indexOf(valueFormatted) < 0 && !isNaN(Number(valueFormatted))) {
86
+ const value = '$ ' + Intl.NumberFormat('en-US').format(Number(valueFormatted));
87
+ this.control.setValue(+valueFormatted);
88
+ this._value = value;
89
+ }
90
+ else if (['-'].indexOf(valueFormatted) >= 0)
91
+ this.control.setValue('-');
92
+ else
93
+ this.control.setValue(null);
94
+ }
95
+ onFocusOut() {
96
+ this.onTouchFn(true);
97
+ //this._executeIfIsMoneyField();
98
+ this._onValidate();
99
+ }
100
+ _onValidate() {
101
+ if (this.control.invalid)
102
+ this._isInvalid = true;
103
+ else
104
+ this._isInvalid = false;
105
+ }
106
+ onKeyDown(event) {
107
+ const pattern = /[0-9.-]/i.test(event.key);
108
+ const validKeyCodes = [8, 46, 37, 39, 9, 17, 16, 67, 86, 109, 189];
109
+ return pattern || validKeyCodes.indexOf(event.keyCode) >= 0;
110
+ }
111
+ onClearControl() {
112
+ if (['', null, undefined].indexOf(this.control.value) >= 0) {
113
+ this.control.setValue('', { emitEvent: false });
114
+ }
115
+ else {
116
+ this.control.setValue('');
117
+ }
118
+ this._value = '';
119
+ }
120
+ ngOnDestroy() {
121
+ if (this._subscription)
122
+ this._subscription.unsubscribe();
123
+ }
124
+ get control() {
125
+ return this._ngControl.control;
126
+ }
127
+ get directive() {
128
+ return this._formGroupDirective;
129
+ }
130
+ get isDisabled() {
131
+ return this._ngControl.disabled;
132
+ }
133
+ get isSubmitted() {
134
+ return this._isSubmitted;
135
+ }
136
+ get isInvalid() {
137
+ return this._isInvalid;
138
+ }
139
+ get required() {
140
+ return this._required;
141
+ }
142
+ get value() {
143
+ return this._value;
144
+ }
145
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: TakMoneyFieldComponent, deps: [{ token: i1.NgControl, optional: true, self: true }, { token: i1.FormGroupDirective, optional: true }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
146
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.3", type: TakMoneyFieldComponent, selector: "tak-money-field", inputs: { autocomplete: "autocomplete", appearance: "appearance", floatLabel: "floatLabel", color: "color", actionIcon: "actionIcon", defaultFilterStyle: "defaultFilterStyle", hasActionButton: "hasActionButton", hasClearButton: "hasClearButton", countCaracters: "countCaracters", placeholder: "placeholder", maxLength: "maxLength", minLength: "minLength", disabled: "disabled" }, outputs: { onExecuteAction: "onExecuteAction", onKeyUp: "onKeyUp" }, ngImport: i0, template: "<div class=\"tak-form-container\">\r\n <mat-form-field\r\n [floatLabel]=\"floatLabel\"\r\n [class.mat-form-field-invalid]=\"isInvalid || (isSubmitted && control.invalid)\"\r\n [appearance]=\"appearance\"\r\n [color]=\"color\"\r\n >\r\n <mat-label>\r\n <ng-content></ng-content>{{ ' ' }}\r\n @if (required) {\r\n <span class=\"tak-field__danger-x\">*</span>\r\n }\r\n </mat-label>\r\n <input\r\n class=\"money-input\"\r\n matInput\r\n [autocomplete]=\"autocomplete\"\r\n [placeholder]=\"placeholder\"\r\n [value]=\"value\"\r\n (keyup)=\"onChange($event)\"\r\n (change)=\"onChange($event)\"\r\n (keydown)=\"onKeyDown($event)\"\r\n [disabled]=\"isDisabled\"\r\n [attr.minLength]=\"minLength\"\r\n [attr.maxLength]=\"maxLength\"\r\n (focusout)=\"onFocusOut()\"\r\n />\r\n @if (control.value && hasClearButton && !isDisabled) {\r\n <button matSuffix mat-icon-button type=\"button\" (click)=\"onClearControl()\">\r\n <mat-icon class=\"tak-suffix-icon-button\">close</mat-icon>\r\n </button>\r\n }\r\n @if (control.value && hasActionButton && !isDisabled) {\r\n <button matSuffix mat-icon-button type=\"button\" (click)=\"onExecuteAction.emit(control.value)\">\r\n <mat-icon class=\"tak-suffix-icon-button\">{{ actionIcon }}</mat-icon>\r\n </button>\r\n }\r\n @if (countCaracters) {\r\n <mat-hint align=\"end\" class=\"tak-hint\">\r\n {{ control.value?.length || 0 }}/{{ maxLength }}\r\n </mat-hint>\r\n }\r\n </mat-form-field>\r\n <div [style.maxWidth]=\"countCaracters ? '80%' : '100%'\">\r\n @if (isInvalid || (isSubmitted && control.invalid)) {\r\n <tak-error [control]=\"control\"></tak-error>\r\n }\r\n </div>\r\n</div>\r\n", dependencies: [{ kind: "component", type: i2.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i2.MatLabel, selector: "mat-label" }, { kind: "directive", type: i2.MatSuffix, selector: "[matSuffix]" }, { kind: "component", type: i3.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i4.TakErrorComponent, selector: "tak-error", inputs: ["control", "start", "end", "isDateField", "isNumberField", "marginTop"] }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i6.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }] }); }
147
+ }
148
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: TakMoneyFieldComponent, decorators: [{
149
+ type: Component,
150
+ args: [{ selector: 'tak-money-field', template: "<div class=\"tak-form-container\">\r\n <mat-form-field\r\n [floatLabel]=\"floatLabel\"\r\n [class.mat-form-field-invalid]=\"isInvalid || (isSubmitted && control.invalid)\"\r\n [appearance]=\"appearance\"\r\n [color]=\"color\"\r\n >\r\n <mat-label>\r\n <ng-content></ng-content>{{ ' ' }}\r\n @if (required) {\r\n <span class=\"tak-field__danger-x\">*</span>\r\n }\r\n </mat-label>\r\n <input\r\n class=\"money-input\"\r\n matInput\r\n [autocomplete]=\"autocomplete\"\r\n [placeholder]=\"placeholder\"\r\n [value]=\"value\"\r\n (keyup)=\"onChange($event)\"\r\n (change)=\"onChange($event)\"\r\n (keydown)=\"onKeyDown($event)\"\r\n [disabled]=\"isDisabled\"\r\n [attr.minLength]=\"minLength\"\r\n [attr.maxLength]=\"maxLength\"\r\n (focusout)=\"onFocusOut()\"\r\n />\r\n @if (control.value && hasClearButton && !isDisabled) {\r\n <button matSuffix mat-icon-button type=\"button\" (click)=\"onClearControl()\">\r\n <mat-icon class=\"tak-suffix-icon-button\">close</mat-icon>\r\n </button>\r\n }\r\n @if (control.value && hasActionButton && !isDisabled) {\r\n <button matSuffix mat-icon-button type=\"button\" (click)=\"onExecuteAction.emit(control.value)\">\r\n <mat-icon class=\"tak-suffix-icon-button\">{{ actionIcon }}</mat-icon>\r\n </button>\r\n }\r\n @if (countCaracters) {\r\n <mat-hint align=\"end\" class=\"tak-hint\">\r\n {{ control.value?.length || 0 }}/{{ maxLength }}\r\n </mat-hint>\r\n }\r\n </mat-form-field>\r\n <div [style.maxWidth]=\"countCaracters ? '80%' : '100%'\">\r\n @if (isInvalid || (isSubmitted && control.invalid)) {\r\n <tak-error [control]=\"control\"></tak-error>\r\n }\r\n </div>\r\n</div>\r\n" }]
151
+ }], ctorParameters: () => [{ type: i1.NgControl, decorators: [{
152
+ type: Self
153
+ }, {
154
+ type: Optional
155
+ }] }, { type: i1.FormGroupDirective, decorators: [{
156
+ type: Optional
157
+ }] }, { type: i0.ChangeDetectorRef }], propDecorators: { autocomplete: [{
158
+ type: Input
159
+ }], appearance: [{
160
+ type: Input
161
+ }], floatLabel: [{
162
+ type: Input
163
+ }], color: [{
164
+ type: Input
165
+ }], actionIcon: [{
166
+ type: Input
167
+ }], defaultFilterStyle: [{
168
+ type: Input
169
+ }], hasActionButton: [{
170
+ type: Input
171
+ }], hasClearButton: [{
172
+ type: Input
173
+ }], countCaracters: [{
174
+ type: Input
175
+ }], placeholder: [{
176
+ type: Input
177
+ }], maxLength: [{
178
+ type: Input
179
+ }], minLength: [{
180
+ type: Input
181
+ }], disabled: [{
182
+ type: Input
183
+ }], onExecuteAction: [{
184
+ type: Output
185
+ }], onKeyUp: [{
186
+ type: Output
187
+ }] } });
188
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9uZXktZmllbGQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvbXBvbmVudHMvZmllbGRzL21vbmV5LWZpZWxkL21vbmV5LWZpZWxkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb21wb25lbnRzL2ZpZWxkcy9tb25leS1maWVsZC9tb25leS1maWVsZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsU0FBUyxFQUVULFFBQVEsRUFFUixLQUFLLEVBQ0wsSUFBSSxFQUNKLE1BQU0sRUFDTixZQUFZLEdBQ2IsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUtMLFVBQVUsR0FDWCxNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGtCQUFrQixDQUFDOzs7Ozs7OztBQVEvRCxNQUFNLE9BQU8sc0JBQXNCO0lBZ0NqQyxZQUM4QixVQUFxQixFQUM3QixtQkFBdUMsRUFDbkQsR0FBc0I7UUFGRixlQUFVLEdBQVYsVUFBVSxDQUFXO1FBQzdCLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBb0I7UUFDbkQsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFsQ3ZCLGlCQUFZLEdBQWlCLEtBQUssQ0FBQztRQUVuQyxlQUFVLEdBQTJCLDJCQUEyQixDQUFDO1FBQ2pFLGVBQVUsR0FBbUIsTUFBTSxDQUFDO1FBQ3BDLFVBQUssR0FBaUIsU0FBUyxDQUFDO1FBQ2hDLGVBQVUsR0FBRyxRQUFRLENBQUM7UUFFdEIsdUJBQWtCLEdBQUcsSUFBSSxDQUFDO1FBQzFCLG9CQUFlLEdBQUcsS0FBSyxDQUFDO1FBQ3hCLG1CQUFjLEdBQUcsSUFBSSxDQUFDO1FBQ3RCLG1CQUFjLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLGdCQUFXLEdBQUcsRUFBRSxDQUFDO1FBS2pCLGFBQVEsR0FBRyxLQUFLLENBQUM7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T0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxJQUFJLFFBQVE7UUFDVixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDeEIsQ0FBQztJQUVELElBQUksS0FBSztRQUNQLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNyQixDQUFDOzhHQS9KVSxzQkFBc0I7a0dBQXRCLHNCQUFzQix3ZkMzQm5DLHV4REFpREE7OzJGRHRCYSxzQkFBc0I7a0JBSmxDLFNBQVM7K0JBQ0UsaUJBQWlCOzswQkFvQ3hCLElBQUk7OzBCQUFJLFFBQVE7OzBCQUNoQixRQUFRO3lFQWpDRixZQUFZO3NCQUFwQixLQUFLO2dCQUVHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFFRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFFRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBRUcsUUFBUTtzQkFBaEIsS0FBSztnQkFFSSxlQUFlO3NCQUF4QixNQUFNO2dCQUNHLE9BQU87c0JBQWhCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENvbXBvbmVudCxcclxuICBPbkRlc3Ryb3ksXHJcbiAgT3B0aW9uYWwsXHJcbiAgT25Jbml0LFxyXG4gIElucHV0LFxyXG4gIFNlbGYsXHJcbiAgT3V0cHV0LFxyXG4gIEV2ZW50RW1pdHRlcixcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtcclxuICBDb250cm9sVmFsdWVBY2Nlc3NvcixcclxuICBGb3JtR3JvdXBEaXJlY3RpdmUsXHJcbiAgRm9ybUNvbnRyb2wsXHJcbiAgTmdDb250cm9sLFxyXG4gIFZhbGlkYXRvcnMsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgVEFLX0RFRkFVTFRfQVBQRUFSQU5DRV9GT1JNIH0gZnJvbSAnLi4vZmllbGRzLmNvbW1vbic7XHJcbmltcG9ydCB7IEZsb2F0TGFiZWxUeXBlLCBNYXRGb3JtRmllbGRBcHBlYXJhbmNlIH0gZnJvbSAnQGthdG8tbGVlL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xyXG5pbXBvcnQgeyBUaGVtZVBhbGV0dGUgfSBmcm9tICdAa2F0by1sZWUvbWF0ZXJpYWwvY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3Rhay1tb25leS1maWVsZCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL21vbmV5LWZpZWxkLmNvbXBvbmVudC5odG1sJyxcclxufSlcclxuZXhwb3J0IGNsYXNzIFRha01vbmV5RmllbGRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xyXG4gIEBJbnB1dCgpIGF1dG9jb21wbGV0ZTogJ29mZicgfCAnb24nID0gJ29mZic7XHJcblxyXG4gIEBJbnB1dCgpIGFwcGVhcmFuY2U6IE1hdEZvcm1GaWVsZEFwcGVhcmFuY2UgPSBUQUtfREVGQVVMVF9BUFBFQVJBTkNFX0ZPUk07XHJcbiAgQElucHV0KCkgZmxvYXRMYWJlbDogRmxvYXRMYWJlbFR5cGUgPSAnYXV0byc7XHJcbiAgQElucHV0KCkgY29sb3I6IFRoZW1lUGFsZXR0ZSA9ICdwcmltYXJ5JztcclxuICBASW5wdXQoKSBhY3Rpb25JY29uID0gJ3NlYXJjaCc7XHJcblxyXG4gIEBJbnB1dCgpIGRlZmF1bHRGaWx0ZXJTdHlsZSA9IHRydWU7XHJcbiAgQElucHV0KCkgaGFzQWN0aW9uQnV0dG9uID0gZmFsc2U7XHJcbiAgQElucHV0KCkgaGFzQ2xlYXJCdXR0b24gPSB0cnVlO1xyXG4gIEBJbnB1dCgpIGNvdW50Q2FyYWN0ZXJzID0gZmFsc2U7XHJcbiAgQElucHV0KCkgcGxhY2Vob2xkZXIgPSAnJztcclxuXHJcbiAgQElucHV0KCkgbWF4TGVuZ3RoITogbnVtYmVyO1xyXG4gIEBJbnB1dCgpIG1pbkxlbmd0aCE6IG51bWJlcjtcclxuXHJcbiAgQElucHV0KCkgZGlzYWJsZWQgPSBmYWxzZTtcclxuXHJcbiAgQE91dHB1dCgpIG9uRXhlY3V0ZUFjdGlvbiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgb25LZXlVcCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgcHVibGljIG9uQ2hhbmdlRm4gPSAoXzogYW55KSA9PiB7fTtcclxuICBwdWJsaWMgb25Ub3VjaEZuID0gKF86IGFueSkgPT4ge307XHJcblxyXG4gIHByaXZhdGUgX2lzU3VibWl0dGVkID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBfaXNJbnZhbGlkID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBfcmVxdWlyZWQgPSBmYWxzZTtcclxuICBwcml2YXRlIF92YWx1ZSA9ICcnO1xyXG5cclxuICBwcml2YXRlIF9zdWJzY3JpcHRpb24hOiBTdWJzY3JpcHRpb247XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgQFNlbGYoKSBAT3B0aW9uYWwoKSBwcml2YXRlIF9uZ0NvbnRyb2w6IE5nQ29udHJvbCxcclxuICAgIEBPcHRpb25hbCgpIHByaXZhdGUgX2Zvcm1Hcm91cERpcmVjdGl2ZTogRm9ybUdyb3VwRGlyZWN0aXZlLFxyXG4gICAgcHJpdmF0ZSBfY2Q6IENoYW5nZURldGVjdG9yUmVmXHJcbiAgKSB7XHJcbiAgICBpZiAoX25nQ29udHJvbCkgdGhpcy5fbmdDb250cm9sLnZhbHVlQWNjZXNzb3IgPSB0aGlzO1xyXG5cclxuICAgIGlmIChfZm9ybUdyb3VwRGlyZWN0aXZlKSB7XHJcbiAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbiA9IF9mb3JtR3JvdXBEaXJlY3RpdmUubmdTdWJtaXQuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICB0aGlzLl9pc1N1Ym1pdHRlZCA9IHRydWU7XHJcbiAgICAgICAgX2NkLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIGNvbnN0IGZvcm06IGFueSA9IHRoaXMuY29udHJvbDtcclxuXHJcbiAgICBpZiAoZm9ybT8uX3Jhd1ZhbGlkYXRvcnMpIHtcclxuICAgICAgZm9ybS5fcmF3VmFsaWRhdG9ycy5mb3JFYWNoKChyOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAoci5uYW1lLmluY2x1ZGVzKCdyZXF1aXJlZCcpKSB0aGlzLl9yZXF1aXJlZCA9IHRydWU7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuY29udHJvbC5hZGRWYWxpZGF0b3JzKFZhbGlkYXRvcnMucGF0dGVybigvXlswLTkuLC1dKyQvKSk7XHJcblxyXG4gICAgaWYgKFsnJywgbnVsbCwgdW5kZWZpbmVkLCAnLSddLmluZGV4T2YodGhpcy5jb250cm9sLnZhbHVlKSA8IDApIHRoaXMuX2FkZEN1cnJlbmN5TWFzaygpO1xyXG5cclxuICAgIGlmICh0aGlzLmRpc2FibGVkKSB0aGlzLmNvbnRyb2wuZGlzYWJsZSgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHdyaXRlVmFsdWUodmFsdWU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgaWYgKHZhbHVlID09PSBudWxsKSB7XHJcbiAgICAgIHRoaXMuX2lzSW52YWxpZCA9IGZhbHNlO1xyXG4gICAgfVxyXG4gICAgdGhpcy5fdmFsdWUgPSB2YWx1ZTtcclxuICAgIHRoaXMuX2lzU3VibWl0dGVkID0gZmFsc2U7XHJcbiAgICB0aGlzLl9jZC5tYXJrRm9yQ2hlY2soKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMub25DaGFuZ2VGbiA9IGZuO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMub25Ub3VjaEZuID0gZm47XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25DaGFuZ2UoZXZlbnQ6IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5fdmFsdWUgPSBldmVudC50YXJnZXQudmFsdWU7XHJcbiAgICB0aGlzLm9uQ2hhbmdlRm4oZXZlbnQudGFyZ2V0LnZhbHVlKTtcclxuICAgIHRoaXMuX2FkZEN1cnJlbmN5TWFzaygpO1xyXG4gICAgaWYgKHRoaXMuY29udHJvbC50b3VjaGVkKSB0aGlzLl9vblZhbGlkYXRlKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9hZGRDdXJyZW5jeU1hc2soKSB7XHJcbiAgICBjb25zdCB2YWx1ZUZvcm1hdHRlZCA9IHRoaXMuY29udHJvbC52YWx1ZVxyXG4gICAgICAudG9TdHJpbmcoKVxyXG4gICAgICAucmVwbGFjZSgvLC9nLCAnJylcclxuICAgICAgLnJlcGxhY2UoLyAvZywgJycpXHJcbiAgICAgIC5yZXBsYWNlKCckJywgJycpO1xyXG5cclxuICAgIGlmIChbJycsIG51bGwsIHVuZGVmaW5lZCwgJy0nXS5pbmRleE9mKHZhbHVlRm9ybWF0dGVkKSA8IDAgJiYgIWlzTmFOKE51bWJlcih2YWx1ZUZvcm1hdHRlZCkpKSB7XHJcbiAgICAgIGNvbnN0IHZhbHVlID0gJyQgJyArIEludGwuTnVtYmVyRm9ybWF0KCdlbi1VUycpLmZvcm1hdChOdW1iZXIodmFsdWVGb3JtYXR0ZWQpKTtcclxuICAgICAgdGhpcy5jb250cm9sLnNldFZhbHVlKCt2YWx1ZUZvcm1hdHRlZCk7XHJcbiAgICAgIHRoaXMuX3ZhbHVlID0gdmFsdWU7XHJcbiAgICB9IGVsc2UgaWYgKFsnLSddLmluZGV4T2YodmFsdWVGb3JtYXR0ZWQpID49IDApIHRoaXMuY29udHJvbC5zZXRWYWx1ZSgnLScpO1xyXG4gICAgZWxzZSB0aGlzLmNvbnRyb2wuc2V0VmFsdWUobnVsbCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25Gb2N1c091dCgpOiB2b2lkIHtcclxuICAgIHRoaXMub25Ub3VjaEZuKHRydWUpO1xyXG4gICAgLy90aGlzLl9leGVjdXRlSWZJc01vbmV5RmllbGQoKTtcclxuICAgIHRoaXMuX29uVmFsaWRhdGUoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX29uVmFsaWRhdGUoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5jb250cm9sLmludmFsaWQpIHRoaXMuX2lzSW52YWxpZCA9IHRydWU7XHJcbiAgICBlbHNlIHRoaXMuX2lzSW52YWxpZCA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uS2V5RG93bihldmVudDogYW55KSB7XHJcbiAgICBjb25zdCBwYXR0ZXJuID0gL1swLTkuLV0vaS50ZXN0KGV2ZW50LmtleSk7XHJcbiAgICBjb25zdCB2YWxpZEtleUNvZGVzID0gWzgsIDQ2LCAzNywgMzksIDksIDE3LCAxNiwgNjcsIDg2LCAxMDksIDE4OV07XHJcbiAgICByZXR1cm4gcGF0dGVybiB8fCB2YWxpZEtleUNvZGVzLmluZGV4T2YoZXZlbnQua2V5Q29kZSkgPj0gMDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvbkNsZWFyQ29udHJvbCgpOiB2b2lkIHtcclxuICAgIGlmIChbJycsIG51bGwsIHVuZGVmaW5lZF0uaW5kZXhPZih0aGlzLmNvbnRyb2wudmFsdWUpID49IDApIHtcclxuICAgICAgdGhpcy5jb250cm9sLnNldFZhbHVlKCcnLCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmNvbnRyb2wuc2V0VmFsdWUoJycpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuX3ZhbHVlID0gJyc7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5fc3Vic2NyaXB0aW9uKSB0aGlzLl9zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIGdldCBjb250cm9sKCk6IEZvcm1Db250cm9sIHtcclxuICAgIHJldHVybiB0aGlzLl9uZ0NvbnRyb2wuY29udHJvbCBhcyBGb3JtQ29udHJvbDtcclxuICB9XHJcblxyXG4gIGdldCBkaXJlY3RpdmUoKTogRm9ybUdyb3VwRGlyZWN0aXZlIHtcclxuICAgIHJldHVybiB0aGlzLl9mb3JtR3JvdXBEaXJlY3RpdmUgYXMgRm9ybUdyb3VwRGlyZWN0aXZlO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGlzRGlzYWJsZWQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fbmdDb250cm9sLmRpc2FibGVkO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGlzU3VibWl0dGVkKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX2lzU3VibWl0dGVkO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGlzSW52YWxpZCgpIHtcclxuICAgIHJldHVybiB0aGlzLl9pc0ludmFsaWQ7XHJcbiAgfVxyXG5cclxuICBnZXQgcmVxdWlyZWQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fcmVxdWlyZWQ7XHJcbiAgfVxyXG5cclxuICBnZXQgdmFsdWUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fdmFsdWU7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJ0YWstZm9ybS1jb250YWluZXJcIj5cclxuICA8bWF0LWZvcm0tZmllbGRcclxuICAgIFtmbG9hdExhYmVsXT1cImZsb2F0TGFiZWxcIlxyXG4gICAgW2NsYXNzLm1hdC1mb3JtLWZpZWxkLWludmFsaWRdPVwiaXNJbnZhbGlkIHx8IChpc1N1Ym1pdHRlZCAmJiBjb250cm9sLmludmFsaWQpXCJcclxuICAgIFthcHBlYXJhbmNlXT1cImFwcGVhcmFuY2VcIlxyXG4gICAgW2NvbG9yXT1cImNvbG9yXCJcclxuICA+XHJcbiAgICA8bWF0LWxhYmVsPlxyXG4gICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+e3sgJyAnIH19XHJcbiAgICAgIEBpZiAocmVxdWlyZWQpIHtcclxuICAgICAgICA8c3BhbiBjbGFzcz1cInRhay1maWVsZF9fZGFuZ2VyLXhcIj4qPC9zcGFuPlxyXG4gICAgICB9XHJcbiAgICA8L21hdC1sYWJlbD5cclxuICAgIDxpbnB1dFxyXG4gICAgICBjbGFzcz1cIm1vbmV5LWlucHV0XCJcclxuICAgICAgbWF0SW5wdXRcclxuICAgICAgW2F1dG9jb21wbGV0ZV09XCJhdXRvY29tcGxldGVcIlxyXG4gICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxyXG4gICAgICBbdmFsdWVdPVwidmFsdWVcIlxyXG4gICAgICAoa2V5dXApPVwib25DaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgIChjaGFuZ2UpPVwib25DaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgIChrZXlkb3duKT1cIm9uS2V5RG93bigkZXZlbnQpXCJcclxuICAgICAgW2Rpc2FibGVkXT1cImlzRGlzYWJsZWRcIlxyXG4gICAgICBbYXR0ci5taW5MZW5ndGhdPVwibWluTGVuZ3RoXCJcclxuICAgICAgW2F0dHIubWF4TGVuZ3RoXT1cIm1heExlbmd0aFwiXHJcbiAgICAgIChmb2N1c291dCk9XCJvbkZvY3VzT3V0KClcIlxyXG4gICAgLz5cclxuICAgIEBpZiAoY29udHJvbC52YWx1ZSAmJiBoYXNDbGVhckJ1dHRvbiAmJiAhaXNEaXNhYmxlZCkge1xyXG4gICAgICA8YnV0dG9uIG1hdFN1ZmZpeCBtYXQtaWNvbi1idXR0b24gdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJvbkNsZWFyQ29udHJvbCgpXCI+XHJcbiAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwidGFrLXN1ZmZpeC1pY29uLWJ1dHRvblwiPmNsb3NlPC9tYXQtaWNvbj5cclxuICAgICAgPC9idXR0b24+XHJcbiAgICB9XHJcbiAgICBAaWYgKGNvbnRyb2wudmFsdWUgJiYgaGFzQWN0aW9uQnV0dG9uICYmICFpc0Rpc2FibGVkKSB7XHJcbiAgICAgIDxidXR0b24gbWF0U3VmZml4IG1hdC1pY29uLWJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cIm9uRXhlY3V0ZUFjdGlvbi5lbWl0KGNvbnRyb2wudmFsdWUpXCI+XHJcbiAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwidGFrLXN1ZmZpeC1pY29uLWJ1dHRvblwiPnt7IGFjdGlvbkljb24gfX08L21hdC1pY29uPlxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgIH1cclxuICAgIEBpZiAoY291bnRDYXJhY3RlcnMpIHtcclxuICAgICAgPG1hdC1oaW50IGFsaWduPVwiZW5kXCIgY2xhc3M9XCJ0YWstaGludFwiPlxyXG4gICAgICAgIHt7IGNvbnRyb2wudmFsdWU/Lmxlbmd0aCB8fCAwIH19L3t7IG1heExlbmd0aCB9fVxyXG4gICAgICA8L21hdC1oaW50PlxyXG4gICAgfVxyXG4gIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgPGRpdiBbc3R5bGUubWF4V2lkdGhdPVwiY291bnRDYXJhY3RlcnMgPyAnODAlJyA6ICcxMDAlJ1wiPlxyXG4gICAgQGlmIChpc0ludmFsaWQgfHwgKGlzU3VibWl0dGVkICYmIGNvbnRyb2wuaW52YWxpZCkpIHtcclxuICAgICAgPHRhay1lcnJvciBbY29udHJvbF09XCJjb250cm9sXCI+PC90YWstZXJyb3I+XHJcbiAgICB9XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=