@kato-lee/components 1.0.8 → 1.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 (197) hide show
  1. package/assets/_grids.scss +5 -5
  2. package/assets/fonts/fonts.scss +11 -0
  3. package/assets/themes/_default.scss +0 -1
  4. package/box-form/{box-form.component.d.ts → component.d.ts} +2 -2
  5. package/box-form/index.d.ts +2 -2
  6. package/box-form/module.d.ts +8 -0
  7. package/capsule/{capsule.component.d.ts → component.d.ts} +1 -1
  8. package/capsule/index.d.ts +2 -2
  9. package/capsule/{capsule.module.d.ts → module.d.ts} +3 -2
  10. package/cards/{simple-card.component.d.ts → component.d.ts} +1 -1
  11. package/cards/index.d.ts +2 -2
  12. package/cards/{cards.module.d.ts → module.d.ts} +3 -2
  13. package/dialogs/dismiss-dialog-button.component.d.ts +1 -1
  14. package/dialogs/index.d.ts +1 -1
  15. package/dialogs/module.d.ts +9 -0
  16. package/esm2022/box-form/component.mjs +112 -0
  17. package/esm2022/box-form/index.mjs +3 -3
  18. package/esm2022/box-form/module.mjs +17 -0
  19. package/esm2022/capsule/component.mjs +78 -0
  20. package/esm2022/capsule/index.mjs +3 -3
  21. package/esm2022/capsule/module.mjs +17 -0
  22. package/esm2022/cards/component.mjs +48 -0
  23. package/esm2022/cards/index.mjs +3 -3
  24. package/esm2022/cards/module.mjs +18 -0
  25. package/esm2022/dialogs/dismiss-dialog-button.component.mjs +14 -12
  26. package/esm2022/dialogs/index.mjs +2 -2
  27. package/esm2022/dialogs/module.mjs +19 -0
  28. package/esm2022/fields/autocomplete/component.mjs +259 -0
  29. package/esm2022/fields/autocomplete/index.mjs +2 -0
  30. package/esm2022/fields/common.mjs +11 -0
  31. package/esm2022/fields/date/component.mjs +163 -0
  32. package/esm2022/fields/date/index.mjs +2 -0
  33. package/esm2022/fields/date-range/component.mjs +85 -0
  34. package/esm2022/fields/date-range/index.mjs +2 -0
  35. package/esm2022/fields/error/component.mjs +57 -0
  36. package/esm2022/fields/error/error-equals.pipe.mjs +3 -3
  37. package/esm2022/fields/error/error.msg.pipe.mjs +3 -3
  38. package/esm2022/fields/general/component.mjs +202 -0
  39. package/esm2022/fields/general/index.mjs +2 -0
  40. package/esm2022/fields/index.mjs +14 -14
  41. package/esm2022/fields/module.mjs +82 -0
  42. package/esm2022/fields/money/component.mjs +202 -0
  43. package/esm2022/fields/money/index.mjs +2 -0
  44. package/esm2022/fields/number/component.mjs +179 -0
  45. package/esm2022/fields/number/index.mjs +2 -0
  46. package/esm2022/fields/remote-autocomplete/component.mjs +188 -0
  47. package/esm2022/fields/remote-autocomplete/index.mjs +2 -0
  48. package/esm2022/fields/select/component.mjs +158 -0
  49. package/esm2022/fields/select/index.mjs +2 -0
  50. package/esm2022/fields/text-area/component.mjs +186 -0
  51. package/esm2022/fields/validators.mjs +11 -0
  52. package/esm2022/modal/component.mjs +66 -0
  53. package/esm2022/modal/index.mjs +4 -4
  54. package/esm2022/modal/module.mjs +17 -0
  55. package/esm2022/modal/service.mjs +33 -0
  56. package/esm2022/pretty-box/component.mjs +94 -0
  57. package/esm2022/pretty-box/index.mjs +2 -2
  58. package/esm2022/tables/index.mjs +2 -2
  59. package/esm2022/tables/module.mjs +23 -0
  60. package/esm2022/toast/index.mjs +2 -2
  61. package/esm2022/toast/service.mjs +42 -0
  62. package/fesm2022/kato-lee-components-box-form.mjs +19 -29
  63. package/fesm2022/kato-lee-components-box-form.mjs.map +1 -1
  64. package/fesm2022/kato-lee-components-capsule.mjs +5 -4
  65. package/fesm2022/kato-lee-components-capsule.mjs.map +1 -1
  66. package/fesm2022/kato-lee-components-cards.mjs +7 -5
  67. package/fesm2022/kato-lee-components-cards.mjs.map +1 -1
  68. package/fesm2022/kato-lee-components-dialogs.mjs +16 -18
  69. package/fesm2022/kato-lee-components-dialogs.mjs.map +1 -1
  70. package/fesm2022/kato-lee-components-fields.mjs +135 -106
  71. package/fesm2022/kato-lee-components-fields.mjs.map +1 -1
  72. package/fesm2022/kato-lee-components-modal.mjs +9 -10
  73. package/fesm2022/kato-lee-components-modal.mjs.map +1 -1
  74. package/fesm2022/kato-lee-components-pretty-box.mjs +6 -6
  75. package/fesm2022/kato-lee-components-pretty-box.mjs.map +1 -1
  76. package/fesm2022/kato-lee-components-tables.mjs +1 -0
  77. package/fesm2022/kato-lee-components-tables.mjs.map +1 -1
  78. package/fesm2022/kato-lee-components-toast.mjs.map +1 -1
  79. package/fields/{autocomplete-field/autocomplete-field.component.d.ts → autocomplete/component.d.ts} +2 -2
  80. package/fields/autocomplete/index.d.ts +1 -0
  81. package/fields/{date-field/date-field.component.d.ts → date/component.d.ts} +2 -2
  82. package/fields/date/index.d.ts +1 -0
  83. package/fields/{date-range-field/date-range-field.component.d.ts → date-range/component.d.ts} +2 -2
  84. package/fields/date-range/index.d.ts +1 -0
  85. package/fields/error/{error.component.d.ts → component.d.ts} +1 -1
  86. package/fields/error/error-equals.pipe.d.ts +1 -1
  87. package/fields/error/error.msg.pipe.d.ts +1 -1
  88. package/fields/{general-field/general-field.component.d.ts → general/component.d.ts} +2 -2
  89. package/fields/general/index.d.ts +1 -0
  90. package/fields/index.d.ts +13 -13
  91. package/fields/module.d.ts +19 -0
  92. package/fields/{money-field/money-field.component.d.ts → money/component.d.ts} +1 -1
  93. package/fields/money/index.d.ts +1 -0
  94. package/fields/{number-field/number-field.component.d.ts → number/component.d.ts} +1 -1
  95. package/fields/number/index.d.ts +1 -0
  96. package/fields/remote-autocomplete/index.d.ts +1 -0
  97. package/fields/{select-field/select-field.component.d.ts → select/component.d.ts} +2 -2
  98. package/fields/select/index.d.ts +1 -0
  99. package/fields/text-area/{textarea.component.d.ts → component.d.ts} +1 -1
  100. package/modal/{modal.component.d.ts → component.d.ts} +1 -1
  101. package/modal/index.d.ts +3 -3
  102. package/modal/module.d.ts +8 -0
  103. package/package.json +11 -17
  104. package/pretty-box/component.d.ts +24 -0
  105. package/pretty-box/index.d.ts +1 -1
  106. package/tables/index.d.ts +1 -1
  107. package/tables/{tables.module.d.ts → module.d.ts} +1 -0
  108. package/toast/index.d.ts +1 -1
  109. package/assets/fonts/body/Transpass-Bold.ttf +0 -0
  110. package/assets/fonts/body/Transpass-Light.ttf +0 -0
  111. package/assets/fonts/body/Transpass-Medium.ttf +0 -0
  112. package/assets/fonts/body/Transpass-Regular.ttf +0 -0
  113. package/assets/fonts/body/style-font.scss +0 -40
  114. package/assets/fonts/main.scss +0 -18
  115. package/assets/fonts/title/Poppins-Bold.ttf +0 -0
  116. package/assets/fonts/title/Poppins-Light.ttf +0 -0
  117. package/assets/fonts/title/Poppins-Medium.ttf +0 -0
  118. package/assets/fonts/title/Poppins-Regular.ttf +0 -0
  119. package/assets/fonts/title/Poppins-SemiBold.ttf +0 -0
  120. package/assets/fonts/title/style-font.scss +0 -39
  121. package/assets/layouts/_loader.scss +0 -71
  122. package/assets/layouts/origin.scss +0 -776
  123. package/box-form/box-form.module.d.ts +0 -13
  124. package/dialogs/dialogs.module.d.ts +0 -11
  125. package/esm2022/box-form/box-form.component.mjs +0 -99
  126. package/esm2022/box-form/box-form.module.mjs +0 -40
  127. package/esm2022/capsule/capsule.component.mjs +0 -78
  128. package/esm2022/capsule/capsule.module.mjs +0 -16
  129. package/esm2022/cards/cards.module.mjs +0 -17
  130. package/esm2022/cards/simple-card.component.mjs +0 -47
  131. package/esm2022/dialogs/dialogs.module.mjs +0 -22
  132. package/esm2022/fields/autocomplete-field/autocomplete-field.component.mjs +0 -240
  133. package/esm2022/fields/date-field/date-field.component.mjs +0 -148
  134. package/esm2022/fields/date-range-field/date-range-field.component.mjs +0 -70
  135. package/esm2022/fields/error/error.component.mjs +0 -55
  136. package/esm2022/fields/error/error.module.mjs +0 -21
  137. package/esm2022/fields/fields.common.mjs +0 -11
  138. package/esm2022/fields/fields.module.mjs +0 -128
  139. package/esm2022/fields/fields.validators.mjs +0 -11
  140. package/esm2022/fields/general-field/general-field.component.mjs +0 -188
  141. package/esm2022/fields/money-field/money-field.component.mjs +0 -188
  142. package/esm2022/fields/number-field/number-field.component.mjs +0 -165
  143. package/esm2022/fields/remote-autocomplete-field/remote-autocomplete-field.component.mjs +0 -188
  144. package/esm2022/fields/select-field/select-field.component.mjs +0 -135
  145. package/esm2022/fields/text-area/textarea.component.mjs +0 -171
  146. package/esm2022/layouts/origin/breadcrumb/breadcrumb.component.mjs +0 -65
  147. package/esm2022/layouts/origin/footer/footer.component.mjs +0 -11
  148. package/esm2022/layouts/origin/header/header.component.mjs +0 -46
  149. package/esm2022/layouts/origin/index.mjs +0 -12
  150. package/esm2022/layouts/origin/kato-lee-components-layouts-origin.mjs +0 -5
  151. package/esm2022/layouts/origin/layout.component.mjs +0 -210
  152. package/esm2022/layouts/origin/layout.module.mjs +0 -52
  153. package/esm2022/layouts/origin/layout.navigation.mjs +0 -19
  154. package/esm2022/layouts/origin/navigation-interfaces.mjs +0 -2
  155. package/esm2022/layouts/origin/services/index.mjs +0 -4
  156. package/esm2022/layouts/origin/services/route-parts.service.mjs +0 -28
  157. package/esm2022/layouts/origin/services/toggle-sidebar.mjs +0 -48
  158. package/esm2022/layouts/origin/services/validate-access.pipe.mjs +0 -53
  159. package/esm2022/layouts/origin/sidebar/sidebar.component.mjs +0 -69
  160. package/esm2022/layouts/origin/sidebar/sidenav/expansion/accordion.component.mjs +0 -74
  161. package/esm2022/layouts/origin/sidebar/sidenav/expansion/expansion-panel-header.component.mjs +0 -51
  162. package/esm2022/layouts/origin/sidebar/sidenav/expansion/expansion-panel.component.mjs +0 -63
  163. package/esm2022/layouts/origin/sidebar/sidenav/sidenav.component.mjs +0 -130
  164. package/esm2022/modal/modal.component.mjs +0 -63
  165. package/esm2022/modal/modal.module.mjs +0 -21
  166. package/esm2022/modal/modal.service.mjs +0 -33
  167. package/esm2022/pretty-box/pretty-box.component.mjs +0 -94
  168. package/esm2022/tables/tables.module.mjs +0 -22
  169. package/esm2022/toast/toast.service.mjs +0 -42
  170. package/fesm2022/kato-lee-components-layouts-origin.mjs +0 -872
  171. package/fesm2022/kato-lee-components-layouts-origin.mjs.map +0 -1
  172. package/fields/error/error.module.d.ts +0 -11
  173. package/fields/fields.module.d.ts +0 -29
  174. package/layouts/origin/breadcrumb/breadcrumb.component.d.ts +0 -24
  175. package/layouts/origin/footer/footer.component.d.ts +0 -5
  176. package/layouts/origin/header/header.component.d.ts +0 -15
  177. package/layouts/origin/index.d.ts +0 -8
  178. package/layouts/origin/layout.component.d.ts +0 -58
  179. package/layouts/origin/layout.module.d.ts +0 -18
  180. package/layouts/origin/layout.navigation.d.ts +0 -10
  181. package/layouts/origin/navigation-interfaces.d.ts +0 -24
  182. package/layouts/origin/services/index.d.ts +0 -3
  183. package/layouts/origin/services/route-parts.service.d.ts +0 -15
  184. package/layouts/origin/services/toggle-sidebar.d.ts +0 -10
  185. package/layouts/origin/services/validate-access.pipe.d.ts +0 -7
  186. package/layouts/origin/sidebar/sidebar.component.d.ts +0 -27
  187. package/layouts/origin/sidebar/sidenav/expansion/accordion.component.d.ts +0 -10
  188. package/layouts/origin/sidebar/sidenav/expansion/expansion-panel-header.component.d.ts +0 -11
  189. package/layouts/origin/sidebar/sidenav/expansion/expansion-panel.component.d.ts +0 -12
  190. package/layouts/origin/sidebar/sidenav/sidenav.component.d.ts +0 -23
  191. package/modal/modal.module.d.ts +0 -11
  192. package/pretty-box/pretty-box.component.d.ts +0 -24
  193. /package/fields/{fields.common.d.ts → common.d.ts} +0 -0
  194. /package/fields/{remote-autocomplete-field/remote-autocomplete-field.component.d.ts → remote-autocomplete/component.d.ts} +0 -0
  195. /package/fields/{fields.validators.d.ts → validators.d.ts} +0 -0
  196. /package/modal/{modal.service.d.ts → service.d.ts} +0 -0
  197. /package/toast/{toast.service.d.ts → service.d.ts} +0 -0
