@coolon/angular-ui-powerups 0.0.26 → 0.0.28

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 (287) hide show
  1. package/bundles/coolon-angular-ui-powerups.umd.js +3930 -0
  2. package/bundles/coolon-angular-ui-powerups.umd.js.map +1 -0
  3. package/bundles/coolon-angular-ui-powerups.umd.min.js +2 -0
  4. package/bundles/coolon-angular-ui-powerups.umd.min.js.map +1 -0
  5. package/coolon-angular-ui-powerups.d.ts +30 -0
  6. package/coolon-angular-ui-powerups.metadata.json +1 -0
  7. package/esm2015/coolon-angular-ui-powerups.js +33 -0
  8. package/esm2015/index.js +6 -0
  9. package/esm2015/lib/angular-ui-powerups.module.js +54 -0
  10. package/esm2015/lib/animations/index.js +9 -0
  11. package/esm2015/lib/animations/slideDownAndUpAnimation.js +30 -0
  12. package/esm2015/lib/components/disposable-component.js +14 -0
  13. package/esm2015/lib/components/forms/abstract-input.component.js +183 -0
  14. package/esm2015/lib/components/forms/number-input/number-input.component.js +26 -0
  15. package/esm2015/lib/components/forms/password-input/password-input.component.js +26 -0
  16. package/esm2015/lib/components/forms/select-input/select-input.component.js +60 -0
  17. package/esm2015/lib/components/forms/string-input/string-input.component.js +26 -0
  18. package/esm2015/lib/components/index.js +18 -0
  19. package/esm2015/lib/components/resize-aware.component.js +96 -0
  20. package/esm2015/lib/components/types/bounds.class.js +56 -0
  21. package/esm2015/lib/components/types/dimension.class.js +21 -0
  22. package/esm2015/lib/components/types/point.class.js +36 -0
  23. package/esm2015/lib/directives/command.directive.js +135 -0
  24. package/esm2015/lib/directives/focus-binding.directive.js +179 -0
  25. package/esm2015/lib/directives/index.js +10 -0
  26. package/esm2015/lib/interaction/abstract-activity.js +129 -0
  27. package/esm2015/lib/interaction/activity.js +27 -0
  28. package/esm2015/lib/interaction/alert.js +23 -0
  29. package/esm2015/lib/interaction/components/activity-container/activity-container.component.js +144 -0
  30. package/esm2015/lib/interaction/components/activity-outlet/activity-outlet-context.js +22 -0
  31. package/esm2015/lib/interaction/components/activity-outlet/activity-outlet.component.js +169 -0
  32. package/esm2015/lib/interaction/components/alert-dialog/alert-dialog.component.js +37 -0
  33. package/esm2015/lib/interaction/components/confirmation-dialog/confirmation-dialog.component.js +46 -0
  34. package/esm2015/lib/interaction/confirm.js +17 -0
  35. package/esm2015/lib/interaction/index.js +21 -0
  36. package/esm2015/lib/interaction/interaction-context.js +35 -0
  37. package/esm2015/lib/interaction/interaction.module.js +41 -0
  38. package/esm2015/lib/interaction/result.js +24 -0
  39. package/esm2015/lib/interaction/services/dialog-interaction.service.js +114 -0
  40. package/esm2015/lib/place/abstract-place-component.js +59 -0
  41. package/esm2015/lib/place/components/busy-overlay/busy-overlay.component.js +44 -0
  42. package/esm2015/lib/place/components/empty-state/empty-state.component.js +28 -0
  43. package/esm2015/lib/place/components/place-outlet/place-outlet.component.js +67 -0
  44. package/esm2015/lib/place/components/place-outlet/route-animations.js +35 -0
  45. package/esm2015/lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component.js +50 -0
  46. package/esm2015/lib/place/guards/leave-place.guard.js +52 -0
  47. package/esm2015/lib/place/guards/place-route.guard.js +74 -0
  48. package/esm2015/lib/place/index.js +27 -0
  49. package/esm2015/lib/place/place-component.js +17 -0
  50. package/esm2015/lib/place/place.decorator.js +72 -0
  51. package/esm2015/lib/place/place.module.js +49 -0
  52. package/esm2015/lib/place/place.service.js +61 -0
  53. package/esm2015/lib/place/route/json-types.js +13 -0
  54. package/esm2015/lib/place/route/parameter-decorators.js +182 -0
  55. package/esm2015/lib/place/route/parameter-definition.class.js +24 -0
  56. package/esm2015/lib/place/route/parameter-sanitiser.js +17 -0
  57. package/esm2015/lib/place/route/parameter-type.js +43 -0
  58. package/esm2015/lib/place/route/route-parameter-bindings.js +294 -0
  59. package/esm2015/lib/place/route/route-parameter-sanitiser.js +280 -0
  60. package/esm2015/public_api.js +11 -0
  61. package/esm5/coolon-angular-ui-powerups.js +33 -0
  62. package/esm5/index.js +6 -0
  63. package/esm5/lib/angular-ui-powerups.module.js +58 -0
  64. package/esm5/lib/animations/index.js +9 -0
  65. package/esm5/lib/animations/slideDownAndUpAnimation.js +30 -0
  66. package/esm5/lib/components/disposable-component.js +24 -0
  67. package/esm5/lib/components/forms/abstract-input.component.js +232 -0
  68. package/esm5/lib/components/forms/number-input/number-input.component.js +33 -0
  69. package/esm5/lib/components/forms/password-input/password-input.component.js +33 -0
  70. package/esm5/lib/components/forms/select-input/select-input.component.js +67 -0
  71. package/esm5/lib/components/forms/string-input/string-input.component.js +33 -0
  72. package/esm5/lib/components/index.js +18 -0
  73. package/esm5/lib/components/resize-aware.component.js +124 -0
  74. package/esm5/lib/components/types/bounds.class.js +59 -0
  75. package/esm5/lib/components/types/dimension.class.js +19 -0
  76. package/esm5/lib/components/types/point.class.js +43 -0
  77. package/esm5/lib/directives/command.directive.js +155 -0
  78. package/esm5/lib/directives/focus-binding.directive.js +231 -0
  79. package/esm5/lib/directives/index.js +10 -0
  80. package/esm5/lib/interaction/abstract-activity.js +173 -0
  81. package/esm5/lib/interaction/activity.js +27 -0
  82. package/esm5/lib/interaction/alert.js +23 -0
  83. package/esm5/lib/interaction/components/activity-container/activity-container.component.js +181 -0
  84. package/esm5/lib/interaction/components/activity-outlet/activity-outlet-context.js +22 -0
  85. package/esm5/lib/interaction/components/activity-outlet/activity-outlet.component.js +206 -0
  86. package/esm5/lib/interaction/components/alert-dialog/alert-dialog.component.js +42 -0
  87. package/esm5/lib/interaction/components/confirmation-dialog/confirmation-dialog.component.js +54 -0
  88. package/esm5/lib/interaction/confirm.js +17 -0
  89. package/esm5/lib/interaction/index.js +21 -0
  90. package/esm5/lib/interaction/interaction-context.js +45 -0
  91. package/esm5/lib/interaction/interaction.module.js +45 -0
  92. package/esm5/lib/interaction/result.js +24 -0
  93. package/esm5/lib/interaction/services/dialog-interaction.service.js +140 -0
  94. package/esm5/lib/place/abstract-place-component.js +66 -0
  95. package/esm5/lib/place/components/busy-overlay/busy-overlay.component.js +49 -0
  96. package/esm5/lib/place/components/empty-state/empty-state.component.js +29 -0
  97. package/esm5/lib/place/components/place-outlet/place-outlet.component.js +81 -0
  98. package/esm5/lib/place/components/place-outlet/route-animations.js +35 -0
  99. package/esm5/lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component.js +57 -0
  100. package/esm5/lib/place/guards/leave-place.guard.js +57 -0
  101. package/esm5/lib/place/guards/place-route.guard.js +78 -0
  102. package/esm5/lib/place/index.js +27 -0
  103. package/esm5/lib/place/place-component.js +17 -0
  104. package/esm5/lib/place/place.decorator.js +69 -0
  105. package/esm5/lib/place/place.module.js +53 -0
  106. package/esm5/lib/place/place.service.js +75 -0
  107. package/esm5/lib/place/route/json-types.js +13 -0
  108. package/esm5/lib/place/route/parameter-decorators.js +182 -0
  109. package/esm5/lib/place/route/parameter-definition.class.js +24 -0
  110. package/esm5/lib/place/route/parameter-sanitiser.js +17 -0
  111. package/esm5/lib/place/route/parameter-type.js +65 -0
  112. package/esm5/lib/place/route/route-parameter-bindings.js +339 -0
  113. package/esm5/lib/place/route/route-parameter-sanitiser.js +395 -0
  114. package/esm5/public_api.js +11 -0
  115. package/fesm2015/coolon-angular-ui-powerups.js +3149 -0
  116. package/fesm2015/coolon-angular-ui-powerups.js.map +1 -0
  117. package/fesm5/coolon-angular-ui-powerups.js +3703 -0
  118. package/fesm5/coolon-angular-ui-powerups.js.map +1 -0
  119. package/lib/angular-ui-powerups.module.d.ts +2 -0
  120. package/{src/lib/animations/index.ts → lib/animations/index.d.ts} +0 -1
  121. package/lib/animations/slideDownAndUpAnimation.d.ts +5 -0
  122. package/lib/components/disposable-component.d.ts +5 -0
  123. package/lib/components/forms/abstract-input.component.d.ts +35 -0
  124. package/lib/components/forms/number-input/number-input.component.d.ts +6 -0
  125. package/lib/components/forms/password-input/password-input.component.d.ts +6 -0
  126. package/lib/components/forms/select-input/select-input.component.d.ts +11 -0
  127. package/lib/components/forms/string-input/string-input.component.d.ts +6 -0
  128. package/{src/lib/components/index.ts → lib/components/index.d.ts} +0 -1
  129. package/lib/components/resize-aware.component.d.ts +22 -0
  130. package/lib/components/types/bounds.class.d.ts +16 -0
  131. package/lib/components/types/dimension.class.d.ts +5 -0
  132. package/lib/components/types/point.class.d.ts +10 -0
  133. package/lib/directives/command.directive.d.ts +14 -0
  134. package/lib/directives/focus-binding.directive.d.ts +22 -0
  135. package/{src/lib/directives/index.ts → lib/directives/index.d.ts} +0 -1
  136. package/lib/interaction/abstract-activity.d.ts +17 -0
  137. package/lib/interaction/activity.d.ts +11 -0
  138. package/lib/interaction/alert.d.ts +5 -0
  139. package/lib/interaction/components/activity-container/activity-container.component.d.ts +32 -0
  140. package/{src/lib/interaction/components/activity-outlet/activity-outlet-context.ts → lib/interaction/components/activity-outlet/activity-outlet-context.d.ts} +5 -7
  141. package/lib/interaction/components/activity-outlet/activity-outlet.component.d.ts +30 -0
  142. package/lib/interaction/components/alert-dialog/alert-dialog.component.d.ts +8 -0
  143. package/lib/interaction/components/confirmation-dialog/confirmation-dialog.component.d.ts +9 -0
  144. package/{src/lib/interaction/confirm.ts → lib/interaction/confirm.d.ts} +2 -3
  145. package/{src/lib/interaction/index.ts → lib/interaction/index.d.ts} +0 -1
  146. package/lib/interaction/interaction-context.d.ts +11 -0
  147. package/lib/interaction/interaction.module.d.ts +2 -0
  148. package/lib/interaction/result.d.ts +8 -0
  149. package/lib/interaction/services/dialog-interaction.service.d.ts +14 -0
  150. package/lib/place/abstract-place-component.d.ts +13 -0
  151. package/lib/place/components/busy-overlay/busy-overlay.component.d.ts +8 -0
  152. package/lib/place/components/empty-state/empty-state.component.d.ts +5 -0
  153. package/lib/place/components/place-outlet/place-outlet.component.d.ts +13 -0
  154. package/lib/place/components/place-outlet/route-animations.d.ts +1 -0
  155. package/lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component.d.ts +11 -0
  156. package/lib/place/guards/leave-place.guard.d.ts +10 -0
  157. package/lib/place/guards/place-route.guard.d.ts +9 -0
  158. package/{src/lib/place/index.ts → lib/place/index.d.ts} +0 -1
  159. package/lib/place/place-component.d.ts +5 -0
  160. package/lib/place/place.decorator.d.ts +20 -0
  161. package/lib/place/place.module.d.ts +2 -0
  162. package/lib/place/place.service.d.ts +8 -0
  163. package/lib/place/route/json-types.d.ts +7 -0
  164. package/lib/place/route/parameter-decorators.d.ts +28 -0
  165. package/lib/place/route/parameter-definition.class.d.ts +11 -0
  166. package/{src/lib/place/route/parameter-sanitiser.ts → lib/place/route/parameter-sanitiser.d.ts} +1 -1
  167. package/lib/place/route/parameter-type.d.ts +16 -0
  168. package/lib/place/route/route-parameter-bindings.d.ts +18 -0
  169. package/lib/place/route/route-parameter-sanitiser.d.ts +42 -0
  170. package/package.json +14 -12
  171. package/schematics/ng-add/index.d.ts +2 -0
  172. package/schematics/ng-add/index.js +12 -0
  173. package/schematics/ng-add/index.js.map +1 -0
  174. package/schematics/place-routes/index.d.ts +3 -0
  175. package/schematics/place-routes/index.js +114 -0
  176. package/schematics/place-routes/index.js.map +1 -0
  177. package/schematics/place-routes/place-def.d.ts +37 -0
  178. package/schematics/place-routes/place-def.js +108 -0
  179. package/schematics/place-routes/place-def.js.map +1 -0
  180. package/schematics/place-routes/scanner.d.ts +38 -0
  181. package/schematics/place-routes/scanner.js +169 -0
  182. package/schematics/place-routes/scanner.js.map +1 -0
  183. package/schematics/place-routes/schema.d.ts +7 -0
  184. package/schematics/place-routes/schema.js +3 -0
  185. package/schematics/place-routes/schema.js.map +1 -0
  186. package/schematics/place-routes/templates/{services/place-router.service.ts.template → place-router.ts.template} +13 -18
  187. package/CHANGELOG.md +0 -7
  188. package/jest.config.js +0 -9
  189. package/ng-package.json +0 -13
  190. package/schematics/ng-add/index.ts +0 -10
  191. package/schematics/place-routes/index.ts +0 -152
  192. package/schematics/place-routes/place-def.ts +0 -93
  193. package/schematics/place-routes/scanner.ts +0 -145
  194. package/schematics/place-routes/schema.ts +0 -7
  195. package/src/lib/angular-ui-powerups.module.spec.ts +0 -14
  196. package/src/lib/angular-ui-powerups.module.ts +0 -49
  197. package/src/lib/animations/slideDownAndUpAnimation.ts +0 -39
  198. package/src/lib/components/disposable-component.ts +0 -9
  199. package/src/lib/components/forms/abstract-input.component.ts +0 -108
  200. package/src/lib/components/forms/number-input/number-input.component.html +0 -15
  201. package/src/lib/components/forms/number-input/number-input.component.scss +0 -3
  202. package/src/lib/components/forms/number-input/number-input.component.spec.ts +0 -25
  203. package/src/lib/components/forms/number-input/number-input.component.ts +0 -19
  204. package/src/lib/components/forms/password-input/password-input.component.html +0 -16
  205. package/src/lib/components/forms/password-input/password-input.component.scss +0 -3
  206. package/src/lib/components/forms/password-input/password-input.component.spec.ts +0 -25
  207. package/src/lib/components/forms/password-input/password-input.component.ts +0 -18
  208. package/src/lib/components/forms/scss/mixins.scss +0 -16
  209. package/src/lib/components/forms/select-input/select-input.component.html +0 -16
  210. package/src/lib/components/forms/select-input/select-input.component.scss +0 -7
  211. package/src/lib/components/forms/select-input/select-input.component.spec.ts +0 -25
  212. package/src/lib/components/forms/select-input/select-input.component.ts +0 -31
  213. package/src/lib/components/forms/string-input/string-input.component.html +0 -15
  214. package/src/lib/components/forms/string-input/string-input.component.scss +0 -3
  215. package/src/lib/components/forms/string-input/string-input.component.spec.ts +0 -25
  216. package/src/lib/components/forms/string-input/string-input.component.ts +0 -18
  217. package/src/lib/components/resize-aware.component.ts +0 -52
  218. package/src/lib/components/types/bounds.class.ts +0 -25
  219. package/src/lib/components/types/dimension.class.ts +0 -3
  220. package/src/lib/components/types/point.class.ts +0 -13
  221. package/src/lib/directives/command.directive.spec.ts +0 -73
  222. package/src/lib/directives/command.directive.ts +0 -81
  223. package/src/lib/directives/focus-binding.directive.spec.ts +0 -8
  224. package/src/lib/directives/focus-binding.directive.ts +0 -108
  225. package/src/lib/interaction/abstract-activity.ts +0 -57
  226. package/src/lib/interaction/activity.ts +0 -17
  227. package/src/lib/interaction/alert.ts +0 -6
  228. package/src/lib/interaction/components/activity-container/activity-container.component.html +0 -8
  229. package/src/lib/interaction/components/activity-container/activity-container.component.scss +0 -3
  230. package/src/lib/interaction/components/activity-container/activity-container.component.spec.ts +0 -25
  231. package/src/lib/interaction/components/activity-container/activity-container.component.ts +0 -93
  232. package/src/lib/interaction/components/activity-outlet/activity-outlet.component.scss +0 -3
  233. package/src/lib/interaction/components/activity-outlet/activity-outlet.component.spec.ts +0 -25
  234. package/src/lib/interaction/components/activity-outlet/activity-outlet.component.ts +0 -96
  235. package/src/lib/interaction/components/alert-dialog/alert-dialog.component.html +0 -7
  236. package/src/lib/interaction/components/alert-dialog/alert-dialog.component.scss +0 -7
  237. package/src/lib/interaction/components/alert-dialog/alert-dialog.component.spec.ts +0 -25
  238. package/src/lib/interaction/components/alert-dialog/alert-dialog.component.ts +0 -20
  239. package/src/lib/interaction/components/confirmation-dialog/confirmation-dialog.component.html +0 -9
  240. package/src/lib/interaction/components/confirmation-dialog/confirmation-dialog.component.scss +0 -8
  241. package/src/lib/interaction/components/confirmation-dialog/confirmation-dialog.component.spec.ts +0 -25
  242. package/src/lib/interaction/components/confirmation-dialog/confirmation-dialog.component.ts +0 -26
  243. package/src/lib/interaction/interaction-context.ts +0 -16
  244. package/src/lib/interaction/interaction.module.ts +0 -35
  245. package/src/lib/interaction/result.ts +0 -16
  246. package/src/lib/interaction/services/dialog-interaction.service.scss +0 -11
  247. package/src/lib/interaction/services/dialog-interaction.service.spec.ts +0 -12
  248. package/src/lib/interaction/services/dialog-interaction.service.ts +0 -63
  249. package/src/lib/place/abstract-place-component.ts +0 -33
  250. package/src/lib/place/components/busy-overlay/busy-overlay.component.html +0 -4
  251. package/src/lib/place/components/busy-overlay/busy-overlay.component.scss +0 -27
  252. package/src/lib/place/components/busy-overlay/busy-overlay.component.spec.ts +0 -25
  253. package/src/lib/place/components/busy-overlay/busy-overlay.component.ts +0 -23
  254. package/src/lib/place/components/empty-state/empty-state.component.scss +0 -15
  255. package/src/lib/place/components/empty-state/empty-state.component.spec.ts +0 -25
  256. package/src/lib/place/components/empty-state/empty-state.component.ts +0 -19
  257. package/src/lib/place/components/place-outlet/place-outlet.component.html +0 -7
  258. package/src/lib/place/components/place-outlet/place-outlet.component.scss +0 -12
  259. package/src/lib/place/components/place-outlet/place-outlet.component.spec.ts +0 -25
  260. package/src/lib/place/components/place-outlet/place-outlet.component.ts +0 -37
  261. package/src/lib/place/components/place-outlet/route-animations.ts +0 -30
  262. package/src/lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component.html +0 -7
  263. package/src/lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component.scss +0 -100
  264. package/src/lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component.spec.ts +0 -25
  265. package/src/lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component.ts +0 -30
  266. package/src/lib/place/guards/leave-place.guard.spec.ts +0 -15
  267. package/src/lib/place/guards/leave-place.guard.ts +0 -18
  268. package/src/lib/place/guards/place-route.guard.ts +0 -37
  269. package/src/lib/place/place-component.ts +0 -6
  270. package/src/lib/place/place.decorator.ts +0 -40
  271. package/src/lib/place/place.module.ts +0 -44
  272. package/src/lib/place/place.service.spec.ts +0 -12
  273. package/src/lib/place/place.service.ts +0 -29
  274. package/src/lib/place/route/json-types.ts +0 -5
  275. package/src/lib/place/route/parameter-decorators.ts +0 -99
  276. package/src/lib/place/route/parameter-definition.class.ts +0 -12
  277. package/src/lib/place/route/parameter-type.ts +0 -31
  278. package/src/lib/place/route/route-parameter-bindings.ts +0 -140
  279. package/src/lib/place/route/route-parameter-sanitiser.ts +0 -135
  280. package/src/test-setup.ts +0 -1
  281. package/tsconfig.json +0 -7
  282. package/tsconfig.lib.json +0 -20
  283. package/tsconfig.schematics.json +0 -35
  284. package/tsconfig.spec.json +0 -10
  285. package/tslint.json +0 -7
  286. /package/{src/index.ts → index.d.ts} +0 -0
  287. /package/{src/public_api.ts → public_api.d.ts} +0 -0
