design-angular-kit 0.13.0 → 1.0.0-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 (207) hide show
  1. package/README.md +61 -31
  2. package/esm2020/design-angular-kit.mjs +5 -0
  3. package/esm2020/lib/badge/badge.directive.mjs +83 -0
  4. package/esm2020/lib/breadcrumb/breadcrumb-item.component.mjs +66 -0
  5. package/esm2020/lib/breadcrumb/breadcrumb.component.mjs +89 -0
  6. package/esm2020/lib/button/button.directive.mjs +185 -0
  7. package/esm2020/lib/button/button.module.mjs +18 -0
  8. package/esm2020/lib/checkbox/checkbox.component.mjs +138 -0
  9. package/esm2020/lib/collapse/collapse-group.component.mjs +57 -0
  10. package/esm2020/lib/collapse/collapse-item.component.mjs +79 -0
  11. package/esm2020/lib/collapse/collapse.config.mjs +12 -0
  12. package/esm2020/lib/collapse/collapse.directive.mjs +55 -0
  13. package/esm2020/lib/collapse/collapse.module.mjs +22 -0
  14. package/esm2020/lib/design-angular-kit.module.mjs +142 -0
  15. package/esm2020/lib/dropdown/dropdown-divider.component.mjs +11 -0
  16. package/esm2020/lib/dropdown/dropdown-item.component.mjs +97 -0
  17. package/esm2020/lib/dropdown/dropdown.component.mjs +143 -0
  18. package/esm2020/lib/dropdown/dropdown.config.mjs +12 -0
  19. package/esm2020/lib/dropdown/dropdown.directive.mjs +156 -0
  20. package/esm2020/lib/dropdown/dropdown.module.mjs +25 -0
  21. package/esm2020/lib/enums/icons.enum.mjs +27 -0
  22. package/esm2020/lib/form-input/form-input-password.utils.mjs +154 -0
  23. package/esm2020/lib/form-input/form-input.component.mjs +495 -0
  24. package/esm2020/lib/form-input/it-prefix.directive.mjs +13 -0
  25. package/esm2020/lib/form-input/it-suffix.directive.mjs +13 -0
  26. package/esm2020/lib/form-input/it-text-prefix.directive.mjs +13 -0
  27. package/esm2020/lib/form-input/it-text-suffix.directive.mjs +13 -0
  28. package/esm2020/lib/form-input/mark-matching-text.pipe.mjs +36 -0
  29. package/esm2020/lib/icon/icon.component.mjs +87 -0
  30. package/esm2020/lib/icon/icon.module.mjs +18 -0
  31. package/esm2020/lib/models/Alignment.mjs +15 -0
  32. package/esm2020/lib/models/ButtonSize.mjs +15 -0
  33. package/esm2020/lib/models/InputType.mjs +44 -0
  34. package/esm2020/lib/models/ThemeColor.mjs +30 -0
  35. package/esm2020/lib/popover/popover.config.mjs +17 -0
  36. package/esm2020/lib/popover/popover.directive.mjs +33 -0
  37. package/esm2020/lib/popover/popover.module.mjs +19 -0
  38. package/esm2020/lib/progress-bar/progress-bar.component.mjs +98 -0
  39. package/esm2020/lib/radio/radio.component.mjs +287 -0
  40. package/esm2020/lib/radio/unique-selection-dispatcher.mjs +55 -0
  41. package/esm2020/lib/tabs/tab-group.component.mjs +177 -0
  42. package/esm2020/lib/tabs/tab.component.mjs +73 -0
  43. package/esm2020/lib/tabs/tabs.module.mjs +20 -0
  44. package/esm2020/lib/toggle/toggle.component.mjs +86 -0
  45. package/esm2020/lib/tooltip/tooltip.config.mjs +17 -0
  46. package/esm2020/lib/tooltip/tooltip.directive.mjs +43 -0
  47. package/esm2020/lib/tooltip/tooltip.module.mjs +19 -0
  48. package/esm2020/lib/util/focus-mouse.directive.mjs +32 -0
  49. package/esm2020/lib/util/util.mjs +12 -0
  50. package/esm2020/lib/util/utils.module.mjs +16 -0
  51. package/esm2020/public_api.mjs +40 -0
  52. package/fesm2015/design-angular-kit.mjs +3181 -0
  53. package/fesm2015/design-angular-kit.mjs.map +1 -0
  54. package/fesm2020/design-angular-kit.mjs +3160 -0
  55. package/fesm2020/design-angular-kit.mjs.map +1 -0
  56. package/index.d.ts +5 -0
  57. package/lib/badge/badge.directive.d.ts +11 -5
  58. package/lib/breadcrumb/breadcrumb-item.component.d.ts +16 -5
  59. package/lib/breadcrumb/breadcrumb.component.d.ts +12 -5
  60. package/lib/button/button.directive.d.ts +72 -0
  61. package/lib/button/button.module.d.ts +8 -0
  62. package/lib/checkbox/checkbox.component.d.ts +25 -5
  63. package/lib/collapse/collapse-group.component.d.ts +6 -2
  64. package/lib/collapse/collapse-item.component.d.ts +16 -8
  65. package/lib/collapse/collapse.config.d.ts +6 -0
  66. package/lib/collapse/collapse.directive.d.ts +13 -28
  67. package/lib/collapse/collapse.module.d.ts +12 -0
  68. package/lib/design-angular-kit.module.d.ts +27 -0
  69. package/lib/dropdown/dropdown-divider.component.d.ts +3 -0
  70. package/lib/dropdown/dropdown-item.component.d.ts +22 -8
  71. package/lib/dropdown/dropdown.component.d.ts +34 -26
  72. package/lib/dropdown/dropdown.config.d.ts +6 -0
  73. package/lib/dropdown/dropdown.directive.d.ts +77 -0
  74. package/lib/dropdown/dropdown.module.d.ts +15 -0
  75. package/lib/enums/icons.enum.d.ts +23 -0
  76. package/lib/form-input/form-input-password.utils.d.ts +45 -0
  77. package/lib/form-input/form-input.component.d.ts +202 -20
  78. package/lib/form-input/it-prefix.directive.d.ts +5 -0
  79. package/lib/form-input/it-suffix.directive.d.ts +5 -0
  80. package/lib/form-input/it-text-prefix.directive.d.ts +5 -0
  81. package/lib/form-input/it-text-suffix.directive.d.ts +5 -0
  82. package/lib/form-input/mark-matching-text.pipe.d.ts +10 -0
  83. package/lib/icon/icon.component.d.ts +34 -0
  84. package/lib/icon/icon.module.d.ts +8 -0
  85. package/lib/models/Alignment.d.ts +12 -0
  86. package/lib/models/ButtonSize.d.ts +1 -1
  87. package/lib/models/InputType.d.ts +22 -1
  88. package/lib/models/ThemeColor.d.ts +1 -1
  89. package/lib/popover/popover.config.d.ts +5 -6
  90. package/lib/popover/popover.directive.d.ts +13 -108
  91. package/lib/popover/popover.module.d.ts +9 -0
  92. package/lib/progress-bar/progress-bar.component.d.ts +25 -19
  93. package/lib/radio/radio.component.d.ts +22 -10
  94. package/lib/radio/unique-selection-dispatcher.d.ts +3 -0
  95. package/lib/tabs/tab-group.component.d.ts +17 -11
  96. package/lib/tabs/tab.component.d.ts +6 -2
  97. package/lib/tabs/tabs.module.d.ts +10 -0
  98. package/lib/toggle/toggle.component.d.ts +9 -4
  99. package/lib/tooltip/tooltip.config.d.ts +7 -7
  100. package/lib/tooltip/tooltip.directive.d.ts +12 -92
  101. package/lib/tooltip/tooltip.module.d.ts +9 -0
  102. package/lib/util/focus-mouse.directive.d.ts +13 -0
  103. package/lib/util/utils.module.d.ts +7 -0
  104. package/package.json +34 -20
  105. package/public_api.d.ts +16 -2
  106. package/bundles/design-angular-kit.umd.js +0 -6258
  107. package/bundles/design-angular-kit.umd.js.map +0 -1
  108. package/bundles/design-angular-kit.umd.min.js +0 -31
  109. package/bundles/design-angular-kit.umd.min.js.map +0 -1
  110. package/design-angular-kit.d.ts +0 -8
  111. package/design-angular-kit.metadata.json +0 -1
  112. package/esm2015/design-angular-kit.js +0 -14
  113. package/esm2015/lib/badge/badge.directive.js +0 -116
  114. package/esm2015/lib/breadcrumb/breadcrumb-item.component.js +0 -117
  115. package/esm2015/lib/breadcrumb/breadcrumb.component.js +0 -128
  116. package/esm2015/lib/button/button.component.js +0 -165
  117. package/esm2015/lib/checkbox/checkbox.component.js +0 -170
  118. package/esm2015/lib/collapse/collapse-group.component.js +0 -87
  119. package/esm2015/lib/collapse/collapse-item.component.js +0 -148
  120. package/esm2015/lib/collapse/collapse.directive.js +0 -153
  121. package/esm2015/lib/design-angular-kit.module.js +0 -90
  122. package/esm2015/lib/dropdown/dropdown-divider.component.js +0 -18
  123. package/esm2015/lib/dropdown/dropdown-header.component.js +0 -29
  124. package/esm2015/lib/dropdown/dropdown-item.component.js +0 -157
  125. package/esm2015/lib/dropdown/dropdown.component.js +0 -248
  126. package/esm2015/lib/form-input/form-input.component.js +0 -489
  127. package/esm2015/lib/models/ButtonSize.js +0 -25
  128. package/esm2015/lib/models/IconPosition.js +0 -21
  129. package/esm2015/lib/models/InputType.js +0 -33
  130. package/esm2015/lib/models/InteractionTrigger.js +0 -35
  131. package/esm2015/lib/models/ThemeColor.js +0 -45
  132. package/esm2015/lib/popover/popover.component.js +0 -134
  133. package/esm2015/lib/popover/popover.config.js +0 -35
  134. package/esm2015/lib/popover/popover.directive.js +0 -433
  135. package/esm2015/lib/popover/popup.js +0 -105
  136. package/esm2015/lib/popover/positioning.js +0 -349
  137. package/esm2015/lib/popover/triggers.js +0 -99
  138. package/esm2015/lib/progress-bar/progress-bar.component.js +0 -170
  139. package/esm2015/lib/radio/radio.component.js +0 -526
  140. package/esm2015/lib/radio/unique-selection-dispatcher.js +0 -70
  141. package/esm2015/lib/tabs/tab-group.component.js +0 -339
  142. package/esm2015/lib/tabs/tab.component.js +0 -143
  143. package/esm2015/lib/toggle/toggle.component.js +0 -173
  144. package/esm2015/lib/tooltip/popup.js +0 -105
  145. package/esm2015/lib/tooltip/positioning.js +0 -349
  146. package/esm2015/lib/tooltip/tooltip.component.js +0 -77
  147. package/esm2015/lib/tooltip/tooltip.config.js +0 -31
  148. package/esm2015/lib/tooltip/tooltip.directive.js +0 -384
  149. package/esm2015/lib/tooltip/triggers.js +0 -99
  150. package/esm2015/lib/util/util.js +0 -30
  151. package/esm2015/public_api.js +0 -31
  152. package/esm5/design-angular-kit.js +0 -14
  153. package/esm5/lib/badge/badge.directive.js +0 -145
  154. package/esm5/lib/breadcrumb/breadcrumb-item.component.js +0 -135
  155. package/esm5/lib/breadcrumb/breadcrumb.component.js +0 -164
  156. package/esm5/lib/button/button.component.js +0 -221
  157. package/esm5/lib/checkbox/checkbox.component.js +0 -200
  158. package/esm5/lib/collapse/collapse-group.component.js +0 -102
  159. package/esm5/lib/collapse/collapse-item.component.js +0 -183
  160. package/esm5/lib/collapse/collapse.directive.js +0 -210
  161. package/esm5/lib/design-angular-kit.module.js +0 -94
  162. package/esm5/lib/dropdown/dropdown-divider.component.js +0 -20
  163. package/esm5/lib/dropdown/dropdown-header.component.js +0 -27
  164. package/esm5/lib/dropdown/dropdown-item.component.js +0 -197
  165. package/esm5/lib/dropdown/dropdown.component.js +0 -309
  166. package/esm5/lib/form-input/form-input.component.js +0 -582
  167. package/esm5/lib/models/ButtonSize.js +0 -25
  168. package/esm5/lib/models/IconPosition.js +0 -21
  169. package/esm5/lib/models/InputType.js +0 -33
  170. package/esm5/lib/models/InteractionTrigger.js +0 -35
  171. package/esm5/lib/models/ThemeColor.js +0 -45
  172. package/esm5/lib/popover/popover.component.js +0 -144
  173. package/esm5/lib/popover/popover.config.js +0 -37
  174. package/esm5/lib/popover/popover.directive.js +0 -573
  175. package/esm5/lib/popover/popup.js +0 -116
  176. package/esm5/lib/popover/positioning.js +0 -446
  177. package/esm5/lib/popover/triggers.js +0 -115
  178. package/esm5/lib/progress-bar/progress-bar.component.js +0 -218
  179. package/esm5/lib/radio/radio.component.js +0 -610
  180. package/esm5/lib/radio/unique-selection-dispatcher.js +0 -108
  181. package/esm5/lib/tabs/tab-group.component.js +0 -401
  182. package/esm5/lib/tabs/tab.component.js +0 -156
  183. package/esm5/lib/toggle/toggle.component.js +0 -200
  184. package/esm5/lib/tooltip/popup.js +0 -116
  185. package/esm5/lib/tooltip/positioning.js +0 -446
  186. package/esm5/lib/tooltip/tooltip.component.js +0 -80
  187. package/esm5/lib/tooltip/tooltip.config.js +0 -33
  188. package/esm5/lib/tooltip/tooltip.directive.js +0 -516
  189. package/esm5/lib/tooltip/triggers.js +0 -115
  190. package/esm5/lib/util/util.js +0 -48
  191. package/esm5/public_api.js +0 -31
  192. package/fesm2015/design-angular-kit.js +0 -5094
  193. package/fesm2015/design-angular-kit.js.map +0 -1
  194. package/fesm5/design-angular-kit.js +0 -6314
  195. package/fesm5/design-angular-kit.js.map +0 -1
  196. package/lib/button/button.component.d.ts +0 -50
  197. package/lib/dropdown/dropdown-header.component.d.ts +0 -3
  198. package/lib/models/IconPosition.d.ts +0 -9
  199. package/lib/models/InteractionTrigger.d.ts +0 -19
  200. package/lib/popover/popover.component.d.ts +0 -25
  201. package/lib/popover/popup.d.ts +0 -27
  202. package/lib/popover/positioning.d.ts +0 -32
  203. package/lib/popover/triggers.d.ts +0 -18
  204. package/lib/tooltip/popup.d.ts +0 -27
  205. package/lib/tooltip/positioning.d.ts +0 -32
  206. package/lib/tooltip/tooltip.component.d.ts +0 -20
  207. package/lib/tooltip/triggers.d.ts +0 -18