@@ -1,55 +0,0 @@
1
- import { Component, ViewChild, Input } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- import * as i1 from "./error-equals.pipe";
4
- import * as i2 from "./error.msg.pipe";
5
- export class TakErrorComponent {
6
- constructor() {
7
- this.isDateField = false;
8
- this.isNumberField = false;
9
- this.marginTop = -20;
10
- this.hasPatternError = false;
11
- }
12
- get required() {
13
- return this.control?.errors?.['required'];
14
- }
15
- get pattern() {
16
- return this.control?.errors?.['pattern'];
17
- }
18
- get max() {
19
- return this.control?.errors?.['max'];
20
- }
21
- get min() {
22
- return this.control?.errors?.['min'];
23
- }
24
- get maxlength() {
25
- return this.control?.errors?.['maxlength'];
26
- }
27
- get minlength() {
28
- return this.control?.errors?.['minlength'];
29
- }
30
- get email() {
31
- return this.control?.errors?.['email'];
32
- }
33
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: TakErrorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
34
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.3", type: TakErrorComponent, selector: "tak-error", inputs: { control: "control", start: "start", end: "end", isDateField: "isDateField", isNumberField: "isNumberField", marginTop: "marginTop" }, viewQueries: [{ propertyName: "error", first: true, predicate: ["error"], descendants: true }], ngImport: i0, template: "<div class=\"tak-custom-error tak-fade-in--800ms\" #error [style.marginTop.px]=\"marginTop\">\r\n @if (control !== undefined && isDateField && control.valid) {\r\n <div>\r\n {{ 'badDateMsg' | errorMsg }}\r\n </div>\r\n }\r\n @if (control !== undefined && control.errors | errorEquals: required) {\r\n <div>\r\n {{ 'requiredMsg' | errorMsg }}\r\n </div>\r\n }\r\n @if (control !== undefined && control.errors | errorEquals: pattern) {\r\n <div>\r\n {{\r\n isNumberField\r\n ? 'El campo solo debe contener caracteres numericos'\r\n : ('patternMsg' | errorMsg)\r\n }}\r\n </div>\r\n }\r\n @if (control !== undefined && control.errors | errorEquals: max) {\r\n <div>\r\n {{ 'maxMsg' | errorMsg: max.max }}\r\n </div>\r\n }\r\n @if (control !== undefined && control.errors | errorEquals: min) {\r\n <div>\r\n {{ 'minMsg' | errorMsg: min.min }}\r\n </div>\r\n }\r\n @if (control !== undefined && control.errors | errorEquals: maxlength) {\r\n <div>\r\n {{ 'maxLengthMsg' | errorMsg: maxlength.requiredLength }}\r\n </div>\r\n }\r\n @if (control !== undefined && control.errors | errorEquals: minlength) {\r\n <div>\r\n {{ 'minLengthMsg' | errorMsg: minlength.requiredLength }}\r\n </div>\r\n }\r\n @if (control !== undefined && control.errors | errorEquals: email) {\r\n <div>\r\n {{ 'EmailMsg' | errorMsg }}\r\n </div>\r\n }\r\n @if (control === undefined) {\r\n <div>\r\n {{\r\n start.hasError('required') && end.hasError('required')\r\n ? ('requiredMsg' | errorMsg)\r\n : ('DateRangeMsg' | errorMsg)\r\n }}\r\n </div>\r\n }\r\n</div>\r\n", dependencies: [{ kind: "pipe", type: i1.TakErrorEqualsPipe, name: "errorEquals" }, { kind: "pipe", type: i2.TakErrorMsgPipe, name: "errorMsg" }] }); }
35
- }
36
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: TakErrorComponent, decorators: [{
37
- type: Component,
38
- args: [{ selector: 'tak-error', template: "<div class=\"tak-custom-error tak-fade-in--800ms\" #error [style.marginTop.px]=\"marginTop\">\r\n @if (control !== undefined && isDateField && control.valid) {\r\n <div>\r\n {{ 'badDateMsg' | errorMsg }}\r\n </div>\r\n }\r\n @if (control !== undefined && control.errors | errorEquals: required) {\r\n <div>\r\n {{ 'requiredMsg' | errorMsg }}\r\n </div>\r\n }\r\n @if (control !== undefined && control.errors | errorEquals: pattern) {\r\n <div>\r\n {{\r\n isNumberField\r\n ? 'El campo solo debe contener caracteres numericos'\r\n : ('patternMsg' | errorMsg)\r\n }}\r\n </div>\r\n }\r\n @if (control !== undefined && control.errors | errorEquals: max) {\r\n <div>\r\n {{ 'maxMsg' | errorMsg: max.max }}\r\n </div>\r\n }\r\n @if (control !== undefined && control.errors | errorEquals: min) {\r\n <div>\r\n {{ 'minMsg' | errorMsg: min.min }}\r\n </div>\r\n }\r\n @if (control !== undefined && control.errors | errorEquals: maxlength) {\r\n <div>\r\n {{ 'maxLengthMsg' | errorMsg: maxlength.requiredLength }}\r\n </div>\r\n }\r\n @if (control !== undefined && control.errors | errorEquals: minlength) {\r\n <div>\r\n {{ 'minLengthMsg' | errorMsg: minlength.requiredLength }}\r\n </div>\r\n }\r\n @if (control !== undefined && control.errors | errorEquals: email) {\r\n <div>\r\n {{ 'EmailMsg' | errorMsg }}\r\n </div>\r\n }\r\n @if (control === undefined) {\r\n <div>\r\n {{\r\n start.hasError('required') && end.hasError('required')\r\n ? ('requiredMsg' | errorMsg)\r\n : ('DateRangeMsg' | errorMsg)\r\n }}\r\n </div>\r\n }\r\n</div>\r\n" }]
39
- }], propDecorators: { error: [{
40
- type: ViewChild,
41
- args: ['error']
42
- }], control: [{
43
- type: Input
44
- }], start: [{
45
- type: Input
46
- }], end: [{
47
- type: Input
48
- }], isDateField: [{
49
- type: Input
50
- }], isNumberField: [{
51
- type: Input
52
- }], marginTop: [{
53
- type: Input
54
- }] } });
55
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvbXBvbmVudHMvZmllbGRzL2Vycm9yL2Vycm9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb21wb25lbnRzL2ZpZWxkcy9lcnJvci9lcnJvci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWMsU0FBUyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7QUFPeEUsTUFBTSxPQUFPLGlCQUFpQjtJQUo5QjtRQWFXLGdCQUFXLEdBQVksS0FBSyxDQUFDO1FBRTdCLGtCQUFhLEdBQVksS0FBSyxDQUFDO1FBRS9CLGNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUVsQixvQkFBZSxHQUFZLEtBQUssQ0FBQztLQTZCekM7SUEzQkMsSUFBSSxRQUFRO1FBQ1YsT0FBTyxJQUFJLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFRCxJQUFJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVELElBQUksR0FBRztRQUNMLE9BQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQsSUFBSSxHQUFHO1FBQ0wsT0FBTyxJQUFJLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxJQUFJLFNBQVM7UUFDWCxPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVELElBQUksU0FBUztRQUNYLE9BQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQsSUFBSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3pDLENBQUM7OEdBM0NVLGlCQUFpQjtrR0FBakIsaUJBQWlCLGlTQ1A5QixpckRBdURBOzsyRkRoRGEsaUJBQWlCO2tCQUo3QixTQUFTOytCQUNFLFdBQVc7OEJBSUQsS0FBSztzQkFBeEIsU0FBUzt1QkFBQyxPQUFPO2dCQUVULE9BQU87c0JBQWYsS0FBSztnQkFFRyxLQUFLO3NCQUFiLEtBQUs7Z0JBRUcsR0FBRztzQkFBWCxLQUFLO2dCQUVHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBRUcsYUFBYTtzQkFBckIsS0FBSztnQkFFRyxTQUFTO3NCQUFqQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWxlbWVudFJlZiwgQ29tcG9uZW50LCBWaWV3Q2hpbGQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Db250cm9sLCBWYWxpZGF0aW9uRXJyb3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd0YWstZXJyb3InLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9lcnJvci5jb21wb25lbnQuaHRtbCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUYWtFcnJvckNvbXBvbmVudCB7XHJcbiAgQFZpZXdDaGlsZCgnZXJyb3InKSBlcnJvcjogRWxlbWVudFJlZiB8IHVuZGVmaW5lZDtcclxuXHJcbiAgQElucHV0KCkgY29udHJvbCE6IEZvcm1Db250cm9sO1xyXG5cclxuICBASW5wdXQoKSBzdGFydCE6IEZvcm1Db250cm9sO1xyXG5cclxuICBASW5wdXQoKSBlbmQhOiBGb3JtQ29udHJvbDtcclxuXHJcbiAgQElucHV0KCkgaXNEYXRlRmllbGQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KCkgaXNOdW1iZXJGaWVsZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKSBtYXJnaW5Ub3AgPSAtMjA7XHJcblxyXG4gIHB1YmxpYyBoYXNQYXR0ZXJuRXJyb3I6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgZ2V0IHJlcXVpcmVkKCk6IFZhbGlkYXRpb25FcnJvcnMge1xyXG4gICAgcmV0dXJuIHRoaXMuY29udHJvbD8uZXJyb3JzPy5bJ3JlcXVpcmVkJ107XHJcbiAgfVxyXG5cclxuICBnZXQgcGF0dGVybigpOiBWYWxpZGF0aW9uRXJyb3JzIHtcclxuICAgIHJldHVybiB0aGlzLmNvbnRyb2w/LmVycm9ycz8uWydwYXR0ZXJuJ107XHJcbiAgfVxyXG5cclxuICBnZXQgbWF4KCkge1xyXG4gICAgcmV0dXJuIHRoaXMuY29udHJvbD8uZXJyb3JzPy5bJ21heCddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IG1pbigpIHtcclxuICAgIHJldHVybiB0aGlzLmNvbnRyb2w/LmVycm9ycz8uWydtaW4nXTtcclxuICB9XHJcblxyXG4gIGdldCBtYXhsZW5ndGgoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5jb250cm9sPy5lcnJvcnM/LlsnbWF4bGVuZ3RoJ107XHJcbiAgfVxyXG5cclxuICBnZXQgbWlubGVuZ3RoKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuY29udHJvbD8uZXJyb3JzPy5bJ21pbmxlbmd0aCddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGVtYWlsKCk6IFZhbGlkYXRpb25FcnJvcnMge1xyXG4gICAgcmV0dXJuIHRoaXMuY29udHJvbD8uZXJyb3JzPy5bJ2VtYWlsJ107XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJ0YWstY3VzdG9tLWVycm9yIHRhay1mYWRlLWluLS04MDBtc1wiICNlcnJvciBbc3R5bGUubWFyZ2luVG9wLnB4XT1cIm1hcmdpblRvcFwiPlxyXG4gIEBpZiAoY29udHJvbCAhPT0gdW5kZWZpbmVkICYmIGlzRGF0ZUZpZWxkICYmIGNvbnRyb2wudmFsaWQpIHtcclxuICAgIDxkaXY+XHJcbiAgICAgIHt7ICdiYWREYXRlTXNnJyB8IGVycm9yTXNnIH19XHJcbiAgICA8L2Rpdj5cclxuICB9XHJcbiAgQGlmIChjb250cm9sICE9PSB1bmRlZmluZWQgJiYgY29udHJvbC5lcnJvcnMgfCBlcnJvckVxdWFsczogcmVxdWlyZWQpIHtcclxuICAgIDxkaXY+XHJcbiAgICAgIHt7ICdyZXF1aXJlZE1zZycgfCBlcnJvck1zZyB9fVxyXG4gICAgPC9kaXY+XHJcbiAgfVxyXG4gIEBpZiAoY29udHJvbCAhPT0gdW5kZWZpbmVkICYmIGNvbnRyb2wuZXJyb3JzIHwgZXJyb3JFcXVhbHM6IHBhdHRlcm4pIHtcclxuICAgIDxkaXY+XHJcbiAgICAgIHt7XHJcbiAgICAgICAgaXNOdW1iZXJGaWVsZFxyXG4gICAgICAgICAgPyAnRWwgY2FtcG8gc29sbyBkZWJlIGNvbnRlbmVyIGNhcmFjdGVyZXMgbnVtZXJpY29zJ1xyXG4gICAgICAgICAgOiAoJ3BhdHRlcm5Nc2cnIHwgZXJyb3JNc2cpXHJcbiAgICAgIH19XHJcbiAgICA8L2Rpdj5cclxuICB9XHJcbiAgQGlmIChjb250cm9sICE9PSB1bmRlZmluZWQgJiYgY29udHJvbC5lcnJvcnMgfCBlcnJvckVxdWFsczogbWF4KSB7XHJcbiAgICA8ZGl2PlxyXG4gICAgICB7eyAnbWF4TXNnJyB8IGVycm9yTXNnOiBtYXgubWF4IH19XHJcbiAgICA8L2Rpdj5cclxuICB9XHJcbiAgQGlmIChjb250cm9sICE9PSB1bmRlZmluZWQgJiYgY29udHJvbC5lcnJvcnMgfCBlcnJvckVxdWFsczogbWluKSB7XHJcbiAgICA8ZGl2PlxyXG4gICAgICB7eyAnbWluTXNnJyB8IGVycm9yTXNnOiBtaW4ubWluIH19XHJcbiAgICA8L2Rpdj5cclxuICB9XHJcbiAgQGlmIChjb250cm9sICE9PSB1bmRlZmluZWQgJiYgY29udHJvbC5lcnJvcnMgfCBlcnJvckVxdWFsczogbWF4bGVuZ3RoKSB7XHJcbiAgICA8ZGl2PlxyXG4gICAgICB7eyAnbWF4TGVuZ3RoTXNnJyB8IGVycm9yTXNnOiBtYXhsZW5ndGgucmVxdWlyZWRMZW5ndGggfX1cclxuICAgIDwvZGl2PlxyXG4gIH1cclxuICBAaWYgKGNvbnRyb2wgIT09IHVuZGVmaW5lZCAmJiBjb250cm9sLmVycm9ycyB8IGVycm9yRXF1YWxzOiBtaW5sZW5ndGgpIHtcclxuICAgIDxkaXY+XHJcbiAgICAgIHt7ICdtaW5MZW5ndGhNc2cnIHwgZXJyb3JNc2c6IG1pbmxlbmd0aC5yZXF1aXJlZExlbmd0aCB9fVxyXG4gICAgPC9kaXY+XHJcbiAgfVxyXG4gIEBpZiAoY29udHJvbCAhPT0gdW5kZWZpbmVkICYmIGNvbnRyb2wuZXJyb3JzIHwgZXJyb3JFcXVhbHM6IGVtYWlsKSB7XHJcbiAgICA8ZGl2PlxyXG4gICAgICB7eyAnRW1haWxNc2cnIHwgZXJyb3JNc2cgfX1cclxuICAgIDwvZGl2PlxyXG4gIH1cclxuICBAaWYgKGNvbnRyb2wgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgPGRpdj5cclxuICAgICAge3tcclxuICAgICAgICBzdGFydC5oYXNFcnJvcigncmVxdWlyZWQnKSAmJiBlbmQuaGFzRXJyb3IoJ3JlcXVpcmVkJylcclxuICAgICAgICAgID8gKCdyZXF1aXJlZE1zZycgfCBlcnJvck1zZylcclxuICAgICAgICAgIDogKCdEYXRlUmFuZ2VNc2cnIHwgZXJyb3JNc2cpXHJcbiAgICAgIH19XHJcbiAgICA8L2Rpdj5cclxuICB9XHJcbjwvZGl2PlxyXG4iXX0=
@@ -1,21 +0,0 @@
1
- import { NgModule } from '@angular/core';
2
- import { CommonModule } from '@angular/common';
3
- import { ReactiveFormsModule, FormsModule } from '@angular/forms';
4
- import { TakErrorEqualsPipe } from './error-equals.pipe';
5
- import { TakErrorMsgPipe } from './error.msg.pipe';
6
- import { TakErrorComponent } from './error.component';
7
- import * as i0 from "@angular/core";
8
- export class TakErrorModule {
9
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: TakErrorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
10
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.3", ngImport: i0, type: TakErrorModule, declarations: [TakErrorEqualsPipe, TakErrorMsgPipe, TakErrorComponent], imports: [FormsModule, CommonModule, ReactiveFormsModule], exports: [TakErrorComponent] }); }
11
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: TakErrorModule, imports: [FormsModule, CommonModule, ReactiveFormsModule] }); }
12
- }
13
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: TakErrorModule, decorators: [{
14
- type: NgModule,
15
- args: [{
16
- declarations: [TakErrorEqualsPipe, TakErrorMsgPipe, TakErrorComponent],
17
- imports: [FormsModule, CommonModule, ReactiveFormsModule],
18
- exports: [TakErrorComponent],
19
- }]
20
- }] });
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3IubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvbXBvbmVudHMvZmllbGRzL2Vycm9yL2Vycm9yLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDekQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDOztBQU90RCxNQUFNLE9BQU8sY0FBYzs4R0FBZCxjQUFjOytHQUFkLGNBQWMsaUJBSlYsa0JBQWtCLEVBQUUsZUFBZSxFQUFFLGlCQUFpQixhQUMzRCxXQUFXLEVBQUUsWUFBWSxFQUFFLG1CQUFtQixhQUM5QyxpQkFBaUI7K0dBRWhCLGNBQWMsWUFIZixXQUFXLEVBQUUsWUFBWSxFQUFFLG1CQUFtQjs7MkZBRzdDLGNBQWM7a0JBTDFCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMsa0JBQWtCLEVBQUUsZUFBZSxFQUFFLGlCQUFpQixDQUFDO29CQUN0RSxPQUFPLEVBQUUsQ0FBQyxXQUFXLEVBQUUsWUFBWSxFQUFFLG1CQUFtQixDQUFDO29CQUN6RCxPQUFPLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQztpQkFDN0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgVGFrRXJyb3JFcXVhbHNQaXBlIH0gZnJvbSAnLi9lcnJvci1lcXVhbHMucGlwZSc7XHJcbmltcG9ydCB7IFRha0Vycm9yTXNnUGlwZSB9IGZyb20gJy4vZXJyb3IubXNnLnBpcGUnO1xyXG5pbXBvcnQgeyBUYWtFcnJvckNvbXBvbmVudCB9IGZyb20gJy4vZXJyb3IuY29tcG9uZW50JztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbVGFrRXJyb3JFcXVhbHNQaXBlLCBUYWtFcnJvck1zZ1BpcGUsIFRha0Vycm9yQ29tcG9uZW50XSxcclxuICBpbXBvcnRzOiBbRm9ybXNNb2R1bGUsIENvbW1vbk1vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZV0sXHJcbiAgZXhwb3J0czogW1Rha0Vycm9yQ29tcG9uZW50XSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFRha0Vycm9yTW9kdWxlIHt9XHJcbiJdfQ==
@@ -1,11 +0,0 @@
1
- import { ESCAPE } from '@kato-lee/cdk/keycodes';
2
- export const TAK_DEFAULT_APPEARANCE_FORM = 'standard';
3
- export const TAK_PRESS_ESC_KEY = new KeyboardEvent('keydown', {
4
- bubbles: true,
5
- cancelable: true,
6
- keyCode: ESCAPE,
7
- });
8
- export const TAK_PTRN_EMAIL = '^[^@]+@[^@]+.[a-zA-Z]{2,}$';
9
- export const TAK_PTRN_NUMRC = /^[0-9.]+$/;
10
- export const TAK_PTRN_NONSP = /^[^\s]+$/;
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGRzLmNvbW1vbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb21wb25lbnRzL2ZpZWxkcy9maWVsZHMuY29tbW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUdoRCxNQUFNLENBQUMsTUFBTSwyQkFBMkIsR0FBMkIsVUFBVSxDQUFDO0FBSzlFLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLElBQUksYUFBYSxDQUFDLFNBQVMsRUFBRTtJQUM1RCxPQUFPLEVBQUUsSUFBSTtJQUNiLFVBQVUsRUFBRSxJQUFJO0lBQ2hCLE9BQU8sRUFBRSxNQUFNO0NBQ2hCLENBQUMsQ0FBQztBQUVILE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyw0QkFBNEIsQ0FBQztBQUMzRCxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsV0FBVyxDQUFDO0FBQzFDLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxVQUFVLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFU0NBUEUgfSBmcm9tICdAa2F0by1sZWUvY2RrL2tleWNvZGVzJztcclxuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkQXBwZWFyYW5jZSB9IGZyb20gJ0BrYXRvLWxlZS9tYXRlcmlhbC9mb3JtLWZpZWxkJztcclxuXHJcbmV4cG9ydCBjb25zdCBUQUtfREVGQVVMVF9BUFBFQVJBTkNFX0ZPUk06IE1hdEZvcm1GaWVsZEFwcGVhcmFuY2UgPSAnc3RhbmRhcmQnO1xyXG5cclxuZXhwb3J0IHR5cGUgVGFrR2VuZXJhbEZpZWxkVHlwZSA9ICd0ZXh0JyB8ICdwYXNzd29yZCcgfCAnZmlsdGVyJztcclxuZXhwb3J0IHR5cGUgVGFrQXV0b2NvbXBsZXRlRmllbGRUeXBlID0gJ29mZicgfCAnb24nO1xyXG5cclxuZXhwb3J0IGNvbnN0IFRBS19QUkVTU19FU0NfS0VZID0gbmV3IEtleWJvYXJkRXZlbnQoJ2tleWRvd24nLCB7XHJcbiAgYnViYmxlczogdHJ1ZSxcclxuICBjYW5jZWxhYmxlOiB0cnVlLFxyXG4gIGtleUNvZGU6IEVTQ0FQRSxcclxufSk7XHJcblxyXG5leHBvcnQgY29uc3QgVEFLX1BUUk5fRU1BSUwgPSAnXlteQF0rQFteQF0rLlthLXpBLVpdezIsfSQnO1xyXG5leHBvcnQgY29uc3QgVEFLX1BUUk5fTlVNUkMgPSAvXlswLTkuXSskLztcclxuZXhwb3J0IGNvbnN0IFRBS19QVFJOX05PTlNQID0gL15bXlxcc10rJC87XHJcbiJdfQ==
@@ -1,128 +0,0 @@
1
- import { NgModule } from '@angular/core';
2
- import { CommonModule } from '@angular/common';
3
- import { ReactiveFormsModule, FormsModule } from '@angular/forms';
4
- import { MatFormFieldModule } from '@kato-lee/material/form-field';
5
- import { MatSelectModule } from '@kato-lee/material/select';
6
- import { MatButtonModule } from '@kato-lee/material/button';
7
- import { MAT_DATE_LOCALE, MatNativeDateModule, MatOptionModule } from '@kato-lee/material/core';
8
- import { MatInputModule } from '@kato-lee/material/input';
9
- import { MatIconModule } from '@kato-lee/material/icon';
10
- import { MatDatepickerModule } from '@kato-lee/material/datepicker';
11
- import { MatTooltipModule } from '@kato-lee/material/tooltip';
12
- import { TakSelectFieldComponent } from './select-field/select-field.component';
13
- import { TakDateFieldComponent } from './date-field/date-field.component';
14
- import { TakAutocompleteFieldComponent } from './autocomplete-field/autocomplete-field.component';
15
- import { MatAutocompleteModule } from '@kato-lee/material/autocomplete';
16
- import { TakErrorModule } from './error/error.module';
17
- import { TakDateRangeFieldComponent } from './date-range-field/date-range-field.component';
18
- import { TakMoneyFieldComponent } from './money-field/money-field.component';
19
- import { TakGeneralFieldComponent } from './general-field/general-field.component';
20
- import { MatProgressSpinnerModule } from '@kato-lee/material/progress-spinner';
21
- import { TakNumberFieldComponent } from './number-field/number-field.component';
22
- import { TakTextareaComponent } from './text-area/textarea.component';
23
- import { MatMenuModule } from '@kato-lee/material/menu';
24
- import { TakRemoteAutocompleteFieldComponent } from './remote-autocomplete-field/remote-autocomplete-field.component';
25
- import * as i0 from "@angular/core";
26
- const components = [
27
- TakSelectFieldComponent,
28
- TakDateFieldComponent,
29
- TakAutocompleteFieldComponent,
30
- TakDateRangeFieldComponent,
31
- TakGeneralFieldComponent,
32
- TakMoneyFieldComponent,
33
- TakTextareaComponent,
34
- TakNumberFieldComponent,
35
- ];
36
- export class TakFieldsModule {
37
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: TakFieldsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
38
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.3", ngImport: i0, type: TakFieldsModule, declarations: [TakSelectFieldComponent,
39
- TakDateFieldComponent,
40
- TakAutocompleteFieldComponent,
41
- TakDateRangeFieldComponent,
42
- TakGeneralFieldComponent,
43
- TakMoneyFieldComponent,
44
- TakTextareaComponent,
45
- TakNumberFieldComponent], imports: [FormsModule,
46
- CommonModule,
47
- MatNativeDateModule,
48
- ReactiveFormsModule,
49
- MatProgressSpinnerModule,
50
- MatFormFieldModule,
51
- MatButtonModule,
52
- MatDatepickerModule,
53
- MatAutocompleteModule,
54
- TakErrorModule,
55
- MatIconModule,
56
- MatInputModule,
57
- MatOptionModule,
58
- MatSelectModule,
59
- MatTooltipModule,
60
- MatMenuModule,
61
- TakRemoteAutocompleteFieldComponent], exports: [ReactiveFormsModule,
62
- MatAutocompleteModule,
63
- FormsModule,
64
- MatNativeDateModule,
65
- TakRemoteAutocompleteFieldComponent, TakSelectFieldComponent,
66
- TakDateFieldComponent,
67
- TakAutocompleteFieldComponent,
68
- TakDateRangeFieldComponent,
69
- TakGeneralFieldComponent,
70
- TakMoneyFieldComponent,
71
- TakTextareaComponent,
72
- TakNumberFieldComponent] }); }
73
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: TakFieldsModule, providers: [{ provide: MAT_DATE_LOCALE, useValue: 'es-ES' }], imports: [FormsModule,
74
- CommonModule,
75
- MatNativeDateModule,
76
- ReactiveFormsModule,
77
- MatProgressSpinnerModule,
78
- MatFormFieldModule,
79
- MatButtonModule,
80
- MatDatepickerModule,
81
- MatAutocompleteModule,
82
- TakErrorModule,
83
- MatIconModule,
84
- MatInputModule,
85
- MatOptionModule,
86
- MatSelectModule,
87
- MatTooltipModule,
88
- MatMenuModule,
89
- TakRemoteAutocompleteFieldComponent, ReactiveFormsModule,
90
- MatAutocompleteModule,
91
- FormsModule,
92
- MatNativeDateModule] }); }
93
- }
94
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: TakFieldsModule, decorators: [{
95
- type: NgModule,
96
- args: [{
97
- declarations: components,
98
- imports: [
99
- FormsModule,
100
- CommonModule,
101
- MatNativeDateModule,
102
- ReactiveFormsModule,
103
- MatProgressSpinnerModule,
104
- MatFormFieldModule,
105
- MatButtonModule,
106
- MatDatepickerModule,
107
- MatAutocompleteModule,
108
- TakErrorModule,
109
- MatIconModule,
110
- MatInputModule,
111
- MatOptionModule,
112
- MatSelectModule,
113
- MatTooltipModule,
114
- MatMenuModule,
115
- TakRemoteAutocompleteFieldComponent,
116
- ],
117
- exports: [
118
- ReactiveFormsModule,
119
- MatAutocompleteModule,
120
- FormsModule,
121
- MatNativeDateModule,
122
- TakRemoteAutocompleteFieldComponent,
123
- ...components,
124
- ],
125
- providers: [{ provide: MAT_DATE_LOCALE, useValue: 'es-ES' }],
126
- }]
127
- }] });
128
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGRzLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb21wb25lbnRzL2ZpZWxkcy9maWVsZHMubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVsRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNuRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzVELE9BQU8sRUFBRSxlQUFlLEVBQUUsbUJBQW1CLEVBQUUsZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDaEcsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzFELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUU5RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUNoRixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUUxRSxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUNsRyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN4RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdEQsT0FBTyxFQUFFLDBC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IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IFJlYWN0aXZlRm9ybXNNb2R1bGUsIEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGthdG8tbGVlL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xyXG5pbXBvcnQgeyBNYXRTZWxlY3RNb2R1bGUgfSBmcm9tICdAa2F0by1sZWUvbWF0ZXJpYWwvc2VsZWN0JztcclxuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGthdG8tbGVlL21hdGVyaWFsL2J1dHRvbic7XHJcbmltcG9ydCB7IE1BVF9EQVRFX0xPQ0FMRSwgTWF0TmF0aXZlRGF0ZU1vZHVsZSwgTWF0T3B0aW9uTW9kdWxlIH0gZnJvbSAnQGthdG8tbGVlL21hdGVyaWFsL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0BrYXRvLWxlZS9tYXRlcmlhbC9pbnB1dCc7XHJcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAa2F0by1sZWUvbWF0ZXJpYWwvaWNvbic7XHJcbmltcG9ydCB7IE1hdERhdGVwaWNrZXJNb2R1bGUgfSBmcm9tICdAa2F0by1sZWUvbWF0ZXJpYWwvZGF0ZXBpY2tlcic7XHJcbmltcG9ydCB7IE1hdFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAa2F0by1sZWUvbWF0ZXJpYWwvdG9vbHRpcCc7XHJcblxyXG5pbXBvcnQgeyBUYWtTZWxlY3RGaWVsZENvbXBvbmVudCB9IGZyb20gJy4vc2VsZWN0LWZpZWxkL3NlbGVjdC1maWVsZC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUYWtEYXRlRmllbGRDb21wb25lbnQgfSBmcm9tICcuL2RhdGUtZmllbGQvZGF0ZS1maWVsZC5jb21wb25lbnQnO1xyXG5cclxuaW1wb3J0IHsgVGFrQXV0b2NvbXBsZXRlRmllbGRDb21wb25lbnQgfSBmcm9tICcuL2F1dG9jb21wbGV0ZS1maWVsZC9hdXRvY29tcGxldGUtZmllbGQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTWF0QXV0b2NvbXBsZXRlTW9kdWxlIH0gZnJvbSAnQGthdG8tbGVlL21hdGVyaWFsL2F1dG9jb21wbGV0ZSc7XHJcbmltcG9ydCB7IFRha0Vycm9yTW9kdWxlIH0gZnJvbSAnLi9lcnJvci9lcnJvci5tb2R1bGUnO1xyXG5pbXBvcnQgeyBUYWtEYXRlUmFuZ2VGaWVsZENvbXBvbmVudCB9IGZyb20gJy4vZGF0ZS1yYW5nZS1maWVsZC9kYXRlLXJhbmdlLWZpZWxkLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRha01vbmV5RmllbGRDb21wb25lbnQgfSBmcm9tICcuL21vbmV5LWZpZWxkL21vbmV5LWZpZWxkLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRha0dlbmVyYWxGaWVsZENvbXBvbmVudCB9IGZyb20gJy4vZ2VuZXJhbC1maWVsZC9nZW5lcmFsLWZpZWxkLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1hdFByb2dyZXNzU3Bpbm5lck1vZHVsZSB9IGZyb20gJ0BrYXRvLWxlZS9tYXRlcmlhbC9wcm9ncmVzcy1zcGlubmVyJztcclxuaW1wb3J0IHsgVGFrTnVtYmVyRmllbGRDb21wb25lbnQgfSBmcm9tICcuL251bWJlci1maWVsZC9udW1iZXItZmllbGQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVGFrVGV4dGFyZWFDb21wb25lbnQgfSBmcm9tICcuL3RleHQtYXJlYS90ZXh0YXJlYS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNYXRNZW51TW9kdWxlIH0gZnJvbSAnQGthdG8tbGVlL21hdGVyaWFsL21lbnUnO1xyXG5pbXBvcnQgeyBUYWtSZW1vdGVBdXRvY29tcGxldGVGaWVsZENvbXBvbmVudCB9IGZyb20gJy4vcmVtb3RlLWF1dG9jb21wbGV0ZS1maWVsZC9yZW1vdGUtYXV0b2NvbXBsZXRlLWZpZWxkLmNvbXBvbmVudCc7XHJcblxyXG5jb25zdCBjb21wb25lbnRzID0gW1xyXG4gIFRha1NlbGVjdEZpZWxkQ29tcG9uZW50LFxyXG4gIFRha0RhdGVGaWVsZENvbXBvbmVudCxcclxuICBUYWtBdXRvY29tcGxldGVGaWVsZENvbXBvbmVudCxcclxuICBUYWtEYXRlUmFuZ2VGaWVsZENvbXBvbmVudCxcclxuICBUYWtHZW5lcmFsRmllbGRDb21wb25lbnQsXHJcbiAgVGFrTW9uZXlGaWVsZENvbXBvbmVudCxcclxuICBUYWtUZXh0YXJlYUNvbXBvbmVudCxcclxuICBUYWtOdW1iZXJGaWVsZENvbXBvbmVudCxcclxuXTtcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBjb21wb25lbnRzLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgTWF0TmF0aXZlRGF0ZU1vZHVsZSxcclxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgICBNYXRQcm9ncmVzc1NwaW5uZXJNb2R1bGUsXHJcbiAgICBNYXRGb3JtRmllbGRNb2R1bGUsXHJcbiAgICBNYXRCdXR0b25Nb2R1bGUsXHJcbiAgICBNYXREYXRlcGlja2VyTW9kdWxlLFxyXG4gICAgTWF0QXV0b2NvbXBsZXRlTW9kdWxlLFxyXG4gICAgVGFrRXJyb3JNb2R1bGUsXHJcbiAgICBNYXRJY29uTW9kdWxlLFxyXG4gICAgTWF0SW5wdXRNb2R1bGUsXHJcbiAgICBNYXRPcHRpb25Nb2R1bGUsXHJcbiAgICBNYXRTZWxlY3RNb2R1bGUsXHJcbiAgICBNYXRUb29sdGlwTW9kdWxlLFxyXG4gICAgTWF0TWVudU1vZHVsZSxcclxuICAgIFRha1JlbW90ZUF1dG9jb21wbGV0ZUZpZWxkQ29tcG9uZW50LFxyXG4gIF0sXHJcbiAgZXhwb3J0czogW1xyXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcclxuICAgIE1hdEF1dG9jb21wbGV0ZU1vZHVsZSxcclxuICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgTWF0TmF0aXZlRGF0ZU1vZHVsZSxcclxuICAgIFRha1JlbW90ZUF1dG9jb21wbGV0ZUZpZWxkQ29tcG9uZW50LFxyXG4gICAgLi4uY29tcG9uZW50cyxcclxuICBdLFxyXG4gIHByb3ZpZGVyczogW3sgcHJvdmlkZTogTUFUX0RBVEVfTE9DQUxFLCB1c2VWYWx1ZTogJ2VzLUVTJyB9XSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFRha0ZpZWxkc01vZHVsZSB7fVxyXG4iXX0=
@@ -1,11 +0,0 @@
1
- import { Validators } from '@angular/forms';
2
- import { TAK_PTRN_EMAIL, TAK_PTRN_NONSP, TAK_PTRN_NUMRC } from './fields.common';
3
- export const required = Validators.required;
4
- export const max = (max) => Validators.max(max);
5
- export const min = (min) => Validators.min(min);
6
- export const maxLength = (maxLength) => Validators.maxLength(maxLength);
7
- export const minLength = (minLength) => Validators.minLength(minLength);
8
- export const withOutSpaces = Validators.pattern(TAK_PTRN_NONSP);
9
- export const onlyNumber = Validators.pattern(TAK_PTRN_NUMRC);
10
- export const email = Validators.pattern(TAK_PTRN_EMAIL);
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGRzLnZhbGlkYXRvcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJyYXJpZXMvY29tcG9uZW50cy9maWVsZHMvZmllbGRzLnZhbGlkYXRvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxjQUFjLEVBQUUsY0FBYyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRWpGLE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRyxVQUFVLENBQUMsUUFBUSxDQUFDO0FBRTVDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDLEdBQVcsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUN4RCxNQUFNLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQyxHQUFXLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7QUFFeEQsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLENBQUMsU0FBaUIsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUNoRixNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsQ0FBQyxTQUFpQixFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBRWhGLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0FBQ2hFLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0FBQzdELE1BQU0sQ0FBQyxNQUFNLEtBQUssR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgVEFLX1BUUk5fRU1BSUwsIFRBS19QVFJOX05PTlNQLCBUQUtfUFRSTl9OVU1SQyB9IGZyb20gJy4vZmllbGRzLmNvbW1vbic7XHJcblxyXG5leHBvcnQgY29uc3QgcmVxdWlyZWQgPSBWYWxpZGF0b3JzLnJlcXVpcmVkO1xyXG5cclxuZXhwb3J0IGNvbnN0IG1heCA9IChtYXg6IG51bWJlcikgPT4gVmFsaWRhdG9ycy5tYXgobWF4KTtcclxuZXhwb3J0IGNvbnN0IG1pbiA9IChtaW46IG51bWJlcikgPT4gVmFsaWRhdG9ycy5taW4obWluKTtcclxuXHJcbmV4cG9ydCBjb25zdCBtYXhMZW5ndGggPSAobWF4TGVuZ3RoOiBudW1iZXIpID0+IFZhbGlkYXRvcnMubWF4TGVuZ3RoKG1heExlbmd0aCk7XHJcbmV4cG9ydCBjb25zdCBtaW5MZW5ndGggPSAobWluTGVuZ3RoOiBudW1iZXIpID0+IFZhbGlkYXRvcnMubWluTGVuZ3RoKG1pbkxlbmd0aCk7XHJcblxyXG5leHBvcnQgY29uc3Qgd2l0aE91dFNwYWNlcyA9IFZhbGlkYXRvcnMucGF0dGVybihUQUtfUFRSTl9OT05TUCk7XHJcbmV4cG9ydCBjb25zdCBvbmx5TnVtYmVyID0gVmFsaWRhdG9ycy5wYXR0ZXJuKFRBS19QVFJOX05VTVJDKTtcclxuZXhwb3J0IGNvbnN0IGVtYWlsID0gVmFsaWRhdG9ycy5wYXR0ZXJuKFRBS19QVFJOX0VNQUlMKTtcclxuIl19
@@ -1,188 +0,0 @@
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=