@@ -0,0 +1,30 @@
1
+ /**
2
+ * @fileoverview added by tsickle
3
+ * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
+ */
5
+ import { animate, style, transition, trigger } from '@angular/animations';
6
+ import { OptionsHelper } from '@coolon/pectin';
7
+ /** @type {?} */
8
+ const defaultHiddenStyleDef = style({
9
+ opacity: 0,
10
+ 'height': '0',
11
+ paddingTop: '0',
12
+ paddingBottom: '0'
13
+ });
14
+ /**
15
+ * @param {?} triggerName
16
+ * @param {?=} options
17
+ * @return {?}
18
+ */
19
+ export function slideDownAndUpAnimation(triggerName, options) {
20
+ // SEE to fix this: https://github.com/angular/angular/issues/15587#issuecomment-351510501
21
+ /** @type {?} */
22
+ const duration = OptionsHelper.get(options).getOptional('duration', '100ms');
23
+ /** @type {?} */
24
+ const hiddenStyleDef = OptionsHelper.get(options).getOptional('hiddenStyleDef', defaultHiddenStyleDef);
25
+ return trigger(triggerName, [
26
+ transition(':enter', [hiddenStyleDef, animate('100ms')]),
27
+ transition(':leave', [animate('100ms', hiddenStyleDef)])
28
+ ]);
29
+ }
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpZGVEb3duQW5kVXBBbmltYXRpb24uanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AY29vbG9uL2FuZ3VsYXItdWktcG93ZXJ1cHMvIiwic291cmNlcyI6WyJsaWIvYW5pbWF0aW9ucy9zbGlkZURvd25BbmRVcEFuaW1hdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLE9BQU8sRUFBMEIsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNsRyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O01BRXpDLHFCQUFxQixHQUFHLEtBQUssQ0FBQztJQUNsQyxPQUFPLEVBQUUsQ0FBQztJQUNWLFFBQVEsRUFBRSxHQUFHO0lBQ2IsVUFBVSxFQUFFLEdBQUc7SUFDZixhQUFhLEVBQUUsR0FBRztDQUNuQixDQUFDOzs7Ozs7QUFFRixNQUFNLFVBQVUsdUJBQXVCLENBQUMsV0FBbUIsRUFBRSxPQUc1RDs7O1VBRU8sUUFBUSxHQUFHLGFBQWEsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsV0FBVyxDQUFDLFVBQVUsRUFBRSxPQUFPLENBQUM7O1VBQ3RFLGNBQWMsR0FBRyxhQUFhLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFdBQVcsQ0FBQyxnQkFBZ0IsRUFBRSxxQkFBcUIsQ0FBQztJQUN0RyxPQUFPLE9BQU8sQ0FBQyxXQUFXLEVBQUU7UUFDMUIsVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDLGNBQWMsRUFBRSxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUN4RCxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxjQUFjLENBQUMsQ0FBQyxDQUFDO0tBQ3pELENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhbmltYXRlLCBBbmltYXRpb25TdHlsZU1ldGFkYXRhLCBzdHlsZSwgdHJhbnNpdGlvbiwgdHJpZ2dlciB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHsgT3B0aW9uc0hlbHBlciB9IGZyb20gJ0Bjb29sb24vcGVjdGluJztcblxuY29uc3QgZGVmYXVsdEhpZGRlblN0eWxlRGVmID0gc3R5bGUoe1xuICBvcGFjaXR5OiAwLFxuICAnaGVpZ2h0JzogJzAnLFxuICBwYWRkaW5nVG9wOiAnMCcsXG4gIHBhZGRpbmdCb3R0b206ICcwJ1xufSk7XG5cbmV4cG9ydCBmdW5jdGlvbiBzbGlkZURvd25BbmRVcEFuaW1hdGlvbih0cmlnZ2VyTmFtZTogc3RyaW5nLCBvcHRpb25zPzoge1xuICBkdXJhdGlvbj86IHN0cmluZztcbiAgaGlkZGVuU3R5bGVEZWY/OiBBbmltYXRpb25TdHlsZU1ldGFkYXRhO1xufSkge1xuICAvLyBTRUUgdG8gZml4IHRoaXM6IGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2FuZ3VsYXIvaXNzdWVzLzE1NTg3I2lzc3VlY29tbWVudC0zNTE1MTA1MDFcbiAgY29uc3QgZHVyYXRpb24gPSBPcHRpb25zSGVscGVyLmdldChvcHRpb25zKS5nZXRPcHRpb25hbCgnZHVyYXRpb24nLCAnMTAwbXMnKTtcbiAgY29uc3QgaGlkZGVuU3R5bGVEZWYgPSBPcHRpb25zSGVscGVyLmdldChvcHRpb25zKS5nZXRPcHRpb25hbCgnaGlkZGVuU3R5bGVEZWYnLCBkZWZhdWx0SGlkZGVuU3R5bGVEZWYpO1xuICByZXR1cm4gdHJpZ2dlcih0cmlnZ2VyTmFtZSwgW1xuICAgIHRyYW5zaXRpb24oJzplbnRlcicsIFtoaWRkZW5TdHlsZURlZiwgYW5pbWF0ZSgnMTAwbXMnKV0pLFxuICAgIHRyYW5zaXRpb24oJzpsZWF2ZScsIFthbmltYXRlKCcxMDBtcycsIGhpZGRlblN0eWxlRGVmKV0pXG4gIF0pO1xufVxuXG4vLyBleHBvcnQgZnVuY3Rpb24gc2xpZGVPdXRMZWZ0QW5pbWF0aW9uKHRyaWdnZXJOYW1lOiBzdHJpbmcsIGR1cmF0aW9uOnN0cmluZyA9IFwiMTAwbXNcIikge1xuLy8gICByZXR1cm4gdHJpZ2dlcih0cmlnZ2VyTmFtZSwgW1xuLy8gICAgIHN0YXRlKCd0cnVlJywgc3R5bGUoXG4vLyAgICAgICB7XG4vLyAgICAgICAgICd3aWR0aCc6ICcqJyxcbi8vICAgICAgICAgJ292ZXJmbG93JzogJ2hpZGRlbicsXG4vLyAgICAgICAgICdvcGFjaXR5JzogJzEnXG4vLyAgICAgICB9KSksXG4vLyAgICAgc3RhdGUoJ2ZhbHNlJywgc3R5bGUoe1xuLy8gICAgICAgJ3dpZHRoJzogJzBweCcsXG4vLyAgICAgICAnb3ZlcmZsb3cnOiAnaGlkZGVuJyxcbi8vICAgICAgICdvcGFjaXR5JzogJzAnXG4vLyAgICAgfSkpLFxuLy8gICAgIHRyYW5zaXRpb24oJyogPT4gKicsIFthbmltYXRlKGR1cmF0aW9uKV0pXG4vLyAgIF0pO1xuLy8gfVxuIl19
@@ -0,0 +1,14 @@
1
+ /**
2
+ * @fileoverview added by tsickle
3
+ * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
+ */
5
+ import { GarbageCollector } from '@coolon/pectin';
6
+ export class DisposableComponent extends GarbageCollector {
7
+ /**
8
+ * @return {?}
9
+ */
10
+ ngOnDestroy() {
11
+ this.dispose();
12
+ }
13
+ }
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzcG9zYWJsZS1jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AY29vbG9uL2FuZ3VsYXItdWktcG93ZXJ1cHMvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9kaXNwb3NhYmxlLWNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQ0EsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFaEQsTUFBTSxPQUFPLG1CQUFvQixTQUFRLGdCQUFnQjs7OztJQUVyRCxXQUFXO1FBQ1AsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ25CLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7T25EZXN0cm95fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7R2FyYmFnZUNvbGxlY3Rvcn0gZnJvbSAnQGNvb2xvbi9wZWN0aW4nO1xuXG5leHBvcnQgY2xhc3MgRGlzcG9zYWJsZUNvbXBvbmVudCBleHRlbmRzIEdhcmJhZ2VDb2xsZWN0b3IgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGlzcG9zZSgpO1xuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,183 @@
1
+ /**
2
+ * @fileoverview added by tsickle
3
+ * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
+ */
5
+ import * as tslib_1 from "tslib";
6
+ /* tslint:disable:no-input-rename */
7
+ import { EventEmitter, HostListener, Input, Output } from '@angular/core';
8
+ import { Command, DelegatingFormValueModel, UseDelegate, ValueModel } from '@coolon/pectin';
9
+ import { DisposableComponent } from '../disposable-component';
10
+ /**
11
+ * @abstract
12
+ * @template T
13
+ */
14
+ export class AbstractInputComponent extends DisposableComponent {
15
+ constructor() {
16
+ super();
17
+ this.valueModel = new DelegatingFormValueModel();
18
+ // TODO: fix this.
19
+ // tslint:disable-next-line:no-output-native
20
+ this.focus = new EventEmitter();
21
+ // tslint:disable-next-line:no-output-native
22
+ this.blur = new EventEmitter();
23
+ // tslint:disable-next-line:no-output-native
24
+ this.enterKey = new EventEmitter();
25
+ // tslint:disable-next-line:no-output-native
26
+ this.escapeKey = new EventEmitter();
27
+ /** @type {?} */
28
+ const self = this;
29
+ this.errorStateMatcher = {
30
+ /**
31
+ * @param {?} control
32
+ * @param {?} form
33
+ * @return {?}
34
+ */
35
+ isErrorState(control, form) {
36
+ return self.hasErrors();
37
+ }
38
+ };
39
+ }
40
+ /**
41
+ * @param {?} model
42
+ * @return {?}
43
+ */
44
+ set userValueModel(model) {
45
+ this.valueModel.setDelegate(model);
46
+ }
47
+ /**
48
+ * @return {?}
49
+ */
50
+ notifyClick() {
51
+ this.safelyInvoke(this.clickCommand);
52
+ }
53
+ /**
54
+ * @return {?}
55
+ */
56
+ notifyFocusIn() {
57
+ this.safelyInvoke(this.focusCommand);
58
+ this.focus.emit();
59
+ }
60
+ /**
61
+ * @return {?}
62
+ */
63
+ notifyFocusOut() {
64
+ this.safelyInvoke(this.blurCommand);
65
+ this.blur.emit();
66
+ }
67
+ /**
68
+ * @return {?}
69
+ */
70
+ notifyEnterKey() {
71
+ this.safelyInvoke(this.enterCommand);
72
+ this.enterKey.emit();
73
+ }
74
+ /**
75
+ * @return {?}
76
+ */
77
+ notifyEscapeKey() {
78
+ this.safelyInvoke(this.escapeCommand);
79
+ this.escapeKey.emit();
80
+ }
81
+ /**
82
+ * @protected
83
+ * @param {?} command
84
+ * @return {?}
85
+ */
86
+ safelyInvoke(command) {
87
+ if (command && command.enabled.value) {
88
+ command.execute();
89
+ }
90
+ }
91
+ /**
92
+ * @return {?}
93
+ */
94
+ ngOnInit() {
95
+ }
96
+ /**
97
+ * @return {?}
98
+ */
99
+ isEnabled() {
100
+ return this.enabled.value;
101
+ }
102
+ /**
103
+ * @return {?}
104
+ */
105
+ get enabled() {
106
+ return this.valueModel.enabled;
107
+ }
108
+ /**
109
+ * @return {?}
110
+ */
111
+ hasErrors() {
112
+ return !this.errorList.query().isEmpty();
113
+ }
114
+ /**
115
+ * @return {?}
116
+ */
117
+ get errorList() {
118
+ return this.valueModel.errorList;
119
+ }
120
+ /**
121
+ * @return {?}
122
+ */
123
+ get firstError() {
124
+ return this.hasErrors() ? this.errorList.value[0] : null;
125
+ }
126
+ }
127
+ AbstractInputComponent.propDecorators = {
128
+ userValueModel: [{ type: Input, args: ['valueModel',] }],
129
+ label: [{ type: Input }],
130
+ floatLabel: [{ type: Input }],
131
+ hint: [{ type: Input }],
132
+ placeholder: [{ type: Input }],
133
+ focusCommand: [{ type: Input, args: ['command.focus',] }],
134
+ blurCommand: [{ type: Input, args: ['command.blur',] }],
135
+ enterCommand: [{ type: Input, args: ['command.enter',] }],
136
+ escapeCommand: [{ type: Input, args: ['command.escape',] }],
137
+ clickCommand: [{ type: Input, args: ['command.click',] }],
138
+ focus: [{ type: Output }],
139
+ blur: [{ type: Output }],
140
+ enterKey: [{ type: Output }],
141
+ escapeKey: [{ type: Output }],
142
+ notifyClick: [{ type: HostListener, args: ['click',] }],
143
+ notifyFocusIn: [{ type: HostListener, args: ['focusin',] }],
144
+ notifyFocusOut: [{ type: HostListener, args: ['focusout',] }]
145
+ };
146
+ tslib_1.__decorate([
147
+ UseDelegate(),
148
+ tslib_1.__metadata("design:type", ValueModel),
149
+ tslib_1.__metadata("design:paramtypes", [ValueModel])
150
+ ], AbstractInputComponent.prototype, "userValueModel", null);
151
+ if (false) {
152
+ /** @type {?} */
153
+ AbstractInputComponent.prototype.valueModel;
154
+ /** @type {?} */
155
+ AbstractInputComponent.prototype.label;
156
+ /** @type {?} */
157
+ AbstractInputComponent.prototype.floatLabel;
158
+ /** @type {?} */
159
+ AbstractInputComponent.prototype.hint;
160
+ /** @type {?} */
161
+ AbstractInputComponent.prototype.placeholder;
162
+ /** @type {?} */
163
+ AbstractInputComponent.prototype.focusCommand;
164
+ /** @type {?} */
165
+ AbstractInputComponent.prototype.blurCommand;
166
+ /** @type {?} */
167
+ AbstractInputComponent.prototype.enterCommand;
168
+ /** @type {?} */
169
+ AbstractInputComponent.prototype.escapeCommand;
170
+ /** @type {?} */
171
+ AbstractInputComponent.prototype.clickCommand;
172
+ /** @type {?} */
173
+ AbstractInputComponent.prototype.focus;
174
+ /** @type {?} */
175
+ AbstractInputComponent.prototype.blur;
176
+ /** @type {?} */
177
+ AbstractInputComponent.prototype.enterKey;
178
+ /** @type {?} */
179
+ AbstractInputComponent.prototype.escapeKey;
180
+ /** @type {?} */
181
+ AbstractInputComponent.prototype.errorStateMatcher;
182
+ }
183
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGNvb2xvbi9hbmd1bGFyLXVpLXBvd2VydXBzLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvZm9ybXMvYWJzdHJhY3QtaW5wdXQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUNBLE9BQU8sRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHbEYsT0FBTyxFQUFFLE9BQU8sRUFBRSx3QkFBd0IsRUFBYSxXQUFXLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkcsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7Ozs7O0FBRTlELE1BQU0sT0FBZ0Isc0JBQTBCLFNBQVEsbUJBQW1CO0lBa0V6RTtRQUNFLEtBQUssRUFBRSxDQUFDO1FBakVELGVBQVUsR0FBRyxJQUFJLHdCQUF3QixFQUFLLENBQUM7OztRQW9COUMsVUFBSyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7O1FBRTNCLFNBQUksR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDOztRQUUxQixhQUFRLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQzs7UUFFOUIsY0FBUyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7O2NBd0NqQyxJQUFJLEdBQUcsSUFBSTtRQUNqQixJQUFJLENBQUMsaUJBQWlCLEdBQUc7Ozs7OztZQUN2QixZQUFZLENBQUMsT0FBMkIsRUFBRSxJQUF3QztnQkFDaEYsT0FBTyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDMUIsQ0FBQztTQUNGLENBQUM7SUFDSixDQUFDOzs7OztJQXJFRCxJQUFJLGNBQWMsQ0FBQyxLQUFvQjtRQUNyQyxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNyQyxDQUFDOzs7O0lBMEJELFdBQVc7UUFDVCxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUN2QyxDQUFDOzs7O0lBR0QsYUFBYTtRQUNYLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDcEIsQ0FBQzs7OztJQUdELGNBQWM7UUFDWixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNwQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ25CLENBQUM7Ozs7SUFHRCxjQUFjO1FBQ1osSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDckMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN2QixDQUFDOzs7O0lBRUQsZUFBZTtRQUNiLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDeEIsQ0FBQzs7Ozs7O0lBRVMsWUFBWSxDQUFDLE9BQXFCO1FBQzFDLElBQUksT0FBTyxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFO1lBQ3BDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztTQUNuQjtJQUNILENBQUM7Ozs7SUFZRCxRQUFRO0lBQ1IsQ0FBQzs7OztJQUVELFNBQVM7UUFDUCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO0lBQzVCLENBQUM7Ozs7SUFFRCxJQUFJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDO0lBQ2pDLENBQUM7Ozs7SUFFRCxTQUFTO1FBQ1AsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDM0MsQ0FBQzs7OztJQUVELElBQUksU0FBUztRQUNYLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUM7SUFDbkMsQ0FBQzs7OztJQUVELElBQUksVUFBVTtRQUNaLE9BQU8sSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQzNELENBQUM7Ozs2QkE3RkEsS0FBSyxTQUFDLFlBQVk7b0JBS2xCLEtBQUs7eUJBQ0wsS0FBSzttQkFDTCxLQUFLOzBCQUNMLEtBQUs7MkJBRUwsS0FBSyxTQUFDLGVBQWU7MEJBQ3JCLEtBQUssU0FBQyxjQUFjOzJCQUNwQixLQUFLLFNBQUMsZUFBZTs0QkFDckIsS0FBSyxTQUFDLGdCQUFnQjsyQkFDdEIsS0FBSyxTQUFDLGVBQWU7b0JBSXJCLE1BQU07bUJBRU4sTUFBTTt1QkFFTixNQUFNO3dCQUVOLE1BQU07MEJBSU4sWUFBWSxTQUFDLE9BQU87NEJBS3BCLFlBQVksU0FBQyxTQUFTOzZCQU10QixZQUFZLFNBQUMsVUFBVTs7QUF0Q3hCO0lBRHNCLFdBQVcsRUFBRTtzQ0FDVCxVQUFVOzZDQUFWLFVBQVU7NERBRW5DOzs7SUFMRCw0Q0FBd0Q7O0lBT3hELHVDQUF1Qjs7SUFDdkIsNENBQWlEOztJQUNqRCxzQ0FBc0I7O0lBQ3RCLDZDQUE2Qjs7SUFFN0IsOENBQW1EOztJQUNuRCw2Q0FBaUQ7O0lBQ2pELDhDQUFtRDs7SUFDbkQsK0NBQXFEOztJQUNyRCw4Q0FBbUQ7O0lBSW5ELHVDQUFxQzs7SUFFckMsc0NBQW9DOztJQUVwQywwQ0FBd0M7O0lBRXhDLDJDQUF5Qzs7SUFFekMsbURBQThDIiwic291cmNlc0NvbnRlbnQiOlsiLyogdHNsaW50OmRpc2FibGU6bm8taW5wdXQtcmVuYW1lICovXG5pbXBvcnQgeyBFdmVudEVtaXR0ZXIsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybUdyb3VwRGlyZWN0aXZlLCBOZ0Zvcm0gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBFcnJvclN0YXRlTWF0Y2hlciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsJztcbmltcG9ydCB7IENvbW1hbmQsIERlbGVnYXRpbmdGb3JtVmFsdWVNb2RlbCwgTGlzdE1vZGVsLCBVc2VEZWxlZ2F0ZSwgVmFsdWVNb2RlbCB9IGZyb20gJ0Bjb29sb24vcGVjdGluJztcbmltcG9ydCB7IERpc3Bvc2FibGVDb21wb25lbnQgfSBmcm9tICcuLi9kaXNwb3NhYmxlLWNvbXBvbmVudCc7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBYnN0cmFjdElucHV0Q29tcG9uZW50PFQ+IGV4dGVuZHMgRGlzcG9zYWJsZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgcmVhZG9ubHkgdmFsdWVNb2RlbCA9IG5ldyBEZWxlZ2F0aW5nRm9ybVZhbHVlTW9kZWw8VD4oKTtcblxuICBASW5wdXQoJ3ZhbHVlTW9kZWwnKSBAVXNlRGVsZWdhdGUoKVxuICBzZXQgdXNlclZhbHVlTW9kZWwobW9kZWw6IFZhbHVlTW9kZWw8VD4pIHtcbiAgICB0aGlzLnZhbHVlTW9kZWwuc2V0RGVsZWdhdGUobW9kZWwpO1xuICB9XG5cbiAgQElucHV0KCkgbGFiZWw6IHN0cmluZztcbiAgQElucHV0KCkgZmxvYXRMYWJlbDogJ2F1dG8nIHwgJ2Fsd2F5cycgfCAnbmV2ZXInO1xuICBASW5wdXQoKSBoaW50OiBzdHJpbmc7XG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyOiBzdHJpbmc7XG5cbiAgQElucHV0KCdjb21tYW5kLmZvY3VzJykgZm9jdXNDb21tYW5kOiBDb21tYW5kPGFueT47XG4gIEBJbnB1dCgnY29tbWFuZC5ibHVyJykgYmx1ckNvbW1hbmQ6IENvbW1hbmQ8YW55PjtcbiAgQElucHV0KCdjb21tYW5kLmVudGVyJykgZW50ZXJDb21tYW5kOiBDb21tYW5kPGFueT47XG4gIEBJbnB1dCgnY29tbWFuZC5lc2NhcGUnKSBlc2NhcGVDb21tYW5kOiBDb21tYW5kPGFueT47XG4gIEBJbnB1dCgnY29tbWFuZC5jbGljaycpIGNsaWNrQ29tbWFuZDogQ29tbWFuZDxhbnk+O1xuXG4gIC8vIFRPRE86IGZpeCB0aGlzLlxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tb3V0cHV0LW5hdGl2ZVxuICBAT3V0cHV0KCkgZm9jdXMgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1vdXRwdXQtbmF0aXZlXG4gIEBPdXRwdXQoKSBibHVyID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tb3V0cHV0LW5hdGl2ZVxuICBAT3V0cHV0KCkgZW50ZXJLZXkgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1vdXRwdXQtbmF0aXZlXG4gIEBPdXRwdXQoKSBlc2NhcGVLZXkgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgcmVhZG9ubHkgZXJyb3JTdGF0ZU1hdGNoZXI6IEVycm9yU3RhdGVNYXRjaGVyO1xuXG4gIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJylcbiAgbm90aWZ5Q2xpY2soKSB7XG4gICAgdGhpcy5zYWZlbHlJbnZva2UodGhpcy5jbGlja0NvbW1hbmQpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignZm9jdXNpbicpXG4gIG5vdGlmeUZvY3VzSW4oKSB7XG4gICAgdGhpcy5zYWZlbHlJbnZva2UodGhpcy5mb2N1c0NvbW1hbmQpO1xuICAgIHRoaXMuZm9jdXMuZW1pdCgpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignZm9jdXNvdXQnKVxuICBub3RpZnlGb2N1c091dCgpIHtcbiAgICB0aGlzLnNhZmVseUludm9rZSh0aGlzLmJsdXJDb21tYW5kKTtcbiAgICB0aGlzLmJsdXIuZW1pdCgpO1xuICB9XG5cblxuICBub3RpZnlFbnRlcktleSgpIHtcbiAgICB0aGlzLnNhZmVseUludm9rZSh0aGlzLmVudGVyQ29tbWFuZCk7XG4gICAgdGhpcy5lbnRlcktleS5lbWl0KCk7XG4gIH1cblxuICBub3RpZnlFc2NhcGVLZXkoKSB7XG4gICAgdGhpcy5zYWZlbHlJbnZva2UodGhpcy5lc2NhcGVDb21tYW5kKTtcbiAgICB0aGlzLmVzY2FwZUtleS5lbWl0KCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgc2FmZWx5SW52b2tlKGNvbW1hbmQ6IENvbW1hbmQ8YW55Pikge1xuICAgIGlmIChjb21tYW5kICYmIGNvbW1hbmQuZW5hYmxlZC52YWx1ZSkge1xuICAgICAgY29tbWFuZC5leGVjdXRlKCk7XG4gICAgfVxuICB9XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICBjb25zdCBzZWxmID0gdGhpcztcbiAgICB0aGlzLmVycm9yU3RhdGVNYXRjaGVyID0ge1xuICAgICAgaXNFcnJvclN0YXRlKGNvbnRyb2w6IEZvcm1Db250cm9sIHwgbnVsbCwgZm9ybTogRm9ybUdyb3VwRGlyZWN0aXZlIHwgTmdGb3JtIHwgbnVsbCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gc2VsZi5oYXNFcnJvcnMoKTtcbiAgICAgIH1cbiAgICB9O1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gIH1cblxuICBpc0VuYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZW5hYmxlZC52YWx1ZTtcbiAgfVxuXG4gIGdldCBlbmFibGVkKCk6IFZhbHVlTW9kZWw8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLnZhbHVlTW9kZWwuZW5hYmxlZDtcbiAgfVxuXG4gIGhhc0Vycm9ycygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMuZXJyb3JMaXN0LnF1ZXJ5KCkuaXNFbXB0eSgpO1xuICB9XG5cbiAgZ2V0IGVycm9yTGlzdCgpOiBMaXN0TW9kZWw8c3RyaW5nPiB7XG4gICAgcmV0dXJuIHRoaXMudmFsdWVNb2RlbC5lcnJvckxpc3Q7XG4gIH1cblxuICBnZXQgZmlyc3RFcnJvcigpIHtcbiAgICByZXR1cm4gdGhpcy5oYXNFcnJvcnMoKSA/IHRoaXMuZXJyb3JMaXN0LnZhbHVlWzBdIDogbnVsbDtcbiAgfVxuXG5cbn1cbiJdfQ==
@@ -0,0 +1,26 @@
1
+ /**
2
+ * @fileoverview added by tsickle
3
+ * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
+ */
5
+ import { Component } from '@angular/core';
6
+ import { AbstractInputComponent } from '../abstract-input.component';
7
+ export class NumberInputComponent extends AbstractInputComponent {
8
+ constructor() {
9
+ super();
10
+ }
11
+ /**
12
+ * @return {?}
13
+ */
14
+ ngOnInit() {
15
+ }
16
+ }
17
+ NumberInputComponent.decorators = [
18
+ { type: Component, args: [{
19
+ selector: 'angular-ui-powerups-number-input',
20
+ template: "<mat-form-field appearance=\"standard\" [floatLabel]=\"floatLabel\">\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\n <input type=\"number\"\n matInput\n placeholder=\"{{placeholder}}\"\n [(ngModel)]=\"valueModel.value\"\n [disabled]=\"!enabled.value\"\n (keydown.enter)=\"notifyEnterKey()\"\n (keydown.escape)=\"notifyEscapeKey()\"\n [pectinFocusBinding]=\"valueModel\"\n [errorStateMatcher]=\"errorStateMatcher\"\n >\n <mat-hint *ngIf=\"hint\">{{hint}}</mat-hint>\n <mat-error *ngIf=\"hasErrors\">{{firstError}}</mat-error>\n</mat-form-field>\n",
21
+ styles: [":host{display:block}input,mat-form-field{width:100%}input mat-hint.faux-error,mat-form-field mat-hint.faux-error{color:#f44336}"]
22
+ }] }
23
+ ];
24
+ /** @nocollapse */
25
+ NumberInputComponent.ctorParameters = () => [];
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bjb29sb24vYW5ndWxhci11aS1wb3dlcnVwcy8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL2Zvcm1zL251bWJlci1pbnB1dC9udW1iZXItaW5wdXQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBUW5FLE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxzQkFBOEI7SUFFcEU7UUFDSSxLQUFLLEVBQUUsQ0FBQztJQUNaLENBQUM7Ozs7SUFFRCxRQUFRO0lBQ1IsQ0FBQzs7O1lBWkosU0FBUyxTQUFDO2dCQUNQLFFBQVEsRUFBRSxrQ0FBa0M7Z0JBQzVDLHVuQkFBNEM7O2FBRS9DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QWJzdHJhY3RJbnB1dENvbXBvbmVudH0gZnJvbSAnLi4vYWJzdHJhY3QtaW5wdXQuY29tcG9uZW50JztcblxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2FuZ3VsYXItdWktcG93ZXJ1cHMtbnVtYmVyLWlucHV0JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vbnVtYmVyLWlucHV0LmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9udW1iZXItaW5wdXQuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBOdW1iZXJJbnB1dENvbXBvbmVudCBleHRlbmRzIEFic3RyYWN0SW5wdXRDb21wb25lbnQ8c3RyaW5nPiBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICB9XG5cbn1cbiJdfQ==
@@ -0,0 +1,26 @@
1
+ /**
2
+ * @fileoverview added by tsickle
3
+ * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
+ */
5
+ import { Component } from '@angular/core';
6
+ import { AbstractInputComponent } from '../abstract-input.component';
7
+ export class PasswordInputComponent extends AbstractInputComponent {
8
+ constructor() {
9
+ super();
10
+ }
11
+ /**
12
+ * @return {?}
13
+ */
14
+ ngOnInit() {
15
+ }
16
+ }
17
+ PasswordInputComponent.decorators = [
18
+ { type: Component, args: [{
19
+ selector: 'angular-ui-powerups-password-input',
20
+ template: "<mat-form-field appearance=\"standard\" [floatLabel]=\"floatLabel\">\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\n <input type=\"password\"\n matInput\n placeholder=\"{{placeholder}}\"\n [(ngModel)]=\"valueModel.value\"\n [disabled]=\"!enabled.value\"\n (keydown.enter)=\"notifyEnterKey()\"\n (keydown.escape)=\"notifyEscapeKey()\"\n [pectinFocusBinding]=\"valueModel\"\n [errorStateMatcher]=\"errorStateMatcher\"\n >\n <mat-hint *ngIf=\"hint\">{{hint}}</mat-hint>\n <mat-error *ngIf=\"hasErrors\">{{firstError}}</mat-error>\n</mat-form-field>\n\n",
21
+ styles: [":host{display:block}input,mat-form-field{width:100%}input mat-hint.faux-error,mat-form-field mat-hint.faux-error{color:#f44336}"]
22
+ }] }
23
+ ];
24
+ /** @nocollapse */
25
+ PasswordInputComponent.ctorParameters = () => [];
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFzc3dvcmQtaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGNvb2xvbi9hbmd1bGFyLXVpLXBvd2VydXBzLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvZm9ybXMvcGFzc3dvcmQtaW5wdXQvcGFzc3dvcmQtaW5wdXQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFTLE1BQU0sZUFBZSxDQUFDO0FBQ2hELE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBT25FLE1BQU0sT0FBTyxzQkFBdUIsU0FBUSxzQkFBOEI7SUFFeEU7UUFDRSxLQUFLLEVBQUUsQ0FBQztJQUNWLENBQUM7Ozs7SUFFRCxRQUFRO0lBQ1IsQ0FBQzs7O1lBWkYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxvQ0FBb0M7Z0JBQzlDLDJuQkFBOEM7O2FBRS9DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIE9uSW5pdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0Fic3RyYWN0SW5wdXRDb21wb25lbnR9IGZyb20gJy4uL2Fic3RyYWN0LWlucHV0LmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FuZ3VsYXItdWktcG93ZXJ1cHMtcGFzc3dvcmQtaW5wdXQnLFxuICB0ZW1wbGF0ZVVybDogJy4vcGFzc3dvcmQtaW5wdXQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9wYXNzd29yZC1pbnB1dC5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFBhc3N3b3JkSW5wdXRDb21wb25lbnQgZXh0ZW5kcyBBYnN0cmFjdElucHV0Q29tcG9uZW50PHN0cmluZz4gaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgfVxuXG59XG4iXX0=
@@ -0,0 +1,60 @@
1
+ /**
2
+ * @fileoverview added by tsickle
3
+ * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
+ */
5
+ import * as tslib_1 from "tslib";
6
+ import { Component, Input } from '@angular/core';
7
+ import { ListModel, StoreInListModel, UseDelegate } from '@coolon/pectin';
8
+ import { AbstractInputComponent } from '../abstract-input.component';
9
+ /**
10
+ * @template T
11
+ */
12
+ export class SelectInputComponent extends AbstractInputComponent {
13
+ constructor() {
14
+ super();
15
+ this.optionLabelFormat = (/**
16
+ * @param {?} option
17
+ * @return {?}
18
+ */
19
+ (option) => (option && this.optionLabel) ? option[this.optionLabel] : option);
20
+ }
21
+ /**
22
+ * @return {?}
23
+ */
24
+ ngOnInit() {
25
+ }
26
+ }
27
+ SelectInputComponent.decorators = [
28
+ { type: Component, args: [{
29
+ selector: 'angular-ui-powerups-select-input',
30
+ template: "<mat-form-field appearance=\"standard\" [floatLabel]=\"floatLabel\">\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\n <mat-select placeholder=\"{{placeholder}}\"\n [(ngModel)]=\"valueModel.value\"\n [disabled]=\"!enabled.value\"\n (keydown.enter)=\"notifyEnterKey()\"\n (keydown.escape)=\"notifyEscapeKey()\"\n [pectinFocusBinding]=\"valueModel\"\n [errorStateMatcher]=\"errorStateMatcher\"\n >\n <mat-option *ngFor=\"let option of optionsModel.value\" [value]=\"option\">{{optionLabelFormat(option)}}\n </mat-option>\n </mat-select>\n <mat-hint *ngIf=\"hint\">{{hint}}</mat-hint>\n <mat-error *ngIf=\"hasErrors\">{{firstError}}</mat-error>\n</mat-form-field>\n",
31
+ styles: [":host{display:inline-block}mat-form-field{width:100%}"]
32
+ }] }
33
+ ];
34
+ /** @nocollapse */
35
+ SelectInputComponent.ctorParameters = () => [];
36
+ SelectInputComponent.propDecorators = {
37
+ optionsModel: [{ type: Input }],
38
+ options: [{ type: Input }],
39
+ optionLabel: [{ type: Input }],
40
+ optionLabelFormat: [{ type: Input }]
41
+ };
42
+ tslib_1.__decorate([
43
+ UseDelegate(),
44
+ tslib_1.__metadata("design:type", ListModel)
45
+ ], SelectInputComponent.prototype, "optionsModel", void 0);
46
+ tslib_1.__decorate([
47
+ StoreInListModel('optionsModel'),
48
+ tslib_1.__metadata("design:type", Array)
49
+ ], SelectInputComponent.prototype, "options", void 0);
50
+ if (false) {
51
+ /** @type {?} */
52
+ SelectInputComponent.prototype.optionsModel;
53
+ /** @type {?} */
54
+ SelectInputComponent.prototype.options;
55
+ /** @type {?} */
56
+ SelectInputComponent.prototype.optionLabel;
57
+ /** @type {?} */
58
+ SelectInputComponent.prototype.optionLabelFormat;
59
+ }
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bjb29sb24vYW5ndWxhci11aS1wb3dlcnVwcy8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL2Zvcm1zL3NlbGVjdC1pbnB1dC9zZWxlY3QtaW5wdXQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMxRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7OztBQU9yRSxNQUFNLE9BQU8sb0JBQThCLFNBQVEsc0JBQXlCO0lBYzFFO1FBQ0UsS0FBSyxFQUFFLENBQUM7UUFIVixzQkFBaUI7Ozs7UUFBdUIsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFDO0lBSXJILENBQUM7Ozs7SUFFRCxRQUFRO0lBQ1IsQ0FBQzs7O1lBeEJGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsa0NBQWtDO2dCQUM1QywrdkJBQTRDOzthQUU3Qzs7Ozs7MkJBR0UsS0FBSztzQkFHTCxLQUFLOzBCQUdMLEtBQUs7Z0NBR0wsS0FBSzs7QUFSTjtJQURVLFdBQVcsRUFBRTtzQ0FDVCxTQUFTOzBEQUFJO0FBRzNCO0lBRFUsZ0JBQWdCLENBQUMsY0FBYyxDQUFDOztxREFDN0I7OztJQUpiLDRDQUMyQjs7SUFFM0IsdUNBQ2E7O0lBRWIsMkNBQ3FCOztJQUVyQixpREFDcUgiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IExpc3RNb2RlbCwgU3RvcmVJbkxpc3RNb2RlbCwgVXNlRGVsZWdhdGUgfSBmcm9tICdAY29vbG9uL3BlY3Rpbic7XG5pbXBvcnQgeyBBYnN0cmFjdElucHV0Q29tcG9uZW50IH0gZnJvbSAnLi4vYWJzdHJhY3QtaW5wdXQuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYW5ndWxhci11aS1wb3dlcnVwcy1zZWxlY3QtaW5wdXQnLFxuICB0ZW1wbGF0ZVVybDogJy4vc2VsZWN0LWlucHV0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc2VsZWN0LWlucHV0LmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgU2VsZWN0SW5wdXRDb21wb25lbnQ8VCA9IGFueT4gZXh0ZW5kcyBBYnN0cmFjdElucHV0Q29tcG9uZW50PFQ+IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBASW5wdXQoKSBAVXNlRGVsZWdhdGUoKVxuICBvcHRpb25zTW9kZWw6IExpc3RNb2RlbDxUPjtcblxuICBASW5wdXQoKSBAU3RvcmVJbkxpc3RNb2RlbCgnb3B0aW9uc01vZGVsJylcbiAgb3B0aW9uczogVFtdO1xuXG4gIEBJbnB1dCgpXG4gIG9wdGlvbkxhYmVsOiBrZXlvZiBUO1xuXG4gIEBJbnB1dCgpXG4gIG9wdGlvbkxhYmVsRm9ybWF0OiAob3B0aW9uOiBUKSA9PiBhbnkgPSAob3B0aW9uKSA9PiAob3B0aW9uICYmIHRoaXMub3B0aW9uTGFiZWwpID8gb3B0aW9uW3RoaXMub3B0aW9uTGFiZWxdIDogb3B0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgfVxuXG59XG4iXX0=
@@ -0,0 +1,26 @@
1
+ /**
2
+ * @fileoverview added by tsickle
3
+ * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
+ */
5
+ import { Component } from '@angular/core';
6
+ import { AbstractInputComponent } from '../abstract-input.component';
7
+ export class StringInputComponent extends AbstractInputComponent {
8
+ constructor() {
9
+ super();
10
+ }
11
+ /**
12
+ * @return {?}
13
+ */
14
+ ngOnInit() {
15
+ }
16
+ }
17
+ StringInputComponent.decorators = [
18
+ { type: Component, args: [{
19
+ selector: 'angular-ui-powerups-string-input',
20
+ template: "<mat-form-field appearance=\"standard\" [floatLabel]=\"floatLabel\">\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\n <input matInput\n placeholder=\"{{placeholder}}\"\n [(ngModel)]=\"valueModel.value\"\n [disabled]=\"!enabled.value\"\n (keydown.enter)=\"notifyEnterKey()\"\n (keydown.escape)=\"notifyEscapeKey()\"\n [pectinFocusBinding]=\"valueModel\"\n [errorStateMatcher]=\"errorStateMatcher\"\n >\n <mat-hint *ngIf=\"hint\">{{hint}}</mat-hint>\n <mat-error *ngIf=\"hasErrors\">{{firstError}}</mat-error>\n</mat-form-field>\n\n",
21
+ styles: [":host{display:block}input,mat-form-field{width:100%}input mat-hint.faux-error,mat-form-field mat-hint.faux-error{color:#f44336}"]
22
+ }] }
23
+ ];
24
+ /** @nocollapse */
25
+ StringInputComponent.ctorParameters = () => [];
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyaW5nLWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bjb29sb24vYW5ndWxhci11aS1wb3dlcnVwcy8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL2Zvcm1zL3N0cmluZy1pbnB1dC9zdHJpbmctaW5wdXQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFTLE1BQU0sZUFBZSxDQUFDO0FBQ2hELE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBT25FLE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxzQkFBOEI7SUFFdEU7UUFDRSxLQUFLLEVBQUUsQ0FBQztJQUNWLENBQUM7Ozs7SUFFRCxRQUFRO0lBQ1IsQ0FBQzs7O1lBWkYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxrQ0FBa0M7Z0JBQzVDLCtsQkFBNEM7O2FBRTdDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIE9uSW5pdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0Fic3RyYWN0SW5wdXRDb21wb25lbnR9IGZyb20gJy4uL2Fic3RyYWN0LWlucHV0LmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FuZ3VsYXItdWktcG93ZXJ1cHMtc3RyaW5nLWlucHV0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3N0cmluZy1pbnB1dC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3N0cmluZy1pbnB1dC5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFN0cmluZ0lucHV0Q29tcG9uZW50IGV4dGVuZHMgQWJzdHJhY3RJbnB1dENvbXBvbmVudDxzdHJpbmc+IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gIH1cblxufVxuIl19
@@ -0,0 +1,18 @@
1
+ /**
2
+ * @fileoverview added by tsickle
3
+ * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
+ */
5
+ /**
6
+ * @file Automatically generated by barrelsby.
7
+ */
8
+ export { DisposableComponent } from "./disposable-component";
9
+ export { ResizeAwareComponent } from "./resize-aware.component";
10
+ export { AbstractInputComponent } from "./forms/abstract-input.component";
11
+ export { NumberInputComponent } from "./forms/number-input/number-input.component";
12
+ export { PasswordInputComponent } from "./forms/password-input/password-input.component";
13
+ export { SelectInputComponent } from "./forms/select-input/select-input.component";
14
+ export { StringInputComponent } from "./forms/string-input/string-input.component";
15
+ export { Bounds } from "./types/bounds.class";
16
+ export { Dimension } from "./types/dimension.class";
17
+ export { Point } from "./types/point.class";
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AY29vbG9uL2FuZ3VsYXItdWktcG93ZXJ1cHMvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBSUEsb0NBQWMsd0JBQXdCLENBQUM7QUFDdkMscUNBQWMsMEJBQTBCLENBQUM7QUFDekMsdUNBQWMsa0NBQWtDLENBQUM7QUFDakQscUNBQWMsNkNBQTZDLENBQUM7QUFDNUQsdUNBQWMsaURBQWlELENBQUM7QUFDaEUscUNBQWMsNkNBQTZDLENBQUM7QUFDNUQscUNBQWMsNkNBQTZDLENBQUM7QUFDNUQsdUJBQWMsc0JBQXNCLENBQUM7QUFDckMsMEJBQWMseUJBQXlCLENBQUM7QUFDeEMsc0JBQWMscUJBQXFCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBmaWxlIEF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGJ5IGJhcnJlbHNieS5cbiAqL1xuXG5leHBvcnQgKiBmcm9tIFwiLi9kaXNwb3NhYmxlLWNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vcmVzaXplLWF3YXJlLmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZm9ybXMvYWJzdHJhY3QtaW5wdXQuY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9mb3Jtcy9udW1iZXItaW5wdXQvbnVtYmVyLWlucHV0LmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZm9ybXMvcGFzc3dvcmQtaW5wdXQvcGFzc3dvcmQtaW5wdXQuY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9mb3Jtcy9zZWxlY3QtaW5wdXQvc2VsZWN0LWlucHV0LmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZm9ybXMvc3RyaW5nLWlucHV0L3N0cmluZy1pbnB1dC5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3R5cGVzL2JvdW5kcy5jbGFzc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vdHlwZXMvZGltZW5zaW9uLmNsYXNzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi90eXBlcy9wb2ludC5jbGFzc1wiO1xuIl19
@@ -0,0 +1,96 @@
1
+ /**
2
+ * @fileoverview added by tsickle
3
+ * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
+ */
5
+ import { ValueHolder } from '@coolon/pectin';
6
+ import ResizeObserver from 'resize-observer-polyfill';
7
+ import { DisposableComponent } from './disposable-component';
8
+ import { Bounds } from './types/bounds.class';
9
+ export class ResizeAwareComponent extends DisposableComponent {
10
+ /**
11
+ * @param {?} elementRef
12
+ * @param {?} ngZone
13
+ */
14
+ constructor(elementRef, ngZone) {
15
+ super();
16
+ this.elementRef = elementRef;
17
+ this.ngZone = ngZone;
18
+ this._boundsModel = new ValueHolder(new Bounds(0, 0, 0, 0));
19
+ }
20
+ /**
21
+ * @return {?}
22
+ */
23
+ ngAfterViewInit() {
24
+ this.updateBounds();
25
+ /** @type {?} */
26
+ const element = this.elementRef.nativeElement;
27
+ /** @type {?} */
28
+ const ro = new ResizeObserver((/**
29
+ * @param {?} entries
30
+ * @param {?} observer
31
+ * @return {?}
32
+ */
33
+ (entries, observer) => {
34
+ this.ngZone.run((/**
35
+ * @return {?}
36
+ */
37
+ () => this.updateBounds()));
38
+ }));
39
+ ro.observe(element);
40
+ this.onDispose((/**
41
+ * @return {?}
42
+ */
43
+ () => ro.disconnect()));
44
+ }
45
+ /**
46
+ * @return {?}
47
+ */
48
+ get boundsModel() {
49
+ return this._boundsModel.readonly;
50
+ }
51
+ /**
52
+ * @return {?}
53
+ */
54
+ get nativeElement() {
55
+ return this.elementRef.nativeElement;
56
+ }
57
+ // TODO: Make this handle body scroll
58
+ /**
59
+ * @param {?} point
60
+ * @return {?}
61
+ */
62
+ relativePositionOf(point) {
63
+ return this.bounds.relativePositionOf(point);
64
+ }
65
+ /**
66
+ * @return {?}
67
+ */
68
+ get bounds() {
69
+ return this._boundsModel.value;
70
+ }
71
+ /**
72
+ * @private
73
+ * @return {?}
74
+ */
75
+ updateBounds() {
76
+ this._boundsModel.value = Bounds.ofElement(this.nativeElement);
77
+ }
78
+ }
79
+ if (false) {
80
+ /**
81
+ * @type {?}
82
+ * @private
83
+ */
84
+ ResizeAwareComponent.prototype._boundsModel;
85
+ /**
86
+ * @type {?}
87
+ * @protected
88
+ */
89
+ ResizeAwareComponent.prototype.elementRef;
90
+ /**
91
+ * @type {?}
92
+ * @protected
93
+ */
94
+ ResizeAwareComponent.prototype.ngZone;
95
+ }
96
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzaXplLWF3YXJlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bjb29sb24vYW5ndWxhci11aS1wb3dlcnVwcy8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL3Jlc2l6ZS1hd2FyZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUNBLE9BQU8sRUFBQyxXQUFXLEVBQWEsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2RCxPQUFPLGNBQWMsTUFBTSwwQkFBMEIsQ0FBQztBQUN0RCxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUMzRCxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFHNUMsTUFBTSxPQUFPLG9CQUFxQixTQUFRLG1CQUFtQjs7Ozs7SUFJekQsWUFBK0IsVUFBc0IsRUFBcUIsTUFBYztRQUNwRixLQUFLLEVBQUUsQ0FBQztRQURtQixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQXFCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFGaEYsaUJBQVksR0FBRyxJQUFJLFdBQVcsQ0FBUyxJQUFJLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBSXZFLENBQUM7Ozs7SUFFRCxlQUFlO1FBQ1gsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDOztjQUNkLE9BQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWE7O2NBQ3ZDLEVBQUUsR0FBRyxJQUFJLGNBQWM7Ozs7O1FBQUMsQ0FBQyxPQUFPLEVBQUUsUUFBUSxFQUFFLEVBQUU7WUFDaEQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHOzs7WUFBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLEVBQUMsQ0FBQztRQUMvQyxDQUFDLEVBQUM7UUFDRixFQUFFLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxTQUFTOzs7UUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxFQUFFLEVBQUMsQ0FBQztJQUMxQyxDQUFDOzs7O0lBRUQsSUFBSSxXQUFXO1FBQ1gsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQztJQUN0QyxDQUFDOzs7O0lBRUQsSUFBSSxhQUFhO1FBQ2IsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQztJQUN6QyxDQUFDOzs7Ozs7SUFHTSxrQkFBa0IsQ0FBQyxLQUE0QztRQUNsRSxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDakQsQ0FBQzs7OztJQUVELElBQUksTUFBTTtRQUNOLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUM7SUFDbkMsQ0FBQzs7Ozs7SUFFTyxZQUFZO1FBQ2hCLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ25FLENBQUM7Q0FHSjs7Ozs7O0lBdENHLDRDQUF1RTs7Ozs7SUFFM0QsMENBQXlDOzs7OztJQUFFLHNDQUFpQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QWZ0ZXJWaWV3SW5pdCwgRWxlbWVudFJlZiwgTmdab25lfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7VmFsdWVIb2xkZXIsIFZhbHVlTW9kZWx9IGZyb20gJ0Bjb29sb24vcGVjdGluJztcbmltcG9ydCBSZXNpemVPYnNlcnZlciBmcm9tICdyZXNpemUtb2JzZXJ2ZXItcG9seWZpbGwnO1xuaW1wb3J0IHtEaXNwb3NhYmxlQ29tcG9uZW50fSBmcm9tICcuL2Rpc3Bvc2FibGUtY29tcG9uZW50JztcbmltcG9ydCB7Qm91bmRzfSBmcm9tICcuL3R5cGVzL2JvdW5kcy5jbGFzcyc7XG5pbXBvcnQge1BvaW50fSBmcm9tICcuL3R5cGVzL3BvaW50LmNsYXNzJztcblxuZXhwb3J0IGNsYXNzIFJlc2l6ZUF3YXJlQ29tcG9uZW50IGV4dGVuZHMgRGlzcG9zYWJsZUNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuXG4gICAgcHJpdmF0ZSBfYm91bmRzTW9kZWwgPSBuZXcgVmFsdWVIb2xkZXI8Qm91bmRzPihuZXcgQm91bmRzKDAsIDAsIDAsIDApKTtcblxuICAgIGNvbnN0cnVjdG9yKHByb3RlY3RlZCByZWFkb25seSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgcmVhZG9ubHkgbmdab25lOiBOZ1pvbmUpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMudXBkYXRlQm91bmRzKCk7XG4gICAgICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICAgICAgY29uc3Qgcm8gPSBuZXcgUmVzaXplT2JzZXJ2ZXIoKGVudHJpZXMsIG9ic2VydmVyKSA9PiB7XG4gICAgICAgICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4gdGhpcy51cGRhdGVCb3VuZHMoKSk7XG4gICAgICAgIH0pO1xuICAgICAgICByby5vYnNlcnZlKGVsZW1lbnQpO1xuICAgICAgICB0aGlzLm9uRGlzcG9zZSgoKSA9PiByby5kaXNjb25uZWN0KCkpO1xuICAgIH1cblxuICAgIGdldCBib3VuZHNNb2RlbCgpOiBWYWx1ZU1vZGVsPEJvdW5kcz4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fYm91bmRzTW9kZWwucmVhZG9ubHk7XG4gICAgfVxuXG4gICAgZ2V0IG5hdGl2ZUVsZW1lbnQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICB9XG5cbiAgICAvLyBUT0RPOiBNYWtlIHRoaXMgaGFuZGxlIGJvZHkgc2Nyb2xsXG4gICAgcHVibGljIHJlbGF0aXZlUG9zaXRpb25PZihwb2ludDogeyB4OiBudW1iZXIsIHk6IG51bWJlciB9IHwgTW91c2VFdmVudCk6IFBvaW50IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYm91bmRzLnJlbGF0aXZlUG9zaXRpb25PZihwb2ludCk7XG4gICAgfVxuXG4gICAgZ2V0IGJvdW5kcygpOiBCb3VuZHMge1xuICAgICAgICByZXR1cm4gdGhpcy5fYm91bmRzTW9kZWwudmFsdWU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVCb3VuZHMoKSB7XG4gICAgICAgIHRoaXMuX2JvdW5kc01vZGVsLnZhbHVlID0gQm91bmRzLm9mRWxlbWVudCh0aGlzLm5hdGl2ZUVsZW1lbnQpO1xuICAgIH1cblxuXG59XG5cbmV4cG9ydCBuYW1lc3BhY2UgUmVzaXplQXdhcmVDb21wb25lbnQge1xuXG59XG4iXX0=
@@ -0,0 +1,56 @@
1
+ /**
2
+ * @fileoverview added by tsickle
3
+ * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
+ */
5
+ import { Dimension } from './dimension.class';
6
+ import { Point } from './point.class';
7
+ export class Bounds extends Dimension {
8
+ /**
9
+ * @param {?} top
10
+ * @param {?} left
11
+ * @param {?} width
12
+ * @param {?} height
13
+ */
14
+ constructor(top, left, width, height) {
15
+ super(width, height);
16
+ this.top = top;
17
+ this.left = left;
18
+ this.width = width;
19
+ this.height = height;
20
+ }
21
+ /**
22
+ * @param {?} point
23
+ * @return {?}
24
+ */
25
+ relativePositionOf(point) {
26
+ if (point instanceof MouseEvent) {
27
+ return new Point(point.clientX - this.left, point.clientY - this.top);
28
+ }
29
+ else {
30
+ return new Point(point.x - this.left, point.y - this.top);
31
+ }
32
+ }
33
+ }
34
+ if (false) {
35
+ /** @type {?} */
36
+ Bounds.prototype.top;
37
+ /** @type {?} */
38
+ Bounds.prototype.left;
39
+ /** @type {?} */
40
+ Bounds.prototype.width;
41
+ /** @type {?} */
42
+ Bounds.prototype.height;
43
+ }
44
+ (function (Bounds) {
45
+ /**
46
+ * @param {?} element
47
+ * @return {?}
48
+ */
49
+ function ofElement(element) {
50
+ /** @type {?} */
51
+ const rect = element.getBoundingClientRect();
52
+ return new Bounds(rect.top, rect.left, rect.width, rect.height);
53
+ }
54
+ Bounds.ofElement = ofElement;
55
+ })(Bounds || (Bounds = {}));
56
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm91bmRzLmNsYXNzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGNvb2xvbi9hbmd1bGFyLXVpLXBvd2VydXBzLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvdHlwZXMvYm91bmRzLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDOUMsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV0QyxNQUFNLE9BQU8sTUFBTyxTQUFRLFNBQVM7Ozs7Ozs7SUFFakMsWUFBcUIsR0FBVyxFQUFXLElBQVksRUFBVyxLQUFhLEVBQVcsTUFBYztRQUNwRyxLQUFLLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBREosUUFBRyxHQUFILEdBQUcsQ0FBUTtRQUFXLFNBQUksR0FBSixJQUFJLENBQVE7UUFBVyxVQUFLLEdBQUwsS0FBSyxDQUFRO1FBQVcsV0FBTSxHQUFOLE1BQU0sQ0FBUTtJQUV4RyxDQUFDOzs7OztJQUVELGtCQUFrQixDQUFDLEtBQTRDO1FBQzNELElBQUksS0FBSyxZQUFZLFVBQVUsRUFBRTtZQUM3QixPQUFPLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUN6RTthQUFNO1lBQ0gsT0FBTyxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDN0Q7SUFDTCxDQUFDO0NBQ0o7OztJQVhlLHFCQUFvQjs7SUFBRSxzQkFBcUI7O0lBQUUsdUJBQXNCOztJQUFFLHdCQUF1Qjs7QUFhNUcsV0FBaUIsTUFBTTs7Ozs7SUFDbkIsU0FBZ0IsU0FBUyxDQUFDLE9BQW9COztjQUNwQyxJQUFJLEdBQUcsT0FBTyxDQUFDLHFCQUFxQixFQUFFO1FBQzVDLE9BQU8sSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3BFLENBQUM7SUFIZSxnQkFBUyxZQUd4QixDQUFBO0FBQ0wsQ0FBQyxFQUxnQixNQUFNLEtBQU4sTUFBTSxRQUt0QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpbWVuc2lvbiB9IGZyb20gJy4vZGltZW5zaW9uLmNsYXNzJztcbmltcG9ydCB7IFBvaW50IH0gZnJvbSAnLi9wb2ludC5jbGFzcyc7XG5cbmV4cG9ydCBjbGFzcyBCb3VuZHMgZXh0ZW5kcyBEaW1lbnNpb24ge1xuXG4gICAgY29uc3RydWN0b3IocmVhZG9ubHkgdG9wOiBudW1iZXIsIHJlYWRvbmx5IGxlZnQ6IG51bWJlciwgcmVhZG9ubHkgd2lkdGg6IG51bWJlciwgcmVhZG9ubHkgaGVpZ2h0OiBudW1iZXIpIHtcbiAgICAgICAgc3VwZXIod2lkdGgsIGhlaWdodCk7XG4gICAgfVxuXG4gICAgcmVsYXRpdmVQb3NpdGlvbk9mKHBvaW50OiB7IHg6IG51bWJlciwgeTogbnVtYmVyIH0gfCBNb3VzZUV2ZW50KSB7XG4gICAgICAgIGlmIChwb2ludCBpbnN0YW5jZW9mIE1vdXNlRXZlbnQpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgUG9pbnQocG9pbnQuY2xpZW50WCAtIHRoaXMubGVmdCwgcG9pbnQuY2xpZW50WSAtIHRoaXMudG9wKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgUG9pbnQocG9pbnQueCAtIHRoaXMubGVmdCwgcG9pbnQueSAtIHRoaXMudG9wKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IG5hbWVzcGFjZSBCb3VuZHMge1xuICAgIGV4cG9ydCBmdW5jdGlvbiBvZkVsZW1lbnQoZWxlbWVudDogSFRNTEVsZW1lbnQpOiBCb3VuZHMge1xuICAgICAgICBjb25zdCByZWN0ID0gZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgcmV0dXJuIG5ldyBCb3VuZHMocmVjdC50b3AsIHJlY3QubGVmdCwgcmVjdC53aWR0aCwgcmVjdC5oZWlnaHQpO1xuICAgIH1cbn1cblxuIl19
@@ -0,0 +1,21 @@
1
+ /**
2
+ * @fileoverview added by tsickle
3
+ * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
+ */
5
+ export class Dimension {
6
+ /**
7
+ * @param {?} width
8
+ * @param {?} height
9
+ */
10
+ constructor(width, height) {
11
+ this.width = width;
12
+ this.height = height;
13
+ }
14
+ }
15
+ if (false) {
16
+ /** @type {?} */
17
+ Dimension.prototype.width;
18
+ /** @type {?} */
19
+ Dimension.prototype.height;
20
+ }
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGltZW5zaW9uLmNsYXNzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGNvb2xvbi9hbmd1bGFyLXVpLXBvd2VydXBzLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvdHlwZXMvZGltZW5zaW9uLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxNQUFNLE9BQU8sU0FBUzs7Ozs7SUFDbEIsWUFBcUIsS0FBYSxFQUFXLE1BQWM7UUFBdEMsVUFBSyxHQUFMLEtBQUssQ0FBUTtRQUFXLFdBQU0sR0FBTixNQUFNLENBQVE7SUFBRSxDQUFDO0NBQ2pFOzs7SUFEZSwwQkFBc0I7O0lBQUUsMkJBQXVCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIERpbWVuc2lvbiB7XG4gICAgY29uc3RydWN0b3IocmVhZG9ubHkgd2lkdGg6IG51bWJlciwgcmVhZG9ubHkgaGVpZ2h0OiBudW1iZXIpe31cbn1cbiJdfQ==
@@ -0,0 +1,36 @@
1
+ /**
2
+ * @fileoverview added by tsickle
3
+ * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
+ */
5
+ export class Point {
6
+ /**
7
+ * @param {?} x
8
+ * @param {?} y
9
+ */
10
+ constructor(x, y) {
11
+ this.x = x;
12
+ this.y = y;
13
+ }
14
+ /**
15
+ * @param {?} data
16
+ * @return {?}
17
+ */
18
+ static from(data) {
19
+ return new Point(data.x, data.y);
20
+ }
21
+ /**
22
+ * @param {?} x
23
+ * @param {?} y
24
+ * @return {?}
25
+ */
26
+ translate(x, y) {
27
+ return new Point(this.x + x, this.y + y);
28
+ }
29
+ }
30
+ if (false) {
31
+ /** @type {?} */
32
+ Point.prototype.x;
33
+ /** @type {?} */
34
+ Point.prototype.y;
35
+ }
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9pbnQuY2xhc3MuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AY29vbG9uL2FuZ3VsYXItdWktcG93ZXJ1cHMvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy90eXBlcy9wb2ludC5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsTUFBTSxPQUFPLEtBQUs7Ozs7O0lBTWQsWUFBcUIsQ0FBUyxFQUFXLENBQVM7UUFBN0IsTUFBQyxHQUFELENBQUMsQ0FBUTtRQUFXLE1BQUMsR0FBRCxDQUFDLENBQVE7SUFDbEQsQ0FBQzs7Ozs7SUFMRCxNQUFNLENBQUMsSUFBSSxDQUFDLElBQThCO1FBQ3RDLE9BQU8sSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDckMsQ0FBQzs7Ozs7O0lBS0QsU0FBUyxDQUFDLENBQVMsRUFBRSxDQUFTO1FBQzFCLE9BQU8sSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUM3QyxDQUFDO0NBQ0o7OztJQU5lLGtCQUFrQjs7SUFBRSxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgUG9pbnQge1xuXG4gICAgc3RhdGljIGZyb20oZGF0YTogeyB4OiBudW1iZXIsIHk6IG51bWJlciB9KSB7XG4gICAgICAgIHJldHVybiBuZXcgUG9pbnQoZGF0YS54LCBkYXRhLnkpO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKHJlYWRvbmx5IHg6IG51bWJlciwgcmVhZG9ubHkgeTogbnVtYmVyKSB7XG4gICAgfVxuXG4gICAgdHJhbnNsYXRlKHg6IG51bWJlciwgeTogbnVtYmVyKTogUG9pbnQge1xuICAgICAgICByZXR1cm4gbmV3IFBvaW50KHRoaXMueCArIHgsIHRoaXMueSArIHkpO1xuICAgIH1cbn1cbiJdfQ==