@@ -1,582 +0,0 @@
1
- /**
2
- * @fileoverview added by tsickle
3
- * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
4
- */
5
- import { Component, Input, ChangeDetectionStrategy, forwardRef, Output, EventEmitter, ChangeDetectorRef, ViewChild, ElementRef } from '@angular/core';
6
- import { NG_VALUE_ACCESSOR } from '@angular/forms';
7
- import { InputType, INPUT_TYPES } from '../models/InputType';
8
- import { Util } from '../util/util';
9
- /** @type {?} */
10
- var identifier = 0;
11
- var FormInputChange = /** @class */ (function () {
12
- function FormInputChange(source, value) {
13
- this.source = source;
14
- this.value = value;
15
- }
16
- return FormInputChange;
17
- }());
18
- export { FormInputChange };
19
- if (false) {
20
- /** @type {?} */
21
- FormInputChange.prototype.source;
22
- /** @type {?} */
23
- FormInputChange.prototype.value;
24
- }
25
- /**
26
- * Elementi e stili per la creazione di input accessibili e responsivi.
27
- */
28
- var FormInputComponent = /** @class */ (function () {
29
- function FormInputComponent(_changeDetector) {
30
- this._changeDetector = _changeDetector;
31
- this._id = "form-input-" + identifier++;
32
- this._type = INPUT_TYPES.TEXT;
33
- this._disabled = false;
34
- this._readonly = false;
35
- /**
36
- * Evento emesso quando il valore dell'input cambia.
37
- * Gli eventi di change sono emessi soltanto quando il valore cambia a causa dell'interazione dell'utente
38
- * con il campo d'input.
39
- */
40
- this.change = new EventEmitter();
41
- this._isLabelActive = false;
42
- this._isPasswordMode = false;
43
- this._isPasswordVisible = false;
44
- this._showAutocompletion = false;
45
- this._isInitialized = false;
46
- this._controlValueAccessorChangeFn = function () { };
47
- this._onTouched = function () { };
48
- }
49
- Object.defineProperty(FormInputComponent.prototype, "id", {
50
- /**
51
- * Indica l'id dell'elemento HTML
52
- */
53
- get: /**
54
- * Indica l'id dell'elemento HTML
55
- * @return {?}
56
- */
57
- function () {
58
- return this._id;
59
- },
60
- set: /**
61
- * @param {?} value
62
- * @return {?}
63
- */
64
- function (value) {
65
- this._id = value;
66
- },
67
- enumerable: true,
68
- configurable: true
69
- });
70
- Object.defineProperty(FormInputComponent.prototype, "name", {
71
- /**
72
- * Indica l'attributo name del componente HTML
73
- */
74
- get: /**
75
- * Indica l'attributo name del componente HTML
76
- * @return {?}
77
- */
78
- function () {
79
- return this._name;
80
- },
81
- set: /**
82
- * @param {?} value
83
- * @return {?}
84
- */
85
- function (value) {
86
- this._name = value;
87
- },
88
- enumerable: true,
89
- configurable: true
90
- });
91
- Object.defineProperty(FormInputComponent.prototype, "type", {
92
- /**
93
- * Indica il tipo di campo. Puo' assumere i valori text, email, password e number
94
- */
95
- get: /**
96
- * Indica il tipo di campo. Puo' assumere i valori text, email, password e number
97
- * @return {?}
98
- */
99
- function () {
100
- return this._type;
101
- },
102
- set: /**
103
- * @param {?} value
104
- * @return {?}
105
- */
106
- function (value) {
107
- if (InputType.is(value)) {
108
- if (value === INPUT_TYPES.NUMBER) {
109
- if (isNaN(Number(this.value))) {
110
- this.value = '';
111
- this.onChange();
112
- }
113
- }
114
- this._type = value;
115
- }
116
- else {
117
- this._type = INPUT_TYPES.TEXT;
118
- }
119
- this._isPasswordMode = this._type === INPUT_TYPES.PASSWORD;
120
- this._isPasswordVisible = false;
121
- this._showAutocompletion = false;
122
- },
123
- enumerable: true,
124
- configurable: true
125
- });
126
- Object.defineProperty(FormInputComponent.prototype, "label", {
127
- /**
128
- * Indica il valore della label da visualizzare
129
- */
130
- get: /**
131
- * Indica il valore della label da visualizzare
132
- * @return {?}
133
- */
134
- function () { return this._label; },
135
- set: /**
136
- * @param {?} value
137
- * @return {?}
138
- */
139
- function (value) { this._label = value; },
140
- enumerable: true,
141
- configurable: true
142
- });
143
- Object.defineProperty(FormInputComponent.prototype, "note", {
144
- /**
145
- * Indica il testo di aiuto sotto la input
146
- */
147
- get: /**
148
- * Indica il testo di aiuto sotto la input
149
- * @return {?}
150
- */
151
- function () { return this._note; },
152
- set: /**
153
- * @param {?} value
154
- * @return {?}
155
- */
156
- function (value) { this._note = value; },
157
- enumerable: true,
158
- configurable: true
159
- });
160
- Object.defineProperty(FormInputComponent.prototype, "placeholder", {
161
- /**
162
- * Indica il testo presente nel campo vuoto. Nel caso sia già presente la label, il placeholder non verrà mostrato
163
- */
164
- get: /**
165
- * Indica il testo presente nel campo vuoto. Nel caso sia già presente la label, il placeholder non verrà mostrato
166
- * @return {?}
167
- */
168
- function () {
169
- if (this.label) {
170
- if (this.label.length > 0) {
171
- return '';
172
- }
173
- }
174
- return this._placeholder || '';
175
- },
176
- set: /**
177
- * @param {?} value
178
- * @return {?}
179
- */
180
- function (value) { this._placeholder = value; },
181
- enumerable: true,
182
- configurable: true
183
- });
184
- Object.defineProperty(FormInputComponent.prototype, "icon", {
185
- /**
186
- * Indica l'icona da visualizzare a sinistra del campo di input
187
- */
188
- get: /**
189
- * Indica l'icona da visualizzare a sinistra del campo di input
190
- * @return {?}
191
- */
192
- function () { return this._icon; },
193
- set: /**
194
- * @param {?} value
195
- * @return {?}
196
- */
197
- function (value) { this._icon = value; },
198
- enumerable: true,
199
- configurable: true
200
- });
201
- Object.defineProperty(FormInputComponent.prototype, "disabled", {
202
- /**
203
- * Opzionale.
204
- * Indica se il campo in questione è disabilitato.
205
- * Accetta una espressione booleana o può essere usato come attributo senza valore
206
- */
207
- get: /**
208
- * Opzionale.
209
- * Indica se il campo in questione è disabilitato.
210
- * Accetta una espressione booleana o può essere usato come attributo senza valore
211
- * @return {?}
212
- */
213
- function () { return this._disabled; },
214
- set: /**
215
- * @param {?} value
216
- * @return {?}
217
- */
218
- function (value) { this._disabled = Util.coerceBooleanProperty(value); },
219
- enumerable: true,
220
- configurable: true
221
- });
222
- Object.defineProperty(FormInputComponent.prototype, "readonly", {
223
- /**
224
- * Opzionale.
225
- * Indica se il campo in questione è di sola lettura.
226
- * Accetta una espressione booleana o può essere usato come attributo senza valore
227
- */
228
- get: /**
229
- * Opzionale.
230
- * Indica se il campo in questione è di sola lettura.
231
- * Accetta una espressione booleana o può essere usato come attributo senza valore
232
- * @return {?}
233
- */
234
- function () { return this._readonly; },
235
- set: /**
236
- * @param {?} value
237
- * @return {?}
238
- */
239
- function (value) { this._readonly = Util.coerceBooleanProperty(value); },
240
- enumerable: true,
241
- configurable: true
242
- });
243
- Object.defineProperty(FormInputComponent.prototype, "value", {
244
- get: /**
245
- * @return {?}
246
- */
247
- function () { return this._inputElement.nativeElement.value; },
248
- set: /**
249
- * @param {?} value
250
- * @return {?}
251
- */
252
- function (value) { this._inputElement.nativeElement.value = value; },
253
- enumerable: true,
254
- configurable: true
255
- });
256
- Object.defineProperty(FormInputComponent.prototype, "autoCompleteData", {
257
- /**
258
- * Opzionale.
259
- * Disponibile solo se il type è search.
260
- * Indica la lista di elementi ricercabili su cui basare il sistema di autocompletamento della input
261
- */
262
- get: /**
263
- * Opzionale.
264
- * Disponibile solo se il type è search.
265
- * Indica la lista di elementi ricercabili su cui basare il sistema di autocompletamento della input
266
- * @return {?}
267
- */
268
- function () { return this._autoCompleteData; },
269
- set: /**
270
- * @param {?} value
271
- * @return {?}
272
- */
273
- function (value) { this._autoCompleteData = value; },
274
- enumerable: true,
275
- configurable: true
276
- });
277
- Object.defineProperty(FormInputComponent.prototype, "isLabelActive", {
278
- get: /**
279
- * @return {?}
280
- */
281
- function () {
282
- return this._isLabelActive;
283
- },
284
- set: /**
285
- * @param {?} value
286
- * @return {?}
287
- */
288
- function (value) {
289
- this._isLabelActive = Util.coerceBooleanProperty(value);
290
- },
291
- enumerable: true,
292
- configurable: true
293
- });
294
- Object.defineProperty(FormInputComponent.prototype, "isPasswordMode", {
295
- get: /**
296
- * @return {?}
297
- */
298
- function () {
299
- return this._isPasswordMode;
300
- },
301
- set: /**
302
- * @param {?} value
303
- * @return {?}
304
- */
305
- function (value) {
306
- this._isPasswordMode = Util.coerceBooleanProperty(value);
307
- },
308
- enumerable: true,
309
- configurable: true
310
- });
311
- Object.defineProperty(FormInputComponent.prototype, "isPasswordVisible", {
312
- get: /**
313
- * @return {?}
314
- */
315
- function () {
316
- return this._isPasswordVisible;
317
- },
318
- set: /**
319
- * @param {?} value
320
- * @return {?}
321
- */
322
- function (value) {
323
- this._isPasswordVisible = Util.coerceBooleanProperty(value);
324
- this._type = this._isPasswordVisible ? INPUT_TYPES.TEXT : INPUT_TYPES.PASSWORD;
325
- },
326
- enumerable: true,
327
- configurable: true
328
- });
329
- /**
330
- * @return {?}
331
- */
332
- FormInputComponent.prototype._emitChangeEvent = /**
333
- * @return {?}
334
- */
335
- function () {
336
- if (this._isInitialized) {
337
- this.change.emit(new FormInputChange(this, this.value));
338
- }
339
- };
340
- /**
341
- * @param {?} value
342
- * @return {?}
343
- */
344
- FormInputComponent.prototype.writeValue = /**
345
- * @param {?} value
346
- * @return {?}
347
- */
348
- function (value) {
349
- this.value = value;
350
- if (this.value) {
351
- this._isLabelActive = true;
352
- }
353
- this.onChange();
354
- if (this._isInitialized) {
355
- this._changeDetector.detectChanges();
356
- }
357
- };
358
- /**
359
- * @param {?} fn
360
- * @return {?}
361
- */
362
- FormInputComponent.prototype.registerOnChange = /**
363
- * @param {?} fn
364
- * @return {?}
365
- */
366
- function (fn) {
367
- this._controlValueAccessorChangeFn = fn;
368
- };
369
- /**
370
- * @param {?} fn
371
- * @return {?}
372
- */
373
- FormInputComponent.prototype.registerOnTouched = /**
374
- * @param {?} fn
375
- * @return {?}
376
- */
377
- function (fn) {
378
- this._onTouched = fn;
379
- };
380
- /**
381
- * @return {?}
382
- */
383
- FormInputComponent.prototype.ngAfterContentInit = /**
384
- * @return {?}
385
- */
386
- function () {
387
- this._isInitialized = true;
388
- };
389
- /**
390
- * @return {?}
391
- */
392
- FormInputComponent.prototype.onChange = /**
393
- * @return {?}
394
- */
395
- function () {
396
- this._emitChangeEvent();
397
- this._controlValueAccessorChangeFn(this.value);
398
- };
399
- /**
400
- * @return {?}
401
- */
402
- FormInputComponent.prototype.onInput = /**
403
- * @return {?}
404
- */
405
- function () {
406
- if (this._type === INPUT_TYPES.SEARCH && this.isAutocompletable() && !this._showAutocompletion) {
407
- this._showAutocompletion = true;
408
- }
409
- this._emitChangeEvent();
410
- this._controlValueAccessorChangeFn(this.value);
411
- };
412
- /**
413
- * @return {?}
414
- */
415
- FormInputComponent.prototype.onFocus = /**
416
- * @return {?}
417
- */
418
- function () {
419
- this._isLabelActive = true;
420
- };
421
- /**
422
- * @return {?}
423
- */
424
- FormInputComponent.prototype.onBlur = /**
425
- * @return {?}
426
- */
427
- function () {
428
- /** @type {?} */
429
- var inputValue = this.value;
430
- if (inputValue.length === 0) {
431
- this._isLabelActive = false;
432
- if (this.type === INPUT_TYPES.NUMBER) {
433
- this.value = '';
434
- }
435
- }
436
- };
437
- /**
438
- * @return {?}
439
- */
440
- FormInputComponent.prototype.noteId = /**
441
- * @return {?}
442
- */
443
- function () {
444
- return this.id + "-note";
445
- };
446
- /**
447
- * @return {?}
448
- */
449
- FormInputComponent.prototype.getRelatedEntries = /**
450
- * @return {?}
451
- */
452
- function () {
453
- if (this.value && this._showAutocompletion) {
454
- /** @type {?} */
455
- var lowercaseValue_1 = this.value.toLowerCase();
456
- /** @type {?} */
457
- var lowercaseData = this._autoCompleteData.map(function (string) {
458
- return { original: string, lowercase: string.toLowerCase() };
459
- });
460
- /** @type {?} */
461
- var relatedEntries_1 = [];
462
- lowercaseData.forEach(function (lowercaseEntry) {
463
- if ((lowercaseEntry.lowercase).includes(lowercaseValue_1)) {
464
- relatedEntries_1.push(lowercaseEntry.original);
465
- }
466
- });
467
- return relatedEntries_1;
468
- }
469
- else {
470
- return [];
471
- }
472
- };
473
- /**
474
- * @return {?}
475
- */
476
- FormInputComponent.prototype.isAutocompletable = /**
477
- * @return {?}
478
- */
479
- function () {
480
- if (this._autoCompleteData && this._type === INPUT_TYPES.SEARCH) {
481
- return this._autoCompleteData.length > 0;
482
- }
483
- else {
484
- return false;
485
- }
486
- };
487
- /**
488
- * @param {?} entry
489
- * @return {?}
490
- */
491
- FormInputComponent.prototype.onEntryClick = /**
492
- * @param {?} entry
493
- * @return {?}
494
- */
495
- function (entry) {
496
- this.value = entry;
497
- this._showAutocompletion = false;
498
- this.onChange();
499
- };
500
- FormInputComponent.decorators = [
501
- { type: Component, args: [{
502
- selector: 'it-input',
503
- template: "<div class=\"form-group\">\n <i *ngIf=\"icon\" [class]=\"icon\" [ngClass]=\"{ 'ico-prefix': true }\"></i>\n <input #inputElement\n (focus)=\"onFocus()\"\n (blur)=\"onBlur()\"\n (change)=\"onChange()\"\n (input)=\"onInput()\"\n [type]=\"type\"\n [id]=\"id\"\n [attr.name]=\"name\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [placeholder]=\"placeholder\"\n [ngClass]=\"{\n 'form-control' : !readonly,\n 'form-control-plaintext' : readonly,\n 'autocomplete' : isAutocompletable()\n }\"\n [attr.aria-labelledby]=\"note ? noteId : undefined\"/>\n <span class=\"btn-eye\" \n *ngIf=\"isPasswordMode\"\n (click)=\"isPasswordVisible = !isPasswordVisible\"\n [ngClass]=\"{\n 'eye-on' : !isPasswordVisible,\n 'eye-off' : isPasswordVisible\n }\">\n </span>\n <ul class=\"autocomplete-wrap\" *ngIf=\"isAutocompletable()\">\n <li *ngFor=\"let entry of getRelatedEntries()\" (click)=\"onEntryClick(entry)\">\n {{entry}}\n </li>\n </ul>\n <label [attr.for]=\"id\" [ngClass]=\"{ 'active' : isLabelActive }\">\n {{label}}\n </label>\n <small [id]=\"noteId()\" class=\"form-text text-muted\" *ngIf=\"note\">\n {{note}}\n </small>\n</div>\n",
504
- styles: ["label{pointer-events:none}"],
505
- changeDetection: ChangeDetectionStrategy.OnPush,
506
- providers: [{
507
- provide: NG_VALUE_ACCESSOR,
508
- useExisting: forwardRef(function () { return FormInputComponent; }),
509
- multi: true
510
- }]
511
- },] },
512
- ];
513
- /** @nocollapse */
514
- FormInputComponent.ctorParameters = function () { return [
515
- { type: ChangeDetectorRef }
516
- ]; };
517
- FormInputComponent.propDecorators = {
518
- _inputElement: [{ type: ViewChild, args: ['inputElement',] }],
519
- id: [{ type: Input }],
520
- name: [{ type: Input }],
521
- type: [{ type: Input }],
522
- label: [{ type: Input }],
523
- note: [{ type: Input }],
524
- placeholder: [{ type: Input }],
525
- icon: [{ type: Input }],
526
- disabled: [{ type: Input }],
527
- readonly: [{ type: Input }],
528
- autoCompleteData: [{ type: Input }],
529
- change: [{ type: Output }]
530
- };
531
- return FormInputComponent;
532
- }());
533
- export { FormInputComponent };
534
- if (false) {
535
- /** @type {?} */
536
- FormInputComponent.prototype._inputElement;
537
- /** @type {?} */
538
- FormInputComponent.prototype._id;
539
- /** @type {?} */
540
- FormInputComponent.prototype._name;
541
- /** @type {?} */
542
- FormInputComponent.prototype._type;
543
- /** @type {?} */
544
- FormInputComponent.prototype._label;
545
- /** @type {?} */
546
- FormInputComponent.prototype._note;
547
- /** @type {?} */
548
- FormInputComponent.prototype._placeholder;
549
- /** @type {?} */
550
- FormInputComponent.prototype._icon;
551
- /** @type {?} */
552
- FormInputComponent.prototype._disabled;
553
- /** @type {?} */
554
- FormInputComponent.prototype._readonly;
555
- /** @type {?} */
556
- FormInputComponent.prototype._autoCompleteData;
557
- /**
558
- * Evento emesso quando il valore dell'input cambia.
559
- * Gli eventi di change sono emessi soltanto quando il valore cambia a causa dell'interazione dell'utente
560
- * con il campo d'input.
561
- * @type {?}
562
- */
563
- FormInputComponent.prototype.change;
564
- /** @type {?} */
565
- FormInputComponent.prototype._isLabelActive;
566
- /** @type {?} */
567
- FormInputComponent.prototype._isPasswordMode;
568
- /** @type {?} */
569
- FormInputComponent.prototype._isPasswordVisible;
570
- /** @type {?} */
571
- FormInputComponent.prototype._showAutocompletion;
572
- /** @type {?} */
573
- FormInputComponent.prototype._isInitialized;
574
- /** @type {?} */
575
- FormInputComponent.prototype._controlValueAccessorChangeFn;
576
- /** @type {?} */
577
- FormInputComponent.prototype._onTouched;
578
- /** @type {?} */
579
- FormInputComponent.prototype._changeDetector;
580
- }
581
-
582
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9kZXNpZ24tYW5ndWxhci1raXQvIiwic291cmNlcyI6WyJsaWIvZm9ybS1pbnB1dC9mb3JtLWlucHV0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUNMLFNBQVMsRUFBRSxLQUFLLEVBQUUsdUJBQXVCLEVBQUUsVUFBVSxFQUNuQyxNQUFNLEVBQUUsWUFBWSxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQ2pGLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxpQkFBaUIsRUFBd0IsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzdELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxjQUFjLENBQUM7O0FBRXBDLElBQUksVUFBVSxHQUFHLENBQUMsQ0FBQztBQUVuQixJQUFBO0lBQ0UseUJBQ1MsUUFDQTtRQURBLFdBQU0sR0FBTixNQUFNO1FBQ04sVUFBSyxHQUFMLEtBQUs7S0FDVDswQkFkUDtJQWVDLENBQUE7QUFMRCwyQkFLQzs7Ozs7Ozs7Ozs7SUFzUEMsNEJBQW9CLGVBQWtDO1FBQWxDLG9CQUFlLEdBQWYsZUFBZSxDQUFtQjttQkFqTHhDLGdCQUFjLFVBQVUsRUFBSTtxQkFzQzFCLFdBQVcsQ0FBQyxJQUFJO3lCQWlEWixLQUFLO3lCQVVMLEtBQUs7Ozs7OztzQkFxQndCLElBQUksWUFBWSxFQUFtQjs4QkFRM0QsS0FBSzsrQkFTSixLQUFLO2tDQVNGLEtBQUs7bUNBRUosS0FBSzs4QkFDVixLQUFLOzZDQUNnQyxlQUFTOzBCQUN2QyxlQUFTO0tBNEJrQjtJQXhMM0Qsc0JBQ0ksa0NBQUU7UUFKTjs7V0FFRzs7Ozs7UUFDSDtZQUVFLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDO1NBQ2pCOzs7OztRQUNELFVBQU8s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OztnQkF2VEYsU0FBUyxTQUFDO29CQUNULFFBQVEsRUFBRSxVQUFVO29CQUNwQixRQUFRLEVBQUUsb3RDQXVDWDtvQkFDQyxNQUFNLEVBQUUsQ0FBQyw0QkFBNEIsQ0FBQztvQkFDdEMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLFNBQVMsRUFBRSxDQUFDOzRCQUNWLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsY0FBTSxPQUFBLGtCQUFrQixFQUFsQixDQUFrQixDQUFDOzRCQUNqRCxLQUFLLEVBQUUsSUFBSTt5QkFDWixDQUFDO2lCQUNIOzs7O2dCQW5FeUMsaUJBQWlCOzs7Z0NBcUV4RCxTQUFTLFNBQUMsY0FBYztxQkFNeEIsS0FBSzt1QkFZTCxLQUFLO3VCQVlMLEtBQUs7d0JBMEJMLEtBQUs7dUJBUUwsS0FBSzs4QkFRTCxLQUFLO3VCQWVMLEtBQUs7MkJBVUwsS0FBSzsyQkFVTCxLQUFLO21DQWFMLEtBQUs7eUJBVUwsTUFBTTs7NkJBek1UOztTQXNFYSxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsIElucHV0LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgZm9yd2FyZFJlZixcbiAgQWZ0ZXJDb250ZW50SW5pdCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIENoYW5nZURldGVjdG9yUmVmLCBWaWV3Q2hpbGQsIEVsZW1lbnRSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiwgQ29udHJvbFZhbHVlQWNjZXNzb3IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBJbnB1dFR5cGUsIElOUFVUX1RZUEVTIH0gZnJvbSAnLi4vbW9kZWxzL0lucHV0VHlwZSc7XG5pbXBvcnQgeyBVdGlsIH0gZnJvbSAnLi4vdXRpbC91dGlsJztcblxubGV0IGlkZW50aWZpZXIgPSAwO1xuXG5leHBvcnQgY2xhc3MgRm9ybUlucHV0Q2hhbmdlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHNvdXJjZTogRm9ybUlucHV0Q29tcG9uZW50LFxuICAgIHB1YmxpYyB2YWx1ZTogYW55XG4gICkgeyB9XG59XG5cbi8qKlxuICogRWxlbWVudGkgZSBzdGlsaSBwZXIgbGEgY3JlYXppb25lIGRpIGlucHV0IGFjY2Vzc2liaWxpIGUgcmVzcG9uc2l2aS5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaXQtaW5wdXQnLFxuICB0ZW1wbGF0ZTogYDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XG4gIDxpICpuZ0lmPVwiaWNvblwiIFtjbGFzc109XCJpY29uXCIgW25nQ2xhc3NdPVwieyAnaWNvLXByZWZpeCc6IHRydWUgfVwiPjwvaT5cbiAgPGlucHV0ICNpbnB1dEVsZW1lbnRcbiAgICAoZm9jdXMpPVwib25Gb2N1cygpXCJcbiAgICAoYmx1cik9XCJvbkJsdXIoKVwiXG4gICAgKGNoYW5nZSk9XCJvbkNoYW5nZSgpXCJcbiAgICAoaW5wdXQpPVwib25JbnB1dCgpXCJcbiAgICBbdHlwZV09XCJ0eXBlXCJcbiAgICBbaWRdPVwiaWRcIlxuICAgIFthdHRyLm5hbWVdPVwibmFtZVwiXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxuICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgW25nQ2xhc3NdPVwie1xuICAgICAgJ2Zvcm0tY29udHJvbCcgOiAhcmVhZG9ubHksXG4gICAgICAnZm9ybS1jb250cm9sLXBsYWludGV4dCcgOiByZWFkb25seSxcbiAgICAgICdhdXRvY29tcGxldGUnIDogaXNBdXRvY29tcGxldGFibGUoKVxuICAgIH1cIlxuICAgIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJub3RlID8gbm90ZUlkIDogdW5kZWZpbmVkXCIvPlxuICA8c3BhbiBjbGFzcz1cImJ0bi1leWVcIiBcbiAgICAqbmdJZj1cImlzUGFzc3dvcmRNb2RlXCJcbiAgICAoY2xpY2spPVwiaXNQYXNzd29yZFZpc2libGUgPSAhaXNQYXNzd29yZFZpc2libGVcIlxuICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICdleWUtb24nIDogIWlzUGFzc3dvcmRWaXNpYmxlLFxuICAgICAgJ2V5ZS1vZmYnIDogaXNQYXNzd29yZFZpc2libGVcbiAgICB9XCI+XG4gIDwvc3Bhbj5cbiAgPHVsIGNsYXNzPVwiYXV0b2NvbXBsZXRlLXdyYXBcIiAqbmdJZj1cImlzQXV0b2NvbXBsZXRhYmxlKClcIj5cbiAgICA8bGkgKm5nRm9yPVwibGV0IGVudHJ5IG9mIGdldFJlbGF0ZWRFbnRyaWVzKClcIiAoY2xpY2spPVwib25FbnRyeUNsaWNrKGVudHJ5KVwiPlxuICAgICAge3tlbnRyeX19XG4gICAgPC9saT5cbiAgPC91bD5cbiAgPGxhYmVsIFthdHRyLmZvcl09XCJpZFwiIFtuZ0NsYXNzXT1cInsgJ2FjdGl2ZScgOiBpc0xhYmVsQWN0aXZlIH1cIj5cbiAgICB7e2xhYmVsfX1cbiAgPC9sYWJlbD5cbiAgPHNtYWxsIFtpZF09XCJub3RlSWQoKVwiIGNsYXNzPVwiZm9ybS10ZXh0IHRleHQtbXV0ZWRcIiAqbmdJZj1cIm5vdGVcIj5cbiAgICB7e25vdGV9fVxuICA8L3NtYWxsPlxuPC9kaXY+XG5gLFxuICBzdHlsZXM6IFtgbGFiZWx7cG9pbnRlci1ldmVudHM6bm9uZX1gXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHByb3ZpZGVyczogW3tcbiAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBGb3JtSW5wdXRDb21wb25lbnQpLFxuICAgIG11bHRpOiB0cnVlXG4gIH1dXG59KVxuZXhwb3J0IGNsYXNzIEZvcm1JbnB1dENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQsIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgQFZpZXdDaGlsZCgnaW5wdXRFbGVtZW50JylcbiAgcHJpdmF0ZSBfaW5wdXRFbGVtZW50OiBFbGVtZW50UmVmO1xuXG4gIC8qKlxuICAgKiBJbmRpY2EgbCdpZCBkZWxsJ2VsZW1lbnRvIEhUTUxcbiAgICovXG4gIEBJbnB1dCgpXG4gIGdldCBpZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9pZDtcbiAgfVxuICBzZXQgaWQodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuX2lkID0gdmFsdWU7XG4gIH1cbiAgcHJpdmF0ZSBfaWQgPSBgZm9ybS1pbnB1dC0ke2lkZW50aWZpZXIrK31gO1xuXG4gIC8qKlxuICAgKiBJbmRpY2EgbCdhdHRyaWJ1dG8gbmFtZSBkZWwgY29tcG9uZW50ZSBIVE1MXG4gICAqL1xuICBASW5wdXQoKVxuICBnZXQgbmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9uYW1lO1xuICB9XG4gIHNldCBuYW1lKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9uYW1lID0gdmFsdWU7XG4gIH1cbiAgcHJpdmF0ZSBfbmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBJbmRpY2EgaWwgdGlwbyBkaSBjYW1wby4gUHVvJyBhc3N1bWVyZSBpIHZhbG9yaSB0ZXh0LCBlbWFpbCwgcGFzc3dvcmQgZSBudW1iZXJcbiAgICovXG4gIEBJbnB1dCgpXG4gIGdldCB0eXBlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX3R5cGU7XG4gIH1cbiAgc2V0IHR5cGUodmFsdWU6IHN0cmluZykge1xuICAgIGlmIChJbnB1dFR5cGUuaXModmFsdWUpKSB7XG4gICAgICBpZiAodmFsdWUgPT09IElOUFVUX1RZUEVTLk5VTUJFUikge1xuICAgICAgICBpZiAoaXNOYU4oTnVtYmVyKHRoaXMudmFsdWUpKSkge1xuICAgICAgICAgIHRoaXMudmFsdWUgPSAnJztcbiAgICAgICAgICB0aGlzLm9uQ2hhbmdlKCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHRoaXMuX3R5cGUgPSB2YWx1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fdHlwZSA9IElOUFVUX1RZUEVTLlRFWFQ7XG4gICAgfVxuXG4gICAgdGhpcy5faXNQYXNzd29yZE1vZGUgPSB0aGlzLl90eXBlID09PSBJTlBVVF9UWVBFUy5QQVNTV09SRDtcbiAgICB0aGlzLl9pc1Bhc3N3b3JkVmlzaWJsZSA9IGZhbHNlO1xuICAgIHRoaXMuX3Nob3dBdXRvY29tcGxldGlvbiA9IGZhbHNlO1xuICB9XG4gIHByaXZhdGUgX3R5cGUgPSBJTlBVVF9UWVBFUy5URVhUO1xuXG4gIC8qKlxuICAgKiBJbmRpY2EgaWwgdmFsb3JlIGRlbGxhIGxhYmVsIGRhIHZpc3VhbGl6emFyZVxuICAgKi9cbiAgQElucHV0KClcbiAgZ2V0IGxhYmVsKCk6IHN0cmluZyB7IHJldHVybiB0aGlzLl9sYWJlbDsgfVxuICBzZXQgbGFiZWwodmFsdWU6IHN0cmluZykgeyB0aGlzLl9sYWJlbCA9IHZhbHVlOyB9XG4gIHByaXZhdGUgX2xhYmVsOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEluZGljYSBpbCB0ZXN0byBkaSBhaXV0byBzb3R0byBsYSBpbnB1dFxuICAgKi9cbiAgQElucHV0KClcbiAgZ2V0IG5vdGUoKTogc3RyaW5nIHsgcmV0dXJuIHRoaXMuX25vdGU7IH1cbiAgc2V0IG5vdGUodmFsdWU6IHN0cmluZykgeyB0aGlzLl9ub3RlID0gdmFsdWU7IH1cbiAgcHJpdmF0ZSBfbm90ZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBJbmRpY2EgaWwgdGVzdG8gcHJlc2VudGUgbmVsIGNhbXBvIHZ1b3RvLiBOZWwgY2FzbyBzaWEgZ2nDoCBwcmVzZW50ZSBsYSBsYWJlbCwgaWwgcGxhY2Vob2xkZXIgbm9uIHZlcnLDoCBtb3N0cmF0b1xuICAgKi9cbiAgQElucHV0KClcbiAgZ2V0IHBsYWNlaG9sZGVyKCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMubGFiZWwpIHtcbiAgICAgIGlmICh0aGlzLmxhYmVsLmxlbmd0aCA+IDApIHtcbiAgICAgICAgcmV0dXJuICcnO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fcGxhY2Vob2xkZXIgfHwgJyc7XG4gIH1cbiAgc2V0IHBsYWNlaG9sZGVyKHZhbHVlOiBzdHJpbmcpIHsgdGhpcy5fcGxhY2Vob2xkZXIgPSB2YWx1ZTsgfVxuICBwcml2YXRlIF9wbGFjZWhvbGRlcjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBJbmRpY2EgbCdpY29uYSBkYSB2aXN1YWxpenphcmUgYSBzaW5pc3RyYSBkZWwgY2FtcG8gZGkgaW5wdXRcbiAgICovXG4gIEBJbnB1dCgpXG4gIGdldCBpY29uKCk6IHN0cmluZyB7IHJldHVybiB0aGlzLl9pY29uOyB9XG4gIHNldCBpY29uKHZhbHVlOiBzdHJpbmcpIHsgdGhpcy5faWNvbiA9IHZhbHVlOyB9XG4gIHByaXZhdGUgX2ljb246IHN0cmluZztcblxuICAvKipcbiAgICogT3B6aW9uYWxlLlxuICAgKiBJbmRpY2Egc2UgaWwgY2FtcG8gaW4gcXVlc3Rpb25lIMOoIGRpc2FiaWxpdGF0by5cbiAgICogQWNjZXR0YSB1bmEgZXNwcmVzc2lvbmUgYm9vbGVhbmEgbyBwdcOyIGVzc2VyZSB1c2F0byBjb21lIGF0dHJpYnV0byBzZW56YSB2YWxvcmVcbiAgICovXG4gIEBJbnB1dCgpXG4gIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHsgcmV0dXJuIHRoaXMuX2Rpc2FibGVkOyB9XG4gIHNldCBkaXNhYmxlZCh2YWx1ZTogYm9vbGVhbikgeyB0aGlzLl9kaXNhYmxlZCA9IFV0aWwuY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTsgfVxuICBwcml2YXRlIF9kaXNhYmxlZCA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBPcHppb25hbGUuXG4gICAqIEluZGljYSBzZSBpbCBjYW1wbyBpbiBxdWVzdGlvbmUgw6ggZGkgc29sYSBsZXR0dXJhLlxuICAgKiBBY2NldHRhIHVuYSBlc3ByZXNzaW9uZSBib29sZWFuYSBvIHB1w7IgZXNzZXJlIHVzYXRvIGNvbWUgYXR0cmlidXRvIHNlbnphIHZhbG9yZVxuICAgKi9cbiAgQElucHV0KClcbiAgZ2V0IHJlYWRvbmx5KCk6IGJvb2xlYW4geyByZXR1cm4gdGhpcy5fcmVhZG9ubHk7IH1cbiAgc2V0IHJlYWRvbmx5KHZhbHVlOiBib29sZWFuKSB7IHRoaXMuX3JlYWRvbmx5ID0gVXRpbC5jb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpOyB9XG4gIHByaXZhdGUgX3JlYWRvbmx5ID0gZmFsc2U7XG5cbiAgZ2V0IHZhbHVlKCk6IGFueSB7IHJldHVybiB0aGlzLl9pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudC52YWx1ZTsgfVxuICBzZXQgdmFsdWUodmFsdWU6IGFueSkgeyB0aGlzLl9pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudC52YWx1ZSA9IHZhbHVlOyB9XG5cbiAgLyoqXG4gICAqIE9wemlvbmFsZS5cbiAgICogRGlzcG9uaWJpbGUgc29sbyBzZSBpbCB0eXBlIMOoIHNlYXJjaC5cbiAgICogSW5kaWNhIGxhIGxpc3RhIGRpIGVsZW1lbnRpIHJpY2VyY2FiaWxpIHN1IGN1aSBiYXNhcmUgaWwgc2lzdGVtYSBkaSBhdXRvY29tcGxldGFtZW50byBkZWxsYSBpbnB1dFxuICAgKi9cbiAgQElucHV0KClcbiAgZ2V0IGF1dG9Db21wbGV0ZURhdGEoKTogQXJyYXk8c3RyaW5nPiB7IHJldHVybiB0aGlzLl9hdXRvQ29tcGxldGVEYXRhOyB9XG4gIHNldCBhdXRvQ29tcGxldGVEYXRhKHZhbHVlOiBBcnJheTxzdHJpbmc+KSB7IHRoaXMuX2F1dG9Db21wbGV0ZURhdGEgPSB2YWx1ZTsgfVxuICBwcml2YXRlIF9hdXRvQ29tcGxldGVEYXRhOiBBcnJheTxzdHJpbmc+O1xuXG4gIC8qKlxuICAgKiBFdmVudG8gZW1lc3NvIHF1YW5kbyBpbCB2YWxvcmUgZGVsbCdpbnB1dCBjYW1iaWEuXG4gICAqIEdsaSBldmVudGkgZGkgY2hhbmdlIHNvbm8gZW1lc3NpIHNvbHRhbnRvIHF1YW5kbyBpbCB2YWxvcmUgY2FtYmlhIGEgY2F1c2EgZGVsbCdpbnRlcmF6aW9uZSBkZWxsJ3V0ZW50ZVxuICAgKiBjb24gaWwgY2FtcG8gZCdpbnB1dC5cbiAgICovXG4gIEBPdXRwdXQoKVxuICByZWFkb25seSBjaGFuZ2U6IEV2ZW50RW1pdHRlcjxGb3JtSW5wdXRDaGFuZ2U+ID0gbmV3IEV2ZW50RW1pdHRlcjxGb3JtSW5wdXRDaGFuZ2U+KCk7XG5cbiAgZ2V0IGlzTGFiZWxBY3RpdmUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2lzTGFiZWxBY3RpdmU7XG4gIH1cbiAgc2V0IGlzTGFiZWxBY3RpdmUodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9pc0xhYmVsQWN0aXZlID0gVXRpbC5jb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICB9XG4gIHByaXZhdGUgX2lzTGFiZWxBY3RpdmUgPSBmYWxzZTtcblxuXG4gIGdldCBpc1Bhc3N3b3JkTW9kZSgpIHtcbiAgICByZXR1cm4gdGhpcy5faXNQYXNzd29yZE1vZGU7XG4gIH1cbiAgc2V0IGlzUGFzc3dvcmRNb2RlKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5faXNQYXNzd29yZE1vZGUgPSBVdGlsLmNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gIH1cbiAgcHJpdmF0ZSBfaXNQYXNzd29yZE1vZGUgPSBmYWxzZTtcblxuICBnZXQgaXNQYXNzd29yZFZpc2libGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2lzUGFzc3dvcmRWaXNpYmxlO1xuICB9XG4gIHNldCBpc1Bhc3N3b3JkVmlzaWJsZSh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX2lzUGFzc3dvcmRWaXNpYmxlID0gVXRpbC5jb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIHRoaXMuX3R5cGUgPSB0aGlzLl9pc1Bhc3N3b3JkVmlzaWJsZSA/IElOUFVUX1RZUEVTLlRFWFQgOiBJTlBVVF9UWVBFUy5QQVNTV09SRDtcbiAgfVxuICBwcml2YXRlIF9pc1Bhc3N3b3JkVmlzaWJsZSA9IGZhbHNlO1xuXG4gIHByaXZhdGUgX3Nob3dBdXRvY29tcGxldGlvbiA9IGZhbHNlO1xuICBwcml2YXRlIF9pc0luaXRpYWxpemVkID0gZmFsc2U7XG4gIHByaXZhdGUgX2NvbnRyb2xWYWx1ZUFjY2Vzc29yQ2hhbmdlRm46ICh2YWx1ZTogYW55KSA9PiB2b2lkID0gKCkgPT4geyB9O1xuICBwcml2YXRlIF9vblRvdWNoZWQ6ICgpID0+IGFueSA9ICgpID0+IHsgfTtcblxuICBwcml2YXRlIF9lbWl0Q2hhbmdlRXZlbnQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX2lzSW5pdGlhbGl6ZWQpIHtcbiAgICAgIHRoaXMuY2hhbmdlLmVtaXQobmV3IEZvcm1JbnB1dENoYW5nZSh0aGlzLCB0aGlzLnZhbHVlKSk7XG4gICAgfVxuICB9XG5cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICAgIGlmICh0aGlzLnZhbHVlKSB7XG4gICAgICB0aGlzLl9pc0xhYmVsQWN0aXZlID0gdHJ1ZTtcbiAgICB9XG5cbiAgICB0aGlzLm9uQ2hhbmdlKCk7XG4gICAgaWYgKHRoaXMuX2lzSW5pdGlhbGl6ZWQpIHtcbiAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiAodmFsdWU6IGFueSkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMuX2NvbnRyb2xWYWx1ZUFjY2Vzc29yQ2hhbmdlRm4gPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLl9vblRvdWNoZWQgPSBmbjtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX2NoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZikgeyB9XG5cbiAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuX2lzSW5pdGlhbGl6ZWQgPSB0cnVlO1xuICB9XG5cbiAgb25DaGFuZ2UoKSB7XG4gICAgdGhpcy5fZW1pdENoYW5nZUV2ZW50KCk7XG4gICAgdGhpcy5fY29udHJvbFZhbHVlQWNjZXNzb3JDaGFuZ2VGbih0aGlzLnZhbHVlKTtcbiAgfVxuXG4gIG9uSW5wdXQoKSB7XG4gICAgaWYgKHRoaXMuX3R5cGUgPT09IElOUFVUX1RZUEVTLlNFQVJDSCAmJiB0aGlzLmlzQXV0b2NvbXBsZXRhYmxlKCkgJiYgIXRoaXMuX3Nob3dBdXRvY29tcGxldGlvbikge1xuICAgICAgdGhpcy5fc2hvd0F1dG9jb21wbGV0aW9uID0gdHJ1ZTtcbiAgICB9XG5cbiAgICB0aGlzLl9lbWl0Q2hhbmdlRXZlbnQoKTtcbiAgICB0aGlzLl9jb250cm9sVmFsdWVBY2Nlc3NvckNoYW5nZUZuKHRoaXMudmFsdWUpO1xuICB9XG5cbiAgb25Gb2N1cygpIHtcbiAgICB0aGlzLl9pc0xhYmVsQWN0aXZlID0gdHJ1ZTtcbiAgfVxuXG4gIG9uQmx1cigpIHtcbiAgICBjb25zdCBpbnB1dFZhbHVlOiBzdHJpbmcgPSB0aGlzLnZhbHVlO1xuICAgIGlmIChpbnB1dFZhbHVlLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhpcy5faXNMYWJlbEFjdGl2ZSA9IGZhbHNlO1xuICAgICAgaWYgKHRoaXMudHlwZSA9PT0gSU5QVVRfVFlQRVMuTlVNQkVSKSB7XG4gICAgICAgIHRoaXMudmFsdWUgPSAnJztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBub3RlSWQoKSB7XG4gICAgcmV0dXJuIGAke3RoaXMuaWR9LW5vdGVgO1xuICB9XG5cbiAgZ2V0UmVsYXRlZEVudHJpZXMoKSB7XG4gICAgaWYgKHRoaXMudmFsdWUgJiYgdGhpcy5fc2hvd0F1dG9jb21wbGV0aW9uKSB7XG4gICAgICBjb25zdCBsb3dlcmNhc2VWYWx1ZSA9IHRoaXMudmFsdWUudG9Mb3dlckNhc2UoKTtcbiAgICAgIGNvbnN0IGxvd2VyY2FzZURhdGEgPSB0aGlzLl9hdXRvQ29tcGxldGVEYXRhLm1hcChzdHJpbmcgPT4ge1xuICAgICAgICByZXR1cm4geyBvcmlnaW5hbCA6IHN0cmluZywgbG93ZXJjYXNlIDogc3RyaW5nLnRvTG93ZXJDYXNlKCkgfTtcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCByZWxhdGVkRW50cmllcyA9IFtdO1xuICAgICAgbG93ZXJjYXNlRGF0YS5mb3JFYWNoKGxvd2VyY2FzZUVudHJ5ID0+IHtcbiAgICAgICAgaWYgKChsb3dlcmNhc2VFbnRyeS5sb3dlcmNhc2UpLmluY2x1ZGVzKGxvd2VyY2FzZVZhbHVlKSkge1xuICAgICAgICAgIHJlbGF0ZWRFbnRyaWVzLnB1c2gobG93ZXJjYXNlRW50cnkub3JpZ2luYWwpO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgcmV0dXJuIHJlbGF0ZWRFbnRyaWVzO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuICB9XG5cbiAgaXNBdXRvY29tcGxldGFibGUoKSB7XG4gICAgaWYgKHRoaXMuX2F1dG9Db21wbGV0ZURhdGEgJiYgdGhpcy5fdHlwZSA9PT0gSU5QVVRfVFlQRVMuU0VBUkNIKSB7XG4gICAgICByZXR1cm4gdGhpcy5fYXV0b0NvbXBsZXRlRGF0YS5sZW5ndGggPiAwO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgb25FbnRyeUNsaWNrKGVudHJ5KSB7XG4gICAgdGhpcy52YWx1ZSA9IGVudHJ5O1xuICAgIHRoaXMuX3Nob3dBdXRvY29tcGxldGlvbiA9IGZhbHNlO1xuICAgIHRoaXMub25DaGFuZ2UoKTtcbiAgfVxuXG59XG4iXX0=
@@ -1,25 +0,0 @@
1
- /**
2
- * @fileoverview added by tsickle
3
- * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
4
- */
5
- import * as t from 'io-ts';
6
- /** @type {?} */
7
- export var ButtonSize = t.keyof({
8
- lg: null,
9
- sm: null,
10
- xs: null,
11
- });
12
- /** @type {?} */
13
- var LG = 'lg';
14
- /** @type {?} */
15
- var SM = 'sm';
16
- /** @type {?} */
17
- var XS = 'xs';
18
- /** @type {?} */
19
- export var BUTTON_SIZES = {
20
- LG: LG,
21
- SM: SM,
22
- XS: XS,
23
- };
24
-
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQnV0dG9uU2l6ZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2Rlc2lnbi1hbmd1bGFyLWtpdC8iLCJzb3VyY2VzIjpbImxpYi9tb2RlbHMvQnV0dG9uU2l6ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxLQUFLLENBQUMsTUFBTSxPQUFPLENBQUM7O0FBRTNCLFdBQWEsVUFBVSxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDaEMsRUFBRSxFQUFFLElBQUk7SUFDUixFQUFFLEVBQUUsSUFBSTtJQUNSLEVBQUUsRUFBRSxJQUFJO0NBQ1QsQ0FBQyxDQUFDOztBQUVILElBQU0sRUFBRSxHQUFHLElBQUksQ0FBQzs7QUFDaEIsSUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDOztBQUNoQixJQUFNLEVBQUUsR0FBRyxJQUFJLENBQUM7O0FBRWhCLFdBQWEsWUFBWSxHQUFHO0lBQzFCLEVBQUUsRUFBRSxFQUFFO0lBQ04sRUFBRSxFQUFFLEVBQUU7SUFDTixFQUFFLEVBQUUsRUFBRTtDQUNQLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyB0IGZyb20gJ2lvLXRzJztcblxuZXhwb3J0IGNvbnN0IEJ1dHRvblNpemUgPSB0LmtleW9mKHtcbiAgbGc6IG51bGwsXG4gIHNtOiBudWxsLFxuICB4czogbnVsbCxcbn0pO1xuXG5jb25zdCBMRyA9ICdsZyc7XG5jb25zdCBTTSA9ICdzbSc7XG5jb25zdCBYUyA9ICd4cyc7XG5cbmV4cG9ydCBjb25zdCBCVVRUT05fU0laRVMgPSB7XG4gIExHOiBMRyxcbiAgU006IFNNLFxuICBYUzogWFMsXG59O1xuIl19
@@ -1,21 +0,0 @@
1
- /**
2
- * @fileoverview added by tsickle
3
- * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
4
- */
5
- import * as t from 'io-ts';
6
- /** @type {?} */
7
- export var IconPosition = t.keyof({
8
- right: null,
9
- left: null
10
- });
11
- /** @type {?} */
12
- var LEFT = 'left';
13
- /** @type {?} */
14
- var RIGHT = 'right';
15
- /** @type {?} */
16
- export var ICON_POSITIONS = {
17
- LEFT: LEFT,
18
- RIGHT: RIGHT
19
- };
20
-
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSWNvblBvc2l0aW9uLmpzIiwic291cmNlUm9vdCI6Im5nOi8vZGVzaWduLWFuZ3VsYXIta2l0LyIsInNvdXJjZXMiOlsibGliL21vZGVscy9JY29uUG9zaXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sS0FBSyxDQUFDLE1BQU0sT0FBTyxDQUFDOztBQUUzQixXQUFhLFlBQVksR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDO0lBQ2xDLEtBQUssRUFBRSxJQUFJO0lBQ1gsSUFBSSxFQUFFLElBQUk7Q0FDWCxDQUFDLENBQUM7O0FBRUgsSUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDOztBQUNwQixJQUFNLEtBQUssR0FBRyxPQUFPLENBQUM7O0FBRXRCLFdBQWEsY0FBYyxHQUFHO0lBQzVCLElBQUksRUFBRSxJQUFJO0lBQ1YsS0FBSyxFQUFFLEtBQUs7Q0FDYixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgdCBmcm9tICdpby10cyc7XG5cbmV4cG9ydCBjb25zdCBJY29uUG9zaXRpb24gPSB0LmtleW9mKHtcbiAgcmlnaHQ6IG51bGwsXG4gIGxlZnQ6IG51bGxcbn0pO1xuXG5jb25zdCBMRUZUID0gJ2xlZnQnO1xuY29uc3QgUklHSFQgPSAncmlnaHQnO1xuXG5leHBvcnQgY29uc3QgSUNPTl9QT1NJVElPTlMgPSB7XG4gIExFRlQ6IExFRlQsXG4gIFJJR0hUOiBSSUdIVFxufTtcbiJdfQ==