@coolon/angular-ui-powerups 2.0.0-alpha.3 → 2.0.0-alpha.30

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 (268) hide show
  1. package/CHANGELOG.md +184 -0
  2. package/assets/commands.scss +3 -0
  3. package/assets/form.scss +5 -4
  4. package/assets/icons.scss +30 -0
  5. package/assets/styles.scss +2 -0
  6. package/bundles/coolon-angular-ui-powerups.umd.js +1168 -322
  7. package/bundles/coolon-angular-ui-powerups.umd.js.map +1 -1
  8. package/bundles/coolon-angular-ui-powerups.umd.min.js +2 -2
  9. package/bundles/coolon-angular-ui-powerups.umd.min.js.map +1 -1
  10. package/coolon-angular-ui-powerups.d.ts +64 -54
  11. package/coolon-angular-ui-powerups.metadata.json +1 -1
  12. package/esm2015/coolon-angular-ui-powerups.js +62 -52
  13. package/esm2015/coolon-angular-ui-powerups.js.map +1 -1
  14. package/esm2015/coolon-angular-ui-powerups.metadata.json +1 -1
  15. package/esm2015/lib/angular-ui-powerups.module.ngfactory.js.map +1 -1
  16. package/esm2015/lib/components/card-container/card-container.component.js +1 -1
  17. package/esm2015/lib/components/card-container/card-container.component.metadata.json +1 -1
  18. package/esm2015/lib/components/commands/command-bar.component.js +51 -0
  19. package/esm2015/lib/components/commands/command-bar.component.js.map +1 -0
  20. package/esm2015/lib/components/commands/command-bar.component.metadata.json +1 -0
  21. package/esm2015/lib/components/commands/command-bar.component.ngfactory.js.map +1 -0
  22. package/esm2015/lib/components/commands/command-container.js +20 -0
  23. package/esm2015/lib/components/commands/command-container.js.map +1 -0
  24. package/esm2015/lib/components/commands/command-container.metadata.json +1 -0
  25. package/esm2015/lib/components/commands/command-face/command-face.component.js +91 -0
  26. package/esm2015/lib/components/commands/command-face/command-face.component.js.map +1 -0
  27. package/esm2015/lib/components/commands/command-face/command-face.component.metadata.json +1 -0
  28. package/esm2015/lib/components/commands/command-face/command-face.component.ngfactory.js.map +1 -0
  29. package/esm2015/lib/components/commands/command-face/command-face.component.scss.ngstyle.js.map +1 -0
  30. package/esm2015/lib/components/commands/command-face.js +74 -0
  31. package/esm2015/lib/components/commands/command-face.js.map +1 -0
  32. package/esm2015/lib/components/commands/command-face.metadata.json +1 -0
  33. package/esm2015/lib/components/commands/command.component.js +38 -0
  34. package/esm2015/lib/components/commands/command.component.js.map +1 -0
  35. package/esm2015/lib/components/commands/command.component.metadata.json +1 -0
  36. package/esm2015/lib/components/commands/command.component.ngfactory.js.map +1 -0
  37. package/esm2015/lib/components/commands/popup-menu/abstract-popup-menu.component.js +57 -0
  38. package/esm2015/lib/components/commands/popup-menu/abstract-popup-menu.component.js.map +1 -0
  39. package/esm2015/lib/components/commands/popup-menu/abstract-popup-menu.component.metadata.json +1 -0
  40. package/esm2015/lib/components/commands/popup-menu/abstract-popup-menu.component.ngfactory.js.map +1 -0
  41. package/esm2015/lib/components/commands/popup-menu/more-menu.component.js +40 -0
  42. package/esm2015/lib/components/commands/popup-menu/more-menu.component.js.map +1 -0
  43. package/esm2015/lib/components/commands/popup-menu/more-menu.component.metadata.json +1 -0
  44. package/esm2015/lib/components/commands/popup-menu/more-menu.component.ngfactory.js.map +1 -0
  45. package/esm2015/lib/components/commands/popup-menu/popup-menu.component.js +49 -0
  46. package/esm2015/lib/components/commands/popup-menu/popup-menu.component.js.map +1 -0
  47. package/esm2015/lib/components/commands/popup-menu/popup-menu.component.metadata.json +1 -0
  48. package/esm2015/lib/components/commands/popup-menu/popup-menu.component.ngfactory.js.map +1 -0
  49. package/esm2015/lib/components/commands/popup-menu-renderer/popup-menu-renderer.component.js +62 -0
  50. package/esm2015/lib/components/commands/popup-menu-renderer/popup-menu-renderer.component.js.map +1 -0
  51. package/esm2015/lib/components/commands/popup-menu-renderer/popup-menu-renderer.component.metadata.json +1 -0
  52. package/esm2015/lib/components/commands/popup-menu-renderer/popup-menu-renderer.component.ngfactory.js.map +1 -0
  53. package/esm2015/lib/components/commands/popup-menu-renderer/popup-menu-renderer.component.scss.shim.ngstyle.js.map +1 -0
  54. package/esm2015/lib/components/components.module.js +58 -14
  55. package/esm2015/lib/components/components.module.js.map +1 -1
  56. package/esm2015/lib/components/components.module.metadata.json +1 -1
  57. package/esm2015/lib/components/components.module.ngfactory.js.map +1 -1
  58. package/esm2015/lib/components/forms/abstract-input.component.js +12 -4
  59. package/esm2015/lib/components/forms/abstract-input.component.js.map +1 -1
  60. package/esm2015/lib/components/forms/abstract-input.component.metadata.json +1 -1
  61. package/esm2015/lib/components/forms/abstract-list-input.component.js +51 -6
  62. package/esm2015/lib/components/forms/abstract-list-input.component.js.map +1 -1
  63. package/esm2015/lib/components/forms/abstract-list-input.component.metadata.json +1 -1
  64. package/esm2015/lib/components/forms/abstract-value-input.component.js +47 -3
  65. package/esm2015/lib/components/forms/abstract-value-input.component.js.map +1 -1
  66. package/esm2015/lib/components/forms/abstract-value-input.component.metadata.json +1 -1
  67. package/esm2015/lib/components/forms/autocomplete-input/autocomplete-input.component.js +70 -0
  68. package/esm2015/lib/components/forms/autocomplete-input/autocomplete-input.component.js.map +1 -0
  69. package/esm2015/lib/components/forms/autocomplete-input/autocomplete-input.component.metadata.json +1 -0
  70. package/esm2015/lib/components/forms/autocomplete-input/autocomplete-input.component.ngfactory.js.map +1 -0
  71. package/esm2015/lib/components/forms/autocomplete-input/autocomplete-input.component.scss.shim.ngstyle.js.map +1 -0
  72. package/esm2015/lib/components/forms/checkbox-input/checkbox-input.component.js +3 -6
  73. package/esm2015/lib/components/forms/checkbox-input/checkbox-input.component.js.map +1 -1
  74. package/esm2015/lib/components/forms/checkbox-input/checkbox-input.component.metadata.json +1 -1
  75. package/esm2015/lib/components/forms/multiple-select-input/multiple-select-input.component.js +8 -13
  76. package/esm2015/lib/components/forms/multiple-select-input/multiple-select-input.component.js.map +1 -1
  77. package/esm2015/lib/components/forms/multiple-select-input/multiple-select-input.component.metadata.json +1 -1
  78. package/esm2015/lib/components/forms/number-input/number-input.component.js +3 -6
  79. package/esm2015/lib/components/forms/number-input/number-input.component.js.map +1 -1
  80. package/esm2015/lib/components/forms/number-input/number-input.component.metadata.json +1 -1
  81. package/esm2015/lib/components/forms/password-input/password-input.component.js +4 -7
  82. package/esm2015/lib/components/forms/password-input/password-input.component.js.map +1 -1
  83. package/esm2015/lib/components/forms/password-input/password-input.component.metadata.json +1 -1
  84. package/esm2015/lib/components/forms/select-input/select-input.component.js +2 -5
  85. package/esm2015/lib/components/forms/select-input/select-input.component.js.map +1 -1
  86. package/esm2015/lib/components/forms/select-input/select-input.component.metadata.json +1 -1
  87. package/esm2015/lib/components/forms/string-input/string-input.component.js +3 -7
  88. package/esm2015/lib/components/forms/string-input/string-input.component.js.map +1 -1
  89. package/esm2015/lib/components/forms/string-input/string-input.component.metadata.json +1 -1
  90. package/esm2015/lib/components/forms/text-input/text-input.component.js +3 -6
  91. package/esm2015/lib/components/forms/text-input/text-input.component.js.map +1 -1
  92. package/esm2015/lib/components/forms/text-input/text-input.component.metadata.json +1 -1
  93. package/esm2015/lib/components/icon/icon.component.js +17 -4
  94. package/esm2015/lib/components/icon/icon.component.js.map +1 -1
  95. package/esm2015/lib/components/icon/icon.component.metadata.json +1 -1
  96. package/esm2015/lib/components/index.js +12 -1
  97. package/esm2015/lib/components/index.js.map +1 -1
  98. package/esm2015/lib/components/index.metadata.json +1 -1
  99. package/esm2015/lib/components/table/cell-editors.js.map +1 -1
  100. package/esm2015/lib/components/table/{cell-protal-ref.js → cell-portal-ref.js} +7 -3
  101. package/esm2015/lib/components/table/cell-portal-ref.js.map +1 -0
  102. package/esm2015/lib/components/table/{cell-protal-ref.metadata.json → cell-portal-ref.metadata.json} +1 -1
  103. package/esm2015/lib/components/table/column-model.js +66 -11
  104. package/esm2015/lib/components/table/column-model.js.map +1 -1
  105. package/esm2015/lib/components/table/column-model.metadata.json +1 -1
  106. package/esm2015/lib/components/table/mutable-cell-renderer.js +1 -0
  107. package/esm2015/lib/components/table/mutable-cell-renderer.js.map +1 -0
  108. package/esm2015/lib/components/table/mutable-cell-renderer.metadata.json +1 -0
  109. package/esm2015/lib/components/table/table-cell-renderer/table-cell-renderer.component.js +1 -1
  110. package/esm2015/lib/components/table/table-cell-renderer/table-cell-renderer.component.js.map +1 -1
  111. package/esm2015/lib/components/table/table-header-cell-renderer/table-header-cell-renderer.component.js +1 -1
  112. package/esm2015/lib/components/table/table-header-cell-renderer/table-header-cell-renderer.component.js.map +1 -1
  113. package/esm2015/lib/components/table/table-model.js +11 -10
  114. package/esm2015/lib/components/table/table-model.js.map +1 -1
  115. package/esm2015/lib/components/table/table-model.metadata.json +1 -1
  116. package/esm2015/lib/components/table/table-row-menu/table-row-menu.component.js +82 -0
  117. package/esm2015/lib/components/table/table-row-menu/table-row-menu.component.js.map +1 -0
  118. package/esm2015/lib/components/table/table-row-menu/table-row-menu.component.metadata.json +1 -0
  119. package/esm2015/lib/components/table/table-row-menu/table-row-menu.component.ngfactory.js.map +1 -0
  120. package/esm2015/lib/components/table/table.component.js +1 -1
  121. package/esm2015/lib/components/table/table.component.js.map +1 -1
  122. package/esm2015/lib/components/table/table.component.metadata.json +1 -1
  123. package/esm2015/lib/interaction/components/activity-container/activity-container.component.js +32 -4
  124. package/esm2015/lib/interaction/components/activity-container/activity-container.component.js.map +1 -1
  125. package/esm2015/lib/interaction/components/activity-container/activity-container.component.metadata.json +1 -1
  126. package/esm2015/lib/interaction/components/activity-container/activity-outlet/activity-outlet.component.js +1 -1
  127. package/esm2015/lib/interaction/components/activity-container/activity-outlet/activity-outlet.component.js.map +1 -1
  128. package/esm2015/lib/interaction/components/activity-container/activity-outlet/activity-outlet.component.metadata.json +1 -1
  129. package/esm2015/lib/interaction/interaction.module.ngfactory.js.map +1 -1
  130. package/esm2015/lib/place/place-component.js +1 -1
  131. package/esm2015/lib/place/place-component.js.map +1 -1
  132. package/esm2015/lib/place/place-router.js +2 -8
  133. package/esm2015/lib/place/place-router.js.map +1 -1
  134. package/esm2015/lib/place/place-router.metadata.json +1 -1
  135. package/esm2015/lib/place/place.module.ngfactory.js.map +1 -1
  136. package/esm2015/lib/place/route/parameter-decorators.js +2 -3
  137. package/esm2015/lib/place/route/parameter-decorators.js.map +1 -1
  138. package/esm2015/lib/place/route/parameter-decorators.metadata.json +1 -1
  139. package/esm5/coolon-angular-ui-powerups.js +62 -52
  140. package/esm5/coolon-angular-ui-powerups.js.map +1 -1
  141. package/esm5/lib/angular-ui-powerups.module.ngfactory.js.map +1 -1
  142. package/esm5/lib/components/card-container/card-container.component.js +1 -1
  143. package/esm5/lib/components/commands/command-bar.component.js +31 -0
  144. package/esm5/lib/components/commands/command-bar.component.js.map +1 -0
  145. package/esm5/lib/components/commands/command-bar.component.ngfactory.js.map +1 -0
  146. package/esm5/lib/components/commands/command-container.js +30 -0
  147. package/esm5/lib/components/commands/command-container.js.map +1 -0
  148. package/esm5/lib/components/commands/command-face/command-face.component.js +122 -0
  149. package/esm5/lib/components/commands/command-face/command-face.component.js.map +1 -0
  150. package/esm5/lib/components/commands/command-face/command-face.component.ngfactory.js.map +1 -0
  151. package/esm5/lib/components/commands/command-face/command-face.component.scss.ngstyle.js.map +1 -0
  152. package/esm5/lib/components/commands/command-face.js +103 -0
  153. package/esm5/lib/components/commands/command-face.js.map +1 -0
  154. package/esm5/lib/components/commands/command.component.js +41 -0
  155. package/esm5/lib/components/commands/command.component.js.map +1 -0
  156. package/esm5/lib/components/commands/command.component.ngfactory.js.map +1 -0
  157. package/esm5/lib/components/commands/popup-menu/abstract-popup-menu.component.js +64 -0
  158. package/esm5/lib/components/commands/popup-menu/abstract-popup-menu.component.js.map +1 -0
  159. package/esm5/lib/components/commands/popup-menu/abstract-popup-menu.component.ngfactory.js.map +1 -0
  160. package/esm5/lib/components/commands/popup-menu/more-menu.component.js +35 -0
  161. package/esm5/lib/components/commands/popup-menu/more-menu.component.js.map +1 -0
  162. package/esm5/lib/components/commands/popup-menu/more-menu.component.ngfactory.js.map +1 -0
  163. package/esm5/lib/components/commands/popup-menu/popup-menu.component.js +45 -0
  164. package/esm5/lib/components/commands/popup-menu/popup-menu.component.js.map +1 -0
  165. package/esm5/lib/components/commands/popup-menu/popup-menu.component.ngfactory.js.map +1 -0
  166. package/esm5/lib/components/commands/popup-menu-renderer/popup-menu-renderer.component.js +66 -0
  167. package/esm5/lib/components/commands/popup-menu-renderer/popup-menu-renderer.component.js.map +1 -0
  168. package/esm5/lib/components/commands/popup-menu-renderer/popup-menu-renderer.component.ngfactory.js.map +1 -0
  169. package/esm5/lib/components/commands/popup-menu-renderer/popup-menu-renderer.component.scss.shim.ngstyle.js.map +1 -0
  170. package/esm5/lib/components/components.module.js +58 -14
  171. package/esm5/lib/components/components.module.js.map +1 -1
  172. package/esm5/lib/components/components.module.ngfactory.js.map +1 -1
  173. package/esm5/lib/components/forms/abstract-input.component.js +12 -4
  174. package/esm5/lib/components/forms/abstract-input.component.js.map +1 -1
  175. package/esm5/lib/components/forms/abstract-list-input.component.js +56 -6
  176. package/esm5/lib/components/forms/abstract-list-input.component.js.map +1 -1
  177. package/esm5/lib/components/forms/abstract-value-input.component.js +52 -3
  178. package/esm5/lib/components/forms/abstract-value-input.component.js.map +1 -1
  179. package/esm5/lib/components/forms/autocomplete-input/autocomplete-input.component.js +73 -0
  180. package/esm5/lib/components/forms/autocomplete-input/autocomplete-input.component.js.map +1 -0
  181. package/esm5/lib/components/forms/autocomplete-input/autocomplete-input.component.ngfactory.js.map +1 -0
  182. package/esm5/lib/components/forms/autocomplete-input/autocomplete-input.component.scss.shim.ngstyle.js.map +1 -0
  183. package/esm5/lib/components/forms/checkbox-input/checkbox-input.component.js +3 -6
  184. package/esm5/lib/components/forms/checkbox-input/checkbox-input.component.js.map +1 -1
  185. package/esm5/lib/components/forms/multiple-select-input/multiple-select-input.component.js +8 -13
  186. package/esm5/lib/components/forms/multiple-select-input/multiple-select-input.component.js.map +1 -1
  187. package/esm5/lib/components/forms/number-input/number-input.component.js +3 -6
  188. package/esm5/lib/components/forms/number-input/number-input.component.js.map +1 -1
  189. package/esm5/lib/components/forms/password-input/password-input.component.js +4 -7
  190. package/esm5/lib/components/forms/password-input/password-input.component.js.map +1 -1
  191. package/esm5/lib/components/forms/select-input/select-input.component.js +2 -5
  192. package/esm5/lib/components/forms/select-input/select-input.component.js.map +1 -1
  193. package/esm5/lib/components/forms/string-input/string-input.component.js +3 -7
  194. package/esm5/lib/components/forms/string-input/string-input.component.js.map +1 -1
  195. package/esm5/lib/components/forms/text-input/text-input.component.js +3 -6
  196. package/esm5/lib/components/forms/text-input/text-input.component.js.map +1 -1
  197. package/esm5/lib/components/icon/icon.component.js +15 -3
  198. package/esm5/lib/components/icon/icon.component.js.map +1 -1
  199. package/esm5/lib/components/index.js +12 -1
  200. package/esm5/lib/components/index.js.map +1 -1
  201. package/esm5/lib/components/table/cell-editors.js.map +1 -1
  202. package/esm5/lib/components/table/{cell-protal-ref.js → cell-portal-ref.js} +7 -3
  203. package/esm5/lib/components/table/cell-portal-ref.js.map +1 -0
  204. package/esm5/lib/components/table/column-model.js +67 -11
  205. package/esm5/lib/components/table/column-model.js.map +1 -1
  206. package/esm5/lib/components/table/mutable-cell-renderer.js +1 -0
  207. package/esm5/lib/components/table/mutable-cell-renderer.js.map +1 -0
  208. package/esm5/lib/components/table/table-cell-renderer/table-cell-renderer.component.js +1 -1
  209. package/esm5/lib/components/table/table-cell-renderer/table-cell-renderer.component.js.map +1 -1
  210. package/esm5/lib/components/table/table-header-cell-renderer/table-header-cell-renderer.component.js +1 -1
  211. package/esm5/lib/components/table/table-header-cell-renderer/table-header-cell-renderer.component.js.map +1 -1
  212. package/esm5/lib/components/table/table-model.js +11 -11
  213. package/esm5/lib/components/table/table-model.js.map +1 -1
  214. package/esm5/lib/components/table/table-row-menu/table-row-menu.component.js +66 -0
  215. package/esm5/lib/components/table/table-row-menu/table-row-menu.component.js.map +1 -0
  216. package/esm5/lib/components/table/table-row-menu/table-row-menu.component.ngfactory.js.map +1 -0
  217. package/esm5/lib/components/table/table.component.js +1 -1
  218. package/esm5/lib/components/table/table.component.js.map +1 -1
  219. package/esm5/lib/interaction/components/activity-container/activity-container.component.js +32 -4
  220. package/esm5/lib/interaction/components/activity-container/activity-container.component.js.map +1 -1
  221. package/esm5/lib/interaction/components/activity-container/activity-outlet/activity-outlet.component.js +1 -1
  222. package/esm5/lib/interaction/components/activity-container/activity-outlet/activity-outlet.component.js.map +1 -1
  223. package/esm5/lib/interaction/interaction.module.ngfactory.js.map +1 -1
  224. package/esm5/lib/place/place-component.js +1 -1
  225. package/esm5/lib/place/place-component.js.map +1 -1
  226. package/esm5/lib/place/place-router.js +2 -8
  227. package/esm5/lib/place/place-router.js.map +1 -1
  228. package/esm5/lib/place/place.module.ngfactory.js.map +1 -1
  229. package/esm5/lib/place/route/parameter-decorators.js +2 -3
  230. package/esm5/lib/place/route/parameter-decorators.js.map +1 -1
  231. package/fesm2015/coolon-angular-ui-powerups.js +1034 -253
  232. package/fesm2015/coolon-angular-ui-powerups.js.map +1 -1
  233. package/fesm5/coolon-angular-ui-powerups.js +1083 -253
  234. package/fesm5/coolon-angular-ui-powerups.js.map +1 -1
  235. package/lib/components/commands/command-bar.component.d.ts +10 -0
  236. package/lib/components/commands/command-container.d.ts +15 -0
  237. package/lib/components/commands/command-face/command-face.component.d.ts +29 -0
  238. package/lib/components/commands/command-face.d.ts +24 -0
  239. package/lib/components/commands/command.component.d.ts +15 -0
  240. package/lib/components/commands/popup-menu/abstract-popup-menu.component.d.ts +18 -0
  241. package/lib/components/commands/popup-menu/more-menu.component.d.ts +9 -0
  242. package/lib/components/commands/popup-menu/popup-menu.component.d.ts +14 -0
  243. package/lib/components/commands/popup-menu-renderer/popup-menu-renderer.component.d.ts +21 -0
  244. package/lib/components/forms/abstract-input.component.d.ts +8 -2
  245. package/lib/components/forms/abstract-list-input.component.d.ts +10 -3
  246. package/lib/components/forms/abstract-value-input.component.d.ts +9 -3
  247. package/lib/components/forms/autocomplete-input/autocomplete-input.component.d.ts +25 -0
  248. package/lib/components/forms/checkbox-input/checkbox-input.component.d.ts +0 -2
  249. package/lib/components/forms/multiple-select-input/multiple-select-input.component.d.ts +8 -4
  250. package/lib/components/forms/number-input/number-input.component.d.ts +0 -2
  251. package/lib/components/forms/password-input/password-input.component.d.ts +0 -2
  252. package/lib/components/forms/select-input/select-input.component.d.ts +2 -2
  253. package/lib/components/forms/string-input/string-input.component.d.ts +1 -2
  254. package/lib/components/forms/text-input/text-input.component.d.ts +0 -2
  255. package/lib/components/icon/icon.component.d.ts +15 -0
  256. package/lib/components/index.d.ts +13 -1
  257. package/lib/components/table/cell-editors.d.ts +3 -3
  258. package/lib/components/table/{cell-protal-ref.d.ts → cell-portal-ref.d.ts} +4 -4
  259. package/lib/components/table/column-model.d.ts +18 -12
  260. package/lib/components/table/mutable-cell-renderer.d.ts +6 -0
  261. package/lib/components/table/table-cell-renderer/table-cell-renderer.component.d.ts +1 -1
  262. package/lib/components/table/table-header-cell-renderer/table-header-cell-renderer.component.d.ts +1 -1
  263. package/lib/components/table/table-model.d.ts +12 -4
  264. package/lib/components/table/table-row-menu/table-row-menu.component.d.ts +25 -0
  265. package/lib/interaction/components/activity-container/activity-container.component.d.ts +3 -1
  266. package/package.json +4 -4
  267. package/esm2015/lib/components/table/cell-protal-ref.js.map +0 -1
  268. package/esm5/lib/components/table/cell-protal-ref.js.map +0 -1
@@ -1,12 +1,13 @@
1
1
  import { __decorate, __extends, __metadata } from "tslib";
2
2
  /* tslint:disable:no-input-rename */
3
3
  import { Component, EventEmitter, HostBinding, HostListener, Input, Output } from '@angular/core';
4
- import { Command } from '@coolon/pectin';
4
+ import { Command, EventListenerList } from '@coolon/pectin';
5
5
  import { DisposableComponent } from '../disposable-component';
6
6
  var AbstractInputComponent = /** @class */ (function (_super) {
7
7
  __extends(AbstractInputComponent, _super);
8
8
  function AbstractInputComponent() {
9
9
  var _this = _super.call(this) || this;
10
+ _this.onValueEditedListeners = new EventListenerList();
10
11
  _this.dense = false;
11
12
  // TODO: fix this.
12
13
  // tslint:disable-next-line:no-output-native
@@ -57,7 +58,7 @@ var AbstractInputComponent = /** @class */ (function (_super) {
57
58
  };
58
59
  Object.defineProperty(AbstractInputComponent.prototype, "enabled", {
59
60
  get: function () {
60
- return this.inputModel.enabled;
61
+ return this.formValueModel.enabled;
61
62
  },
62
63
  enumerable: true,
63
64
  configurable: true
@@ -67,7 +68,7 @@ var AbstractInputComponent = /** @class */ (function (_super) {
67
68
  };
68
69
  Object.defineProperty(AbstractInputComponent.prototype, "errorList", {
69
70
  get: function () {
70
- return this.inputModel.errorList;
71
+ return this.formValueModel.errorList;
71
72
  },
72
73
  enumerable: true,
73
74
  configurable: true
@@ -81,7 +82,7 @@ var AbstractInputComponent = /** @class */ (function (_super) {
81
82
  });
82
83
  Object.defineProperty(AbstractInputComponent.prototype, "focusContext", {
83
84
  get: function () {
84
- return this.inputModel.focusContext;
85
+ return this.formValueModel.focusContext;
85
86
  },
86
87
  enumerable: true,
87
88
  configurable: true
@@ -100,6 +101,13 @@ var AbstractInputComponent = /** @class */ (function (_super) {
100
101
  enumerable: true,
101
102
  configurable: true
102
103
  });
104
+ /**
105
+ * Invokes the callback when this components value is changed by a user edit.
106
+ * @param callback
107
+ */
108
+ AbstractInputComponent.prototype.onValueEdited = function (callback) {
109
+ return this.onValueEditedListeners.add(callback);
110
+ };
103
111
  __decorate([
104
112
  Input(),
105
113
  __metadata("design:type", String)
@@ -1 +1 @@
1
- {"version":3,"file":"abstract-input.component.js","sourceRoot":"ng://@coolon/angular-ui-powerups/","sources":["lib/components/forms/abstract-input.component.ts"],"names":[],"mappings":"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","sourcesContent":["/* tslint:disable:no-input-rename */\nimport { Component, EventEmitter, HostBinding, HostListener, Input, OnInit, Output } from '@angular/core';\nimport { FormControl, FormGroupDirective, NgForm } from '@angular/forms';\nimport { ErrorStateMatcher } from '@angular/material/core';\nimport { Command, FocusManager, ListModel, ValueModel } from '@coolon/pectin';\nimport { DisposableComponent } from '../disposable-component';\n\ninterface InputModel<T> {\n value: T;\n enabled: ValueModel<boolean>;\n errorList: ListModel<string>;\n focusContext: FocusManager.Context;\n}\n\n@Component({ template: '' })\nexport class AbstractInputComponent<T> extends DisposableComponent implements OnInit {\n\n protected inputModel: InputModel<T>;\n\n @Input() label: string;\n @Input('floatLabel') userFloatLabel: 'auto' | 'always' | 'never';\n @Input() hint: string;\n @Input() placeholder: string;\n\n @HostBinding('class.dense')\n @Input() dense = false;\n\n // Note: I don't need to use delegates here as I never subscribe to the commands models\n @Input('command.focus') focusCommand: Command<any>;\n @Input('command.blur') blurCommand: Command<any>;\n @Input('command.enter') enterCommand: Command<any>;\n @Input('command.escape') escapeCommand: Command<any>;\n @Input('command.click') clickCommand: Command<any>;\n\n // TODO: fix this.\n // tslint:disable-next-line:no-output-native\n @Output() focus = new EventEmitter();\n // tslint:disable-next-line:no-output-native\n @Output() blur = new EventEmitter();\n // tslint:disable-next-line:no-output-native\n @Output() enterKey = new EventEmitter();\n // tslint:disable-next-line:no-output-native\n @Output() escapeKey = new EventEmitter();\n\n readonly errorStateMatcher: ErrorStateMatcher;\n\n @HostBinding('class')\n baseClassName = 'aup-input-component';\n\n @HostListener('click')\n notifyClick() {\n this.safelyInvoke(this.clickCommand);\n }\n\n @HostListener('focusin')\n notifyFocusIn() {\n this.safelyInvoke(this.focusCommand);\n this.focus.emit();\n }\n\n @HostListener('focusout')\n notifyFocusOut() {\n this.safelyInvoke(this.blurCommand);\n this.blur.emit();\n }\n\n notifyEnterKey() {\n this.safelyInvoke(this.enterCommand);\n this.enterKey.emit();\n }\n\n notifyEscapeKey() {\n this.safelyInvoke(this.escapeCommand);\n this.escapeKey.emit();\n }\n\n protected safelyInvoke(command: Command<any>) {\n if (command && command.enabled.value) {\n command.execute();\n }\n }\n\n constructor() {\n super();\n const self = this;\n this.errorStateMatcher = {\n isErrorState(control: FormControl | null, form: FormGroupDirective | NgForm | null): boolean {\n return self.hasErrors();\n }\n };\n }\n\n ngOnInit(): void {\n }\n\n isEnabled(): boolean {\n return this.enabled.value;\n }\n\n get enabled(): ValueModel<boolean> {\n return this.inputModel.enabled;\n }\n\n hasErrors(): boolean {\n return !this.errorList.query().isEmpty();\n }\n\n get errorList(): ListModel<string> {\n return this.inputModel.errorList;\n }\n\n get firstError() {\n return this.hasErrors() ? this.errorList.value[0] : null;\n }\n\n get focusContext() {\n return this.inputModel.focusContext;\n }\n\n get floatLabel(): 'auto' | 'always' | 'never' {\n return this.dense ? 'never' : this.userFloatLabel;\n }\n\n get showHint(): boolean {\n return this.dense ? false : !!this.hint;\n }\n\n}\n"]}
1
+ {"version":3,"file":"abstract-input.component.js","sourceRoot":"ng://@coolon/angular-ui-powerups/","sources":["lib/components/forms/abstract-input.component.ts"],"names":[],"mappings":"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","sourcesContent":["/* tslint:disable:no-input-rename */\nimport { Component, EventEmitter, HostBinding, HostListener, Input, OnInit, Output } from '@angular/core';\nimport { FormControl, FormGroupDirective, NgForm } from '@angular/forms';\nimport { ErrorStateMatcher } from '@angular/material/core';\nimport {\n Command, Disposable,\n EventListenerList,\n FocusManager,\n ListModel,\n MutableValueModel,\n StoreInValueModel,\n ValueModel\n} from '@coolon/pectin';\nimport { DisposableComponent } from '../disposable-component';\n\ninterface InputModel<T> {\n value: T;\n enabled: ValueModel<boolean>;\n errorList: ListModel<string>;\n focusContext: FocusManager.Context;\n}\n\n@Component({ template: '' })\nexport class AbstractInputComponent<T> extends DisposableComponent implements OnInit {\n\n protected onValueEditedListeners = new EventListenerList<(is: T, was: T) => void>();\n\n protected formValueModel: InputModel<T>;\n\n @Input() label: string;\n @Input('floatLabel') userFloatLabel: 'auto' | 'always' | 'never';\n @Input() hint: string;\n @Input() placeholder: string;\n\n @HostBinding('class.dense')\n @Input() dense = false;\n\n // Note: I don't need to use delegates here as I never subscribe to the commands models\n @Input('command.focus') focusCommand: Command<any>;\n @Input('command.blur') blurCommand: Command<any>;\n @Input('command.enter') enterCommand: Command<any>;\n @Input('command.escape') escapeCommand: Command<any>;\n @Input('command.click') clickCommand: Command<any>;\n\n // TODO: fix this.\n // tslint:disable-next-line:no-output-native\n @Output() focus = new EventEmitter();\n // tslint:disable-next-line:no-output-native\n @Output() blur = new EventEmitter();\n // tslint:disable-next-line:no-output-native\n @Output() enterKey = new EventEmitter();\n // tslint:disable-next-line:no-output-native\n @Output() escapeKey = new EventEmitter();\n\n readonly errorStateMatcher: ErrorStateMatcher;\n\n @HostBinding('class')\n baseClassName = 'aup-input-component';\n\n @HostListener('click')\n notifyClick() {\n this.safelyInvoke(this.clickCommand);\n }\n\n @HostListener('focusin')\n notifyFocusIn() {\n this.safelyInvoke(this.focusCommand);\n this.focus.emit();\n }\n\n @HostListener('focusout')\n notifyFocusOut() {\n this.safelyInvoke(this.blurCommand);\n this.blur.emit();\n }\n\n notifyEnterKey() {\n this.safelyInvoke(this.enterCommand);\n this.enterKey.emit();\n }\n\n notifyEscapeKey() {\n this.safelyInvoke(this.escapeCommand);\n this.escapeKey.emit();\n }\n\n protected safelyInvoke(command: Command<any>) {\n if (command && command.enabled.value) {\n command.execute();\n }\n }\n\n constructor() {\n super();\n const self = this;\n this.errorStateMatcher = {\n isErrorState(control: FormControl | null, form: FormGroupDirective | NgForm | null): boolean {\n return self.hasErrors();\n }\n };\n }\n\n ngOnInit(): void {\n }\n\n isEnabled(): boolean {\n return this.enabled.value;\n }\n\n get enabled(): ValueModel<boolean> {\n return this.formValueModel.enabled;\n }\n\n hasErrors(): boolean {\n return !this.errorList.query().isEmpty();\n }\n\n get errorList(): ListModel<string> {\n return this.formValueModel.errorList;\n }\n\n get firstError() {\n return this.hasErrors() ? this.errorList.value[0] : null;\n }\n\n get focusContext() {\n return this.formValueModel.focusContext;\n }\n\n get floatLabel(): 'auto' | 'always' | 'never' {\n return this.dense ? 'never' : this.userFloatLabel;\n }\n\n get showHint(): boolean {\n return this.dense ? false : !!this.hint;\n }\n\n /**\n * Invokes the callback when this components value is changed by a user edit.\n * @param callback\n */\n onValueEdited(callback: (is: T, was: T) => void): Disposable {\n return this.onValueEditedListeners.add(callback);\n }\n\n}\n"]}
@@ -1,12 +1,12 @@
1
- import { __decorate, __extends } from "tslib";
1
+ import { __decorate, __extends, __metadata } from "tslib";
2
2
  /* tslint:disable:no-input-rename */
3
- import { Component } from '@angular/core';
4
- import { Form } from '@coolon/pectin';
3
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
4
+ import { Binding, DebugContext, Dsl, Form, Guard, MutableListModel, TrackExternal } from '@coolon/pectin';
5
5
  import { AbstractInputComponent } from './abstract-input.component';
6
6
  var AbstractListInputComponent = /** @class */ (function (_super) {
7
7
  __extends(AbstractListInputComponent, _super);
8
8
  function AbstractListInputComponent() {
9
- var _this = _super !== null && _super.apply(this, arguments) || this;
9
+ var _this = _super.call(this) || this;
10
10
  /**
11
11
  * A backing model for all our @Input() valueModel properties which should be defined as follows.
12
12
  *
@@ -18,11 +18,61 @@ var AbstractListInputComponent = /** @class */ (function (_super) {
18
18
  * gets told it's an Object and can't scan for a base type annotated with @DelegateUsing(..).
19
19
  */
20
20
  // We have to register it as a disposable so it ditches any listeners when we're disposed.
21
- _this.inputModel = _this.registerDisposable(new Form.DelegatingListModel());
21
+ _this.formValueModel = _this.registerDisposable(new Form.DelegatingListModel());
22
+ _this.componentListModel = new MutableListModel();
23
+ _this.setValueIsInProgress = new Guard();
24
+ _this.valueChange = new EventEmitter();
25
+ var _a = Dsl.disposeWith(_this), when = _a.when, valueOf = _a.valueOf, chain = _a.chain;
26
+ var binding = new Binding.Identity(_this.formValueModel, _this.componentListModel).writeRight();
27
+ var inExternalChange = valueOf.any(_this.setValueIsInProgress, chain(binding.direction).equals(Binding.Direction.RIGHT)).areTruthy();
28
+ when(_this.componentListModel).changes(function (is, was) {
29
+ _this.valueChange.emit(is);
30
+ _this.onValueEditedListeners.fire(function (l) { return l(is, was); });
31
+ }, {
32
+ initialValue: 'ignore',
33
+ // we never fire events during an external changes to the value. This allows
34
+ // the component to behave when used in the conventional angular
35
+ // fashion, i.e. [(value)]="..."
36
+ unless: inExternalChange
37
+ });
38
+ DebugContext.tag(_this.formValueModel, _this.constructor.name + ".formValueModel");
22
39
  return _this;
23
40
  }
41
+ Object.defineProperty(AbstractListInputComponent.prototype, "value", {
42
+ // We add support for simple direct display of values by allowing components to be used
43
+ // by `component.value = ...` This use of the component without a value model in tables
44
+ // and the like.
45
+ set: function (value) {
46
+ var _this = this;
47
+ this.setValueIsInProgress.whileTrue(function () {
48
+ if (!_this.listHolder) {
49
+ _this.listHolder = new MutableListModel(value);
50
+ _this.listModel = _this.listHolder;
51
+ }
52
+ else {
53
+ _this.listHolder.value = value;
54
+ }
55
+ });
56
+ },
57
+ enumerable: true,
58
+ configurable: true
59
+ });
60
+ __decorate([
61
+ Input(), TrackExternal({ delegateTo: 'formValueModel' }),
62
+ __metadata("design:type", Object)
63
+ ], AbstractListInputComponent.prototype, "listModel", void 0);
64
+ __decorate([
65
+ Input(),
66
+ __metadata("design:type", Array),
67
+ __metadata("design:paramtypes", [Array])
68
+ ], AbstractListInputComponent.prototype, "value", null);
69
+ __decorate([
70
+ Output(),
71
+ __metadata("design:type", Object)
72
+ ], AbstractListInputComponent.prototype, "valueChange", void 0);
24
73
  AbstractListInputComponent = __decorate([
25
- Component({ template: '' })
74
+ Component({ template: '' }),
75
+ __metadata("design:paramtypes", [])
26
76
  ], AbstractListInputComponent);
27
77
  return AbstractListInputComponent;
28
78
  }(AbstractInputComponent));
@@ -1 +1 @@
1
- {"version":3,"file":"abstract-list-input.component.js","sourceRoot":"ng://@coolon/angular-ui-powerups/","sources":["lib/components/forms/abstract-list-input.component.ts"],"names":[],"mappings":";AAAA,oCAAoC;AACpC,OAAO,EAAE,SAAS,EAAU,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAGpE;IAAmD,8CAA2B;IAA9E;QAAA,qEAeC;QAbC;;;;;;;;;WASG;QACD,0FAA0F;QACnF,gBAAU,GAAG,KAAI,CAAC,kBAAkB,CAAC,IAAI,IAAI,CAAC,mBAAmB,EAAK,CAAC,CAAC;;IAEnF,CAAC;IAfY,0BAA0B;QADtC,SAAS,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;OACf,0BAA0B,CAetC;IAAD,iCAAC;CAAA,AAfD,CAAmD,sBAAsB,GAexE;SAfY,0BAA0B","sourcesContent":["/* tslint:disable:no-input-rename */\nimport { Component, OnInit } from '@angular/core';\nimport { Form } from '@coolon/pectin';\nimport { AbstractInputComponent } from './abstract-input.component';\n\n@Component({ template: '' })\nexport class AbstractListInputComponent<T> extends AbstractInputComponent<T[]> implements OnInit {\n\n /**\n * A backing model for all our @Input() valueModel properties which should be defined as follows.\n *\n * @Input() @TrackExternal({useExisting: \"inputModel\"})\n * valueModel: Form.ListModelBase<string> | IMutableListModel<string>;\n *\n * This approach allows the input to accept plain or form models but all backed by a form\n * friendly delegate. We have to use an existing delegate for union types as pectin just\n * gets told it's an Object and can't scan for a base type annotated with @DelegateUsing(..).\n */\n // We have to register it as a disposable so it ditches any listeners when we're disposed.\n readonly inputModel = this.registerDisposable(new Form.DelegatingListModel<T>());\n\n}\n"]}
1
+ {"version":3,"file":"abstract-list-input.component.js","sourceRoot":"ng://@coolon/angular-ui-powerups/","sources":["lib/components/forms/abstract-list-input.component.ts"],"names":[],"mappings":";AAAA,oCAAoC;AACpC,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,EAAU,MAAM,EAAE,MAAM,eAAe,CAAC;AAC/E,OAAO,EACL,OAAO,EACP,YAAY,EACZ,GAAG,EAEH,IAAI,EACJ,KAAK,EAEL,gBAAgB,EAChB,aAAa,EACd,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAGpE;IAAmD,8CAA2B;IAuC5E;QAAA,YACE,iBAAO,SAmBR;QAtDD;;;;;;;;;WASG;QACD,0FAA0F;QACzE,oBAAc,GAAG,KAAI,CAAC,kBAAkB,CAAC,IAAI,IAAI,CAAC,mBAAmB,EAAK,CAAC,CAAC;QACtF,wBAAkB,GAAG,IAAI,gBAAgB,EAAK,CAAC;QAEhD,0BAAoB,GAAG,IAAI,KAAK,EAAE,CAAC;QAkBxB,iBAAW,GAAG,IAAI,YAAY,EAAO,CAAC;QAIjD,IAAA,2BAAgD,EAA9C,cAAI,EAAE,oBAAO,EAAE,gBAA+B,CAAC;QACvD,IAAM,OAAO,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAI,CAAC,cAAc,EAAE,KAAI,CAAC,kBAAkB,CAAC,CAAC,UAAU,EAAE,CAAC;QAChG,IAAM,gBAAgB,GAAG,OAAO,CAAC,GAAG,CAClC,KAAI,CAAC,oBAAoB,EACzB,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CACzD,CAAC,SAAS,EAAE,CAAC;QAEd,IAAI,CAAC,KAAI,CAAC,kBAAkB,CAAC,CAAC,OAAO,CAAC,UAAC,EAAE,EAAE,GAAG;YAC5C,KAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC1B,KAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,EAAV,CAAU,CAAC,CAAC;QACpD,CAAC,EAAE;YACD,YAAY,EAAE,QAAQ;YACtB,4EAA4E;YAC5E,gEAAgE;YAChE,gCAAgC;YAChC,MAAM,EAAE,gBAAgB;SACzB,CAAC,CAAC;QACH,YAAY,CAAC,GAAG,CAAC,KAAI,CAAC,cAAc,EAAK,KAAI,CAAC,WAAW,CAAC,IAAI,oBAAiB,CAAC,CAAC;;IACnF,CAAC;IAjCQ,sBAAI,6CAAK;QAHlB,uFAAuF;QACvF,wFAAwF;QACxF,gBAAgB;aACP,UAAU,KAAU;YAA7B,iBASC;YARC,IAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC;gBAClC,IAAI,CAAC,KAAI,CAAC,UAAU,EAAE;oBACpB,KAAI,CAAC,UAAU,GAAG,IAAI,gBAAgB,CAAI,KAAK,CAAC,CAAC;oBACjD,KAAI,CAAC,SAAS,GAAG,KAAI,CAAC,UAAU,CAAC;iBAClC;qBAAM;oBACL,KAAI,CAAC,UAAU,CAAC,KAAK,GAAG,KAAK,CAAC;iBAC/B;YACH,CAAC,CAAC,CAAC;QACL,CAAC;;;OAAA;IAhCD;QADC,KAAK,EAAE,EAAE,aAAa,CAAC,EAAE,UAAU,EAAE,gBAAgB,EAAE,CAAC;;iEACD;IAuB/C;QAAR,KAAK,EAAE;;;2DASP;IAES;QAAT,MAAM,EAAE;;mEAAgD;IArC9C,0BAA0B;QADtC,SAAS,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;;OACf,0BAA0B,CA6DtC;IAAD,iCAAC;CAAA,AA7DD,CAAmD,sBAAsB,GA6DxE;SA7DY,0BAA0B","sourcesContent":["/* tslint:disable:no-input-rename */\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport {\n Binding,\n DebugContext,\n Dsl,\n EventListenerList,\n Form,\n Guard,\n IMutableListModel,\n MutableListModel,\n TrackExternal\n} from '@coolon/pectin';\nimport { AbstractInputComponent } from './abstract-input.component';\n\n@Component({ template: '' })\nexport class AbstractListInputComponent<T> extends AbstractInputComponent<T[]> implements OnInit {\n\n @Input() @TrackExternal({ delegateTo: 'formValueModel' })\n listModel: Form.ListModelBase<T> | IMutableListModel<T>;\n\n /**\n * A backing model for all our @Input() valueModel properties which should be defined as follows.\n *\n * @Input() @TrackExternal({useExisting: \"inputModel\"})\n * valueModel: Form.ListModelBase<string> | IMutableListModel<string>;\n *\n * This approach allows the input to accept plain or form models but all backed by a form\n * friendly delegate. We have to use an existing delegate for union types as pectin just\n * gets told it's an Object and can't scan for a base type annotated with @DelegateUsing(..).\n */\n // We have to register it as a disposable so it ditches any listeners when we're disposed.\n protected readonly formValueModel = this.registerDisposable(new Form.DelegatingListModel<T>());\n readonly componentListModel = new MutableListModel<T>();\n\n private setValueIsInProgress = new Guard();\n // we need this for plain values otherwise our Form.DelegatingListModel will stay disabled.\n private listHolder: MutableListModel<T>;\n\n // We add support for simple direct display of values by allowing components to be used\n // by `component.value = ...` This use of the component without a value model in tables\n // and the like.\n @Input() set value(value: T[]) {\n this.setValueIsInProgress.whileTrue(() => {\n if (!this.listHolder) {\n this.listHolder = new MutableListModel<T>(value);\n this.listModel = this.listHolder;\n } else {\n this.listHolder.value = value;\n }\n });\n }\n\n @Output() readonly valueChange = new EventEmitter<T[]>();\n\n constructor() {\n super();\n const { when, valueOf, chain } = Dsl.disposeWith(this);\n const binding = new Binding.Identity(this.formValueModel, this.componentListModel).writeRight();\n const inExternalChange = valueOf.any(\n this.setValueIsInProgress,\n chain(binding.direction).equals(Binding.Direction.RIGHT)\n ).areTruthy();\n\n when(this.componentListModel).changes((is, was) => {\n this.valueChange.emit(is);\n this.onValueEditedListeners.fire(l => l(is, was));\n }, {\n initialValue: 'ignore',\n // we never fire events during an external changes to the value. This allows\n // the component to behave when used in the conventional angular\n // fashion, i.e. [(value)]=\"...\"\n unless: inExternalChange\n });\n DebugContext.tag(this.formValueModel, `${this.constructor.name}.formValueModel`);\n }\n\n}\n"]}
@@ -1,7 +1,7 @@
1
1
  import { __decorate, __extends, __metadata } from "tslib";
2
2
  /* tslint:disable:no-input-rename */
3
- import { Component } from '@angular/core';
4
- import { Form } from '@coolon/pectin';
3
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
4
+ import { Binding, DebugContext, Dsl, Form, Guard, MutableValueModel, TrackExternal } from '@coolon/pectin';
5
5
  import { AbstractInputComponent } from './abstract-input.component';
6
6
  var AbstractValueInputComponent = /** @class */ (function (_super) {
7
7
  __extends(AbstractValueInputComponent, _super);
@@ -18,9 +18,58 @@ var AbstractValueInputComponent = /** @class */ (function (_super) {
18
18
  * gets told it's an Object and can't scan for a base type annotated with @DelegateUsing(..).
19
19
  */
20
20
  // We have to register it as a disposable so it ditches any listeners when we're disposed.
21
- _this.inputModel = _this.registerDisposable(new Form.DelegatingValueModel());
21
+ _this.formValueModel = _this.registerDisposable(new Form.DelegatingValueModel());
22
+ _this.setValueInProgress = new Guard();
23
+ _this.componentValueModel = new MutableValueModel();
24
+ _this.valueChange = new EventEmitter();
25
+ var _a = Dsl.disposeWith(_this), when = _a.when, chain = _a.chain, valueOf = _a.valueOf;
26
+ var binding = new Binding.Identity(_this.formValueModel, _this.componentValueModel).writeRight();
27
+ var inExternalChange = valueOf.any(_this.setValueInProgress, chain(binding.direction).equals(Binding.Direction.RIGHT)).areTruthy();
28
+ when(_this.componentValueModel).changes(function (is, was) {
29
+ _this.valueChange.emit(is);
30
+ _this.onValueEditedListeners.fire(function (l) { return l(is, was); });
31
+ }, {
32
+ initialValue: 'ignore',
33
+ // we never fire events during an external set value operation. This allows
34
+ // the component to behave when used in the conventional angular
35
+ // fashion, i.e. [(value)]="..."
36
+ unless: inExternalChange
37
+ });
38
+ DebugContext.tag(_this.formValueModel, _this.constructor.name + ".formValueModel");
22
39
  return _this;
23
40
  }
41
+ Object.defineProperty(AbstractValueInputComponent.prototype, "value", {
42
+ // We add support for simple direct display of values by allowing components to be used
43
+ // by `component.value = ...` This use of the component without a value model in tables
44
+ // and the like.
45
+ set: function (value) {
46
+ var _this = this;
47
+ this.setValueInProgress.whileTrue(function () {
48
+ if (!_this.plainValueHolder) {
49
+ _this.plainValueHolder = new MutableValueModel(value);
50
+ _this.valueModel = _this.plainValueHolder;
51
+ }
52
+ else {
53
+ _this.plainValueHolder.value = value;
54
+ }
55
+ });
56
+ },
57
+ enumerable: true,
58
+ configurable: true
59
+ });
60
+ __decorate([
61
+ Input(), TrackExternal({ delegateTo: 'formValueModel' }),
62
+ __metadata("design:type", Object)
63
+ ], AbstractValueInputComponent.prototype, "valueModel", void 0);
64
+ __decorate([
65
+ Input(),
66
+ __metadata("design:type", Object),
67
+ __metadata("design:paramtypes", [Object])
68
+ ], AbstractValueInputComponent.prototype, "value", null);
69
+ __decorate([
70
+ Output(),
71
+ __metadata("design:type", Object)
72
+ ], AbstractValueInputComponent.prototype, "valueChange", void 0);
24
73
  AbstractValueInputComponent = __decorate([
25
74
  Component({ template: '' }),
26
75
  __metadata("design:paramtypes", [])
@@ -1 +1 @@
1
- {"version":3,"file":"abstract-value-input.component.js","sourceRoot":"ng://@coolon/angular-ui-powerups/","sources":["lib/components/forms/abstract-value-input.component.ts"],"names":[],"mappings":";AAAA,oCAAoC;AACpC,OAAO,EAAE,SAAS,EAAU,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAGpE;IAAoD,+CAAyB;IAe3E;QAAA,YACE,iBAAO,SACR;QAfD;;;;;;;;;WASG;QACD,0FAA0F;QACnF,gBAAU,GAAG,KAAI,CAAC,kBAAkB,CAAC,IAAI,IAAI,CAAC,oBAAoB,EAAK,CAAC,CAAC;;IAIlF,CAAC;IAjBU,2BAA2B;QADvC,SAAS,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;;OACf,2BAA2B,CAkBvC;IAAD,kCAAC;CAAA,AAlBD,CAAoD,sBAAsB,GAkBzE;SAlBY,2BAA2B","sourcesContent":["/* tslint:disable:no-input-rename */\nimport { Component, OnInit } from '@angular/core';\nimport { Form } from '@coolon/pectin';\nimport { AbstractInputComponent } from './abstract-input.component';\n\n@Component({ template: '' })\nexport class AbstractValueInputComponent<T> extends AbstractInputComponent<T> implements OnInit {\n\n /**\n * A backing model for all our @Input() valueModel properties which should be defined as follows.\n *\n * @Input() @TrackExternal({useExisting: \"inputModel\"})\n * valueModel: DirtyTrackingForm.ValueModel<string> | IMutableValueModel<string>;\n *\n * This approach allows the input to accept plain or form models but all backed by a form\n * friendly delegate. We have to use an existing delegate for union types as pectin just\n * gets told it's an Object and can't scan for a base type annotated with @DelegateUsing(..).\n */\n // We have to register it as a disposable so it ditches any listeners when we're disposed.\n readonly inputModel = this.registerDisposable(new Form.DelegatingValueModel<T>());\n\n constructor() {\n super();\n }\n}\n"]}
1
+ {"version":3,"file":"abstract-value-input.component.js","sourceRoot":"ng://@coolon/angular-ui-powerups/","sources":["lib/components/forms/abstract-value-input.component.ts"],"names":[],"mappings":";AAAA,oCAAoC;AACpC,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,EAAU,MAAM,EAAE,MAAM,eAAe,CAAC;AAC/E,OAAO,EACL,OAAO,EACP,YAAY,EACZ,GAAG,EACH,IAAI,EACJ,KAAK,EAEL,iBAAiB,EACjB,aAAa,EACd,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAGpE;IAAoD,+CAAyB;IAuC3E;QAAA,YACE,iBAAO,SAmBR;QAtDD;;;;;;;;;WASG;QACD,0FAA0F;QACzE,oBAAc,GAAG,KAAI,CAAC,kBAAkB,CAAC,IAAI,IAAI,CAAC,oBAAoB,EAAK,CAAC,CAAC;QAEtF,wBAAkB,GAAG,IAAI,KAAK,EAAE,CAAC;QAClC,yBAAmB,GAAG,IAAI,iBAAiB,EAAK,CAAC;QAkBvC,iBAAW,GAAG,IAAI,YAAY,EAAK,CAAC;QAI/C,IAAA,2BAAgD,EAA9C,cAAI,EAAE,gBAAK,EAAE,oBAAiC,CAAC;QACvD,IAAM,OAAO,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAI,CAAC,cAAc,EAAE,KAAI,CAAC,mBAAmB,CAAC,CAAC,UAAU,EAAE,CAAC;QACjG,IAAM,gBAAgB,GAAG,OAAO,CAAC,GAAG,CAClC,KAAI,CAAC,kBAAkB,EACvB,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CACzD,CAAC,SAAS,EAAE,CAAC;QAEd,IAAI,CAAC,KAAI,CAAC,mBAAmB,CAAC,CAAC,OAAO,CAAC,UAAC,EAAE,EAAE,GAAG;YAC7C,KAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC1B,KAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,EAAV,CAAU,CAAC,CAAC;QACpD,CAAC,EAAE;YACD,YAAY,EAAE,QAAQ;YACtB,2EAA2E;YAC3E,gEAAgE;YAChE,gCAAgC;YAChC,MAAM,EAAE,gBAAgB;SACzB,CAAC,CAAC;QACH,YAAY,CAAC,GAAG,CAAC,KAAI,CAAC,cAAc,EAAK,KAAI,CAAC,WAAW,CAAC,IAAI,oBAAiB,CAAC,CAAC;;IACnF,CAAC;IAjCQ,sBAAI,8CAAK;QAHlB,uFAAuF;QACvF,wFAAwF;QACxF,gBAAgB;aACP,UAAU,KAAQ;YAA3B,iBASC;YARC,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC;gBAChC,IAAI,CAAC,KAAI,CAAC,gBAAgB,EAAE;oBAC1B,KAAI,CAAC,gBAAgB,GAAG,IAAI,iBAAiB,CAAI,KAAK,CAAC,CAAC;oBACxD,KAAI,CAAC,UAAU,GAAG,KAAI,CAAC,gBAAgB,CAAC;iBACzC;qBAAM;oBACL,KAAI,CAAC,gBAAgB,CAAC,KAAK,GAAG,KAAK,CAAC;iBACrC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;;;OAAA;IAhCD;QADC,KAAK,EAAE,EAAE,aAAa,CAAC,EAAE,UAAU,EAAE,gBAAgB,EAAE,CAAC;;mEACE;IAuBlD;QAAR,KAAK,EAAE;;;4DASP;IAES;QAAT,MAAM,EAAE;;oEAA8C;IArC5C,2BAA2B;QADvC,SAAS,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;;OACf,2BAA2B,CA6DvC;IAAD,kCAAC;CAAA,AA7DD,CAAoD,sBAAsB,GA6DzE;SA7DY,2BAA2B","sourcesContent":["/* tslint:disable:no-input-rename */\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport {\n Binding,\n DebugContext,\n Dsl,\n Form,\n Guard,\n IMutableValueModel,\n MutableValueModel,\n TrackExternal\n} from '@coolon/pectin';\nimport { AbstractInputComponent } from './abstract-input.component';\n\n@Component({ template: '' })\nexport class AbstractValueInputComponent<T> extends AbstractInputComponent<T> implements OnInit {\n\n @Input() @TrackExternal({ delegateTo: 'formValueModel' })\n valueModel: Form.ValueModelBase<T> | IMutableValueModel<T>;\n\n /**\n * A backing model for all our @Input() valueModel properties which should be defined as follows.\n *\n * @Input() @TrackExternal({useExisting: \"inputModel\"})\n * valueModel: DirtyTrackingForm.ValueModel<string> | IMutableValueModel<string>;\n *\n * This approach allows the input to accept plain or form models but all backed by a form\n * friendly delegate. We have to use an existing delegate for union types as pectin just\n * gets told it's an Object and can't scan for a base type annotated with @DelegateUsing(..).\n */\n // We have to register it as a disposable so it ditches any listeners when we're disposed.\n protected readonly formValueModel = this.registerDisposable(new Form.DelegatingValueModel<T>());\n\n protected setValueInProgress = new Guard();\n readonly componentValueModel = new MutableValueModel<T>();\n // we need this for plain values otherwise our Form.DelegatingValueModel will stay disabled.\n private plainValueHolder: MutableValueModel<T>;\n\n // We add support for simple direct display of values by allowing components to be used\n // by `component.value = ...` This use of the component without a value model in tables\n // and the like.\n @Input() set value(value: T) {\n this.setValueInProgress.whileTrue(() => {\n if (!this.plainValueHolder) {\n this.plainValueHolder = new MutableValueModel<T>(value);\n this.valueModel = this.plainValueHolder;\n } else {\n this.plainValueHolder.value = value;\n }\n });\n }\n\n @Output() readonly valueChange = new EventEmitter<T>();\n\n constructor() {\n super();\n const { when, chain, valueOf } = Dsl.disposeWith(this);\n const binding = new Binding.Identity(this.formValueModel, this.componentValueModel).writeRight();\n const inExternalChange = valueOf.any(\n this.setValueInProgress,\n chain(binding.direction).equals(Binding.Direction.RIGHT)\n ).areTruthy();\n\n when(this.componentValueModel).changes((is, was) => {\n this.valueChange.emit(is);\n this.onValueEditedListeners.fire(l => l(is, was));\n }, {\n initialValue: 'ignore',\n // we never fire events during an external set value operation. This allows\n // the component to behave when used in the conventional angular\n // fashion, i.e. [(value)]=\"...\"\n unless: inExternalChange\n });\n DebugContext.tag(this.formValueModel, `${this.constructor.name}.formValueModel`);\n }\n\n}\n"]}
@@ -0,0 +1,73 @@
1
+ import { __decorate, __extends, __metadata } from "tslib";
2
+ import { Component, ContentChild, Input, TemplateRef } from '@angular/core';
3
+ import { Dsl, ListModel, MutableValueModel, StoreInListModel, TrackExternal } from '@coolon/pectin';
4
+ import _ from 'lodash';
5
+ import { AbstractValueInputComponent } from '../abstract-value-input.component';
6
+ /**
7
+ * Using templates (not only supported for nil values:
8
+ * <aup-autocomplete-input [valueModel]="myModel" [options]="myOptions">
9
+ * <ng-template #nilOptionTemplate let-option>{{option.thePropertyYouWant}}</ng-template>
10
+ * </aup-autocomplete-input>
11
+ */
12
+ var AutocompleteInputComponent = /** @class */ (function (_super) {
13
+ __extends(AutocompleteInputComponent, _super);
14
+ function AutocompleteInputComponent() {
15
+ var _this = _super.call(this) || this;
16
+ _this.filterValue = new MutableValueModel();
17
+ _this.optionLabelFormat = function (option) { return (option && _this.optionLabel) ? option[_this.optionLabel] : option; };
18
+ var _a = Dsl.disposeWith(_this), chain = _a.chain, valueOf = _a.valueOf, before = _a.before, when = _a.when, after = _a.after, observe = _a.observe, switchOn = _a.switchOn;
19
+ var lowerCaseFilterValue = chain(_this.filterValue)
20
+ .map(function (v) { return _.isString(v) ? v.toLowerCase() : ''; });
21
+ _this.filteredOptions = chain(_this.optionsModel)
22
+ .select(function (option) {
23
+ return _.isEmpty(_this.filterValue.value) || _this.optionLabelFormat(option).toString().toLowerCase().includes(lowerCaseFilterValue.value);
24
+ }, { dependsOn: lowerCaseFilterValue });
25
+ return _this;
26
+ }
27
+ AutocompleteInputComponent.prototype.ngOnInit = function () {
28
+ };
29
+ AutocompleteInputComponent.prototype.formatOption = function (option) {
30
+ return this.optionLabelFormat(option);
31
+ };
32
+ AutocompleteInputComponent.prototype.updateFilter = function ($event) {
33
+ this.filterValue.value = $event;
34
+ };
35
+ AutocompleteInputComponent.prototype.onSelect = function ($event) {
36
+ this.valueModel.value = $event.option.value;
37
+ };
38
+ __decorate([
39
+ Input(), TrackExternal(),
40
+ __metadata("design:type", ListModel)
41
+ ], AutocompleteInputComponent.prototype, "optionsModel", void 0);
42
+ __decorate([
43
+ Input(), StoreInListModel('optionsModel'),
44
+ __metadata("design:type", Array)
45
+ ], AutocompleteInputComponent.prototype, "options", void 0);
46
+ __decorate([
47
+ Input(),
48
+ __metadata("design:type", Object)
49
+ ], AutocompleteInputComponent.prototype, "optionLabel", void 0);
50
+ __decorate([
51
+ Input(),
52
+ __metadata("design:type", Boolean)
53
+ ], AutocompleteInputComponent.prototype, "allowNil", void 0);
54
+ __decorate([
55
+ ContentChild('nilOptionTemplate'),
56
+ __metadata("design:type", TemplateRef)
57
+ ], AutocompleteInputComponent.prototype, "nilOptionTemplateRef", void 0);
58
+ __decorate([
59
+ Input(),
60
+ __metadata("design:type", Function)
61
+ ], AutocompleteInputComponent.prototype, "optionLabelFormat", void 0);
62
+ AutocompleteInputComponent = __decorate([
63
+ Component({
64
+ selector: 'aup-autocomplete-input',
65
+ template: "<mat-form-field appearance=\"standard\" [floatLabel]=\"floatLabel\">\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\n <input type=\"string\"\n matInput\n [matAutocomplete]=\"autocomplete\"\n placeholder=\"{{placeholder}}\"\n [ngModel]=\"componentValueModel.value\"\n (ngModelChange)=\"updateFilter($event)\"\n [disabled]=\"!enabled.value\"\n (keydown.enter)=\"notifyEnterKey()\"\n (keydown.escape)=\"notifyEscapeKey()\"\n [pectinFocusBinding]=\"focusContext\"\n [errorStateMatcher]=\"errorStateMatcher\"\n >\n <mat-autocomplete #autocomplete [displayWith]=\"optionLabelFormat\" [autoActiveFirstOption]=\"true\" (optionSelected)=\"onSelect($event)\">\n <mat-option *ngFor=\"let option of filteredOptions.value; let i = index\"\n [value]=\"option\"\n >{{formatOption(option)}}</mat-option>\n <mat-option *ngIf=\"allowNil\">{{placeholder}}</mat-option>\n </mat-autocomplete>\n\n <mat-hint *ngIf=\"showHint\">{{hint}}</mat-hint>\n <mat-error *ngIf=\"hasErrors\">{{firstError}}</mat-error>\n</mat-form-field>\n",
66
+ styles: [":host{display:inline-block}mat-form-field{width:100%}"]
67
+ }),
68
+ __metadata("design:paramtypes", [])
69
+ ], AutocompleteInputComponent);
70
+ return AutocompleteInputComponent;
71
+ }(AbstractValueInputComponent));
72
+ export { AutocompleteInputComponent };
73
+ //# sourceMappingURL=autocomplete-input.component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"autocomplete-input.component.js","sourceRoot":"ng://@coolon/angular-ui-powerups/","sources":["lib/components/forms/autocomplete-input/autocomplete-input.component.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,EAAU,WAAW,EAAE,MAAM,eAAe,CAAC;AAEpF,OAAO,EACL,GAAG,EACH,SAAS,EAET,iBAAiB,EACjB,gBAAgB,EAEhB,aAAa,EACd,MAAM,gBAAgB,CAAC;AACxB,OAAO,CAAC,MAAM,QAAQ,CAAC;AACvB,OAAO,EAAE,2BAA2B,EAAE,MAAM,mCAAmC,CAAC;AAEhF;;;;;GAKG;AAMH;IAAyD,8CAA8B;IAuBrF;QAAA,YACE,iBAAO,SASR;QAhBO,iBAAW,GAAG,IAAI,iBAAiB,EAAU,CAAC;QAItD,uBAAiB,GAAuB,UAAC,MAAM,IAAK,OAAA,CAAC,MAAM,IAAI,KAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,EAAhE,CAAgE,CAAC;QAI7G,IAAA,2BAAkF,EAAhF,gBAAK,EAAE,oBAAO,EAAE,kBAAM,EAAE,cAAI,EAAE,gBAAK,EAAE,oBAAO,EAAE,sBAAkC,CAAC;QACzF,IAAO,oBAAoB,GAAG,KAAK,CAAC,KAAI,CAAC,WAAW,CAAC;aAClD,GAAG,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,EAApC,CAAoC,CAAC,CAAC;QAElD,KAAI,CAAC,eAAe,GAAG,KAAK,CAAC,KAAI,CAAC,YAAY,CAAC;aAC5C,MAAM,CAAC,UAAA,MAAM;YACZ,OAAO,CAAC,CAAC,OAAO,CAAC,KAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,KAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;QAC3I,CAAC,EAAE,EAAE,SAAS,EAAE,oBAAoB,EAAE,CAAC,CAAC;;IAC5C,CAAC;IAED,6CAAQ,GAAR;IACA,CAAC;IAED,iDAAY,GAAZ,UAAa,MAAS;QACpB,OAAO,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;IACxC,CAAC;IAED,iDAAY,GAAZ,UAAa,MAAc;QACzB,IAAI,CAAC,WAAW,CAAC,KAAK,GAAG,MAAM,CAAC;IAClC,CAAC;IAED,6CAAQ,GAAR,UAAS,MAAoC;QAC3C,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;IAC9C,CAAC;IA7CD;QADC,KAAK,EAAE,EAAE,aAAa,EAAE;kCACX,SAAS;oEAAI;IAG3B;QADC,KAAK,EAAE,EAAE,gBAAgB,CAAC,cAAc,CAAC;;+DAC7B;IAGb;QADC,KAAK,EAAE;;mEACa;IAGrB;QADC,KAAK,EAAE;;gEACU;IAGlB;QADC,YAAY,CAAC,mBAAmB,CAAC;kCACZ,WAAW;4EAAM;IAMvC;QADC,KAAK,EAAE;;yEAC6G;IArB1G,0BAA0B;QALtC,SAAS,CAAC;YACT,QAAQ,EAAE,wBAAwB;YAClC,gnCAAkD;;SAEnD,CAAC;;OACW,0BAA0B,CAiDtC;IAAD,iCAAC;CAAA,AAjDD,CAAyD,2BAA2B,GAiDnF;SAjDY,0BAA0B","sourcesContent":["import { Component, ContentChild, Input, OnInit, TemplateRef } from '@angular/core';\nimport { MatAutocompleteSelectedEvent } from '@angular/material/autocomplete';\nimport {\n Dsl,\n ListModel,\n ListModelChain,\n MutableValueModel,\n StoreInListModel,\n Trace,\n TrackExternal, TransactionObserver\n} from '@coolon/pectin';\nimport _ from 'lodash';\nimport { AbstractValueInputComponent } from '../abstract-value-input.component';\n\n/**\n * Using templates (not only supported for nil values:\n * <aup-autocomplete-input [valueModel]=\"myModel\" [options]=\"myOptions\">\n * <ng-template #nilOptionTemplate let-option>{{option.thePropertyYouWant}}</ng-template>\n * </aup-autocomplete-input>\n */\n@Component({\n selector: 'aup-autocomplete-input',\n templateUrl: './autocomplete-input.component.html',\n styleUrls: ['./autocomplete-input.component.scss']\n})\nexport class AutocompleteInputComponent<T = any> extends AbstractValueInputComponent<T> implements OnInit {\n\n @Input() @TrackExternal()\n optionsModel: ListModel<T>;\n\n @Input() @StoreInListModel('optionsModel')\n options: T[];\n\n @Input()\n optionLabel: keyof T;\n\n @Input()\n allowNil: boolean;\n\n @ContentChild('nilOptionTemplate')\n nilOptionTemplateRef: TemplateRef<any>;\n\n private filterValue = new MutableValueModel<string>();\n readonly filteredOptions: ListModelChain<T>;\n\n @Input()\n optionLabelFormat: (option: T) => any = (option) => (option && this.optionLabel) ? option[this.optionLabel] : option;\n\n constructor() {\n super();\n const { chain, valueOf, before, when, after, observe, switchOn } = Dsl.disposeWith(this);\n const lowerCaseFilterValue = chain(this.filterValue)\n .map(v => _.isString(v) ? v.toLowerCase() : '');\n\n this.filteredOptions = chain(this.optionsModel)\n .select(option => {\n return _.isEmpty(this.filterValue.value) || this.optionLabelFormat(option).toString().toLowerCase().includes(lowerCaseFilterValue.value);\n }, { dependsOn: lowerCaseFilterValue });\n }\n\n ngOnInit() {\n }\n\n formatOption(option: T) {\n return this.optionLabelFormat(option);\n }\n\n updateFilter($event: string) {\n this.filterValue.value = $event;\n }\n\n onSelect($event: MatAutocompleteSelectedEvent) {\n this.valueModel.value = $event.option.value;\n }\n}\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"autocomplete-input.component.ngfactory.js","sourceRoot":"ng://@coolon/angular-ui-powerups/","sources":["lib/components/forms/autocomplete-input/autocomplete-input.component.ngfactory.ts"],"names":[],"mappings":"","sourcesContent":["import * as i0 from '@angular/core';\ni0.ComponentFactory;\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"autocomplete-input.component.scss.shim.ngstyle.js","sourceRoot":"ng://@coolon/angular-ui-powerups/","sources":["lib/components/forms/autocomplete-input/autocomplete-input.component.scss.shim.ngstyle.ts"],"names":[],"mappings":"","sourcesContent":["import * as i0 from '@angular/core';\ni0.ComponentFactory;\n"]}
@@ -1,21 +1,18 @@
1
1
  import { __decorate, __extends, __metadata } from "tslib";
2
2
  import { Component, Input } from '@angular/core';
3
- import { TrackExternal } from '@coolon/pectin';
4
3
  import { AbstractValueInputComponent } from '../abstract-value-input.component';
5
4
  var CheckboxInputComponent = /** @class */ (function (_super) {
6
5
  __extends(CheckboxInputComponent, _super);
7
6
  function CheckboxInputComponent() {
8
7
  var _this = _super.call(this) || this;
8
+ // @Input() @TrackExternal({ delegateTo: 'inputModel' })
9
+ // valueModel: Form.ValueModelBase<boolean> | IMutableValueModel<boolean>;
9
10
  _this.color = 'accent';
10
11
  _this.labelPosition = 'after';
11
12
  return _this;
12
13
  }
13
14
  CheckboxInputComponent.prototype.ngOnInit = function () {
14
15
  };
15
- __decorate([
16
- Input(), TrackExternal({ delegateTo: 'inputModel' }),
17
- __metadata("design:type", Object)
18
- ], CheckboxInputComponent.prototype, "valueModel", void 0);
19
16
  __decorate([
20
17
  Input(),
21
18
  __metadata("design:type", String)
@@ -27,7 +24,7 @@ var CheckboxInputComponent = /** @class */ (function (_super) {
27
24
  CheckboxInputComponent = __decorate([
28
25
  Component({
29
26
  selector: 'aup-checkbox-input',
30
- template: "<!-- TODO: add focus binding -->\n<mat-checkbox\n [(ngModel)]=\"valueModel.value\"\n [color]=\"color\"\n [labelPosition]=\"labelPosition\"\n [disabled]=\"!isEnabled()\"\n>{{label}}</mat-checkbox>\n<mat-hint *ngIf=\"showHint\">{{hint}}</mat-hint>\n<mat-error *ngIf=\"hasErrors\">{{firstError}}</mat-error>\n",
27
+ template: "<!-- TODO: add focus binding -->\n<mat-checkbox\n [(ngModel)]=\"componentValueModel.value\"\n [color]=\"color\"\n [labelPosition]=\"labelPosition\"\n [disabled]=\"!isEnabled()\"\n>{{label}}</mat-checkbox>\n<mat-hint *ngIf=\"showHint\">{{hint}}</mat-hint>\n<mat-error *ngIf=\"hasErrors\">{{firstError}}</mat-error>\n",
31
28
  styles: [":host{display:inline-flex;flex-direction:column;padding:24px 0 16px}:host.dense{padding:6px 0 2px}mat-error,mat-hint{margin-top:4px;margin-left:24px;font-size:12px;font-weight:400;line-height:13.5px}"]
32
29
  }),
33
30
  __metadata("design:paramtypes", [])
@@ -1 +1 @@
1
- {"version":3,"file":"checkbox-input.component.js","sourceRoot":"ng://@coolon/angular-ui-powerups/","sources":["lib/components/forms/checkbox-input/checkbox-input.component.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAU,MAAM,eAAe,CAAC;AACzD,OAAO,EAA4B,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACzE,OAAO,EAAE,2BAA2B,EAAE,MAAM,mCAAmC,CAAC;AAOhF;IAA4C,0CAAoC;IAW9E;QAAA,YACE,iBAAO,SACR;QAPD,WAAK,GAAkC,QAAQ,CAAC;QAGhD,mBAAa,GAAuB,OAAO,CAAC;;IAI5C,CAAC;IAED,yCAAQ,GAAR;IACA,CAAC;IAbD;QADC,KAAK,EAAE,EAAE,aAAa,CAAC,EAAE,UAAU,EAAE,YAAY,EAAE,CAAC;;8DACkB;IAGvE;QADC,KAAK,EAAE;;yDACwC;IAGhD;QADC,KAAK,EAAE;;iEACoC;IATjC,sBAAsB;QALlC,SAAS,CAAC;YACT,QAAQ,EAAE,oBAAoB;YAC9B,kUAA8C;;SAE/C,CAAC;;OACW,sBAAsB,CAkBlC;IAAD,6BAAC;CAAA,AAlBD,CAA4C,2BAA2B,GAkBtE;SAlBY,sBAAsB","sourcesContent":["import { Component, Input, OnInit } from '@angular/core';\nimport { Form, IMutableValueModel, TrackExternal } from '@coolon/pectin';\nimport { AbstractValueInputComponent } from '../abstract-value-input.component';\n\n@Component({\n selector: 'aup-checkbox-input',\n templateUrl: './checkbox-input.component.html',\n styleUrls: ['./checkbox-input.component.scss']\n})\nexport class CheckboxInputComponent extends AbstractValueInputComponent<boolean> implements OnInit {\n\n @Input() @TrackExternal({ delegateTo: 'inputModel' })\n valueModel: Form.ValueModelBase<boolean> | IMutableValueModel<boolean>;\n\n @Input()\n color: 'primary' | 'warn' | 'accent' = 'accent';\n\n @Input()\n labelPosition: 'before' | 'after' = 'after';\n\n constructor() {\n super();\n }\n\n ngOnInit() {\n }\n\n}\n"]}
1
+ {"version":3,"file":"checkbox-input.component.js","sourceRoot":"ng://@coolon/angular-ui-powerups/","sources":["lib/components/forms/checkbox-input/checkbox-input.component.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAU,MAAM,eAAe,CAAC;AAEzD,OAAO,EAAE,2BAA2B,EAAE,MAAM,mCAAmC,CAAC;AAOhF;IAA4C,0CAAoC;IAW9E;QAAA,YACE,iBAAO,SACR;QAXD,wDAAwD;QACxD,0EAA0E;QAG1E,WAAK,GAAkC,QAAQ,CAAC;QAGhD,mBAAa,GAAuB,OAAO,CAAC;;IAI5C,CAAC;IAED,yCAAQ,GAAR;IACA,CAAC;IAVD;QADC,KAAK,EAAE;;yDACwC;IAGhD;QADC,KAAK,EAAE;;iEACoC;IATjC,sBAAsB;QALlC,SAAS,CAAC;YACT,QAAQ,EAAE,oBAAoB;YAC9B,2UAA8C;;SAE/C,CAAC;;OACW,sBAAsB,CAkBlC;IAAD,6BAAC;CAAA,AAlBD,CAA4C,2BAA2B,GAkBtE;SAlBY,sBAAsB","sourcesContent":["import { Component, Input, OnInit } from '@angular/core';\nimport { Form, IMutableValueModel, TrackExternal } from '@coolon/pectin';\nimport { AbstractValueInputComponent } from '../abstract-value-input.component';\n\n@Component({\n selector: 'aup-checkbox-input',\n templateUrl: './checkbox-input.component.html',\n styleUrls: ['./checkbox-input.component.scss']\n})\nexport class CheckboxInputComponent extends AbstractValueInputComponent<boolean> implements OnInit {\n\n // @Input() @TrackExternal({ delegateTo: 'inputModel' })\n // valueModel: Form.ValueModelBase<boolean> | IMutableValueModel<boolean>;\n\n @Input()\n color: 'primary' | 'warn' | 'accent' = 'accent';\n\n @Input()\n labelPosition: 'before' | 'after' = 'after';\n\n constructor() {\n super();\n }\n\n ngOnInit() {\n }\n\n}\n"]}
@@ -2,6 +2,13 @@ import { __decorate, __extends, __metadata } from "tslib";
2
2
  import { Component, ContentChild, Input, TemplateRef } from '@angular/core';
3
3
  import { ListModel, StoreInListModel, TrackExternal } from '@coolon/pectin';
4
4
  import { AbstractListInputComponent } from '../abstract-list-input.component';
5
+ /**
6
+ * Using templates:
7
+ * <aup-multiple-select-input [valueModel]="myModel" [options]="myOptions">
8
+ * <ng-template #optionTemplate let-option>{{option.thePropertyYouWant}}</ng-template>
9
+ * <ng-template #nilOptionTemplate let-option>{{option.thePropertyYouWant}}</ng-template>
10
+ * </aup-multiple-select_input>
11
+ */
5
12
  var MultipleSelectInputComponent = /** @class */ (function (_super) {
6
13
  __extends(MultipleSelectInputComponent, _super);
7
14
  function MultipleSelectInputComponent() {
@@ -11,10 +18,6 @@ var MultipleSelectInputComponent = /** @class */ (function (_super) {
11
18
  }
12
19
  MultipleSelectInputComponent.prototype.ngOnInit = function () {
13
20
  };
14
- __decorate([
15
- Input(), TrackExternal({ delegateTo: 'inputModel' }),
16
- __metadata("design:type", Object)
17
- ], MultipleSelectInputComponent.prototype, "listModel", void 0);
18
21
  __decorate([
19
22
  Input(), TrackExternal(),
20
23
  __metadata("design:type", ListModel)
@@ -27,18 +30,10 @@ var MultipleSelectInputComponent = /** @class */ (function (_super) {
27
30
  Input(),
28
31
  __metadata("design:type", Object)
29
32
  ], MultipleSelectInputComponent.prototype, "optionLabel", void 0);
30
- __decorate([
31
- Input(),
32
- __metadata("design:type", Boolean)
33
- ], MultipleSelectInputComponent.prototype, "allowNil", void 0);
34
33
  __decorate([
35
34
  ContentChild('optionTemplate'),
36
35
  __metadata("design:type", TemplateRef)
37
36
  ], MultipleSelectInputComponent.prototype, "optionTemplateRef", void 0);
38
- __decorate([
39
- ContentChild('nilOptionTemplate'),
40
- __metadata("design:type", TemplateRef)
41
- ], MultipleSelectInputComponent.prototype, "nilOptionTemplateRef", void 0);
42
37
  __decorate([
43
38
  Input(),
44
39
  __metadata("design:type", Function)
@@ -46,7 +41,7 @@ var MultipleSelectInputComponent = /** @class */ (function (_super) {
46
41
  MultipleSelectInputComponent = __decorate([
47
42
  Component({
48
43
  selector: 'aup-multiple-select-input',
49
- template: "<mat-form-field appearance=\"standard\" [floatLabel]=\"floatLabel\">\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\n <mat-select placeholder=\"{{placeholder}}\"\n multiple\n [(ngModel)]=\"listModel.value\"\n [disabled]=\"!enabled.value\"\n (keydown.enter)=\"notifyEnterKey()\"\n (keydown.escape)=\"notifyEscapeKey()\"\n [pectinFocusBinding]=\"focusContext\"\n [errorStateMatcher]=\"errorStateMatcher\"\n >\n <mat-option *ngIf=\"allowNil\">{{placeholder}}</mat-option>\n <mat-option *ngFor=\"let option of optionsModel.value; let i = index\" [value]=\"option\">\n <ng-container *ngIf=\"!optionTemplateRef\">{{optionLabelFormat(option)}}</ng-container>\n <ng-container *ngIf=\"optionTemplateRef\"\n [ngTemplateOutlet]=\"optionTemplateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: option, index: i }\"\n >\n </ng-container>\n </mat-option>\n </mat-select>\n <mat-hint *ngIf=\"showHint\">{{hint}}</mat-hint>\n <mat-error *ngIf=\"hasErrors\">{{firstError}}</mat-error>\n</mat-form-field>\n",
44
+ template: "<mat-form-field appearance=\"standard\" [floatLabel]=\"floatLabel\">\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\n <mat-select placeholder=\"{{placeholder}}\"\n multiple\n [(ngModel)]=\"componentListModel.value\"\n [disabled]=\"!enabled.value\"\n (keydown.enter)=\"notifyEnterKey()\"\n (keydown.escape)=\"notifyEscapeKey()\"\n [pectinFocusBinding]=\"focusContext\"\n [errorStateMatcher]=\"errorStateMatcher\"\n >\n <mat-option *ngFor=\"let option of optionsModel.value; let i = index\" [value]=\"option\">\n <ng-container *ngIf=\"!optionTemplateRef\">{{optionLabelFormat(option)}}</ng-container>\n <ng-container *ngIf=\"optionTemplateRef\"\n [ngTemplateOutlet]=\"optionTemplateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: option, index: i }\"\n >\n </ng-container>\n </mat-option>\n </mat-select>\n <mat-hint *ngIf=\"showHint\">{{hint}}</mat-hint>\n <mat-error *ngIf=\"hasErrors\">{{firstError}}</mat-error>\n</mat-form-field>\n",
50
45
  styles: [":host{display:inline-block}mat-form-field{width:100%}"]
51
46
  }),
52
47
  __metadata("design:paramtypes", [])
@@ -1 +1 @@
1
- {"version":3,"file":"multiple-select-input.component.js","sourceRoot":"ng://@coolon/angular-ui-powerups/","sources":["lib/components/forms/multiple-select-input/multiple-select-input.component.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,EAAU,WAAW,EAAE,MAAM,eAAe,CAAC;AACpF,OAAO,EAA2B,SAAS,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACrG,OAAO,EAAE,0BAA0B,EAAE,MAAM,kCAAkC,CAAC;AAO9E;IAA2D,gDAA6B;IA0BtF;QAAA,YACE,iBAAO,SACR;QAJD,uBAAiB,GAAuB,UAAC,MAAM,IAAK,OAAA,CAAC,MAAM,IAAI,KAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,EAAhE,CAAgE,CAAC;;IAIrH,CAAC;IAED,+CAAQ,GAAR;IACA,CAAC;IA5BD;QADC,KAAK,EAAE,EAAE,aAAa,CAAC,EAAE,UAAU,EAAE,YAAY,EAAE,CAAC;;mEACG;IAGxD;QADC,KAAK,EAAE,EAAE,aAAa,EAAE;kCACX,SAAS;sEAAI;IAG3B;QADC,KAAK,EAAE,EAAE,gBAAgB,CAAC,cAAc,CAAC;;iEAC7B;IAGb;QADC,KAAK,EAAE;;qEACa;IAGrB;QADC,KAAK,EAAE;;kEACU;IAGlB;QADC,YAAY,CAAC,gBAAgB,CAAC;kCACZ,WAAW;2EAAM;IAGpC;QADC,YAAY,CAAC,mBAAmB,CAAC;kCACZ,WAAW;8EAAM;IAGvC;QADC,KAAK,EAAE;;2EAC6G;IAxB1G,4BAA4B;QALxC,SAAS,CAAC;YACT,QAAQ,EAAE,2BAA2B;YACrC,wnCAAqD;;SAEtD,CAAC;;OACW,4BAA4B,CAiCxC;IAAD,mCAAC;CAAA,AAjCD,CAA2D,0BAA0B,GAiCpF;SAjCY,4BAA4B","sourcesContent":["import { Component, ContentChild, Input, OnInit, TemplateRef } from '@angular/core';\nimport { Form, IMutableListModel, ListModel, StoreInListModel, TrackExternal } from '@coolon/pectin';\nimport { AbstractListInputComponent } from '../abstract-list-input.component';\n\n@Component({\n selector: 'aup-multiple-select-input',\n templateUrl: './multiple-select-input.component.html',\n styleUrls: ['./multiple-select-input.component.scss']\n})\nexport class MultipleSelectInputComponent<T = any> extends AbstractListInputComponent<T> implements OnInit {\n\n @Input() @TrackExternal({ delegateTo: 'inputModel' })\n listModel: Form.ListModelBase<T> | IMutableListModel<T>;\n\n @Input() @TrackExternal()\n optionsModel: ListModel<T>;\n\n @Input() @StoreInListModel('optionsModel')\n options: T[];\n\n @Input()\n optionLabel: keyof T;\n\n @Input()\n allowNil: boolean;\n\n @ContentChild('optionTemplate')\n optionTemplateRef: TemplateRef<any>;\n\n @ContentChild('nilOptionTemplate')\n nilOptionTemplateRef: TemplateRef<any>;\n\n @Input()\n optionLabelFormat: (option: T) => any = (option) => (option && this.optionLabel) ? option[this.optionLabel] : option;\n\n constructor() {\n super();\n }\n\n ngOnInit() {\n }\n\n}\n"]}
1
+ {"version":3,"file":"multiple-select-input.component.js","sourceRoot":"ng://@coolon/angular-ui-powerups/","sources":["lib/components/forms/multiple-select-input/multiple-select-input.component.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,EAAU,WAAW,EAAE,MAAM,eAAe,CAAC;AACpF,OAAO,EAA2B,SAAS,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACrG,OAAO,EAAE,0BAA0B,EAAE,MAAM,kCAAkC,CAAC;AAE9E;;;;;;GAMG;AAMH;IAA2D,gDAA6B;IAiBtF;QAAA,YACE,iBAAO,SACR;QAJD,uBAAiB,GAAuB,UAAC,MAAM,IAAK,OAAA,CAAC,MAAM,IAAI,KAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,EAAhE,CAAgE,CAAC;;IAIrH,CAAC;IAED,+CAAQ,GAAR;IACA,CAAC;IAnBD;QADC,KAAK,EAAE,EAAE,aAAa,EAAE;kCACX,SAAS;sEAAI;IAG3B;QADC,KAAK,EAAE,EAAE,gBAAgB,CAAC,cAAc,CAAC;;iEAC7B;IAGb;QADC,KAAK,EAAE;;qEACa;IAGrB;QADC,YAAY,CAAC,gBAAgB,CAAC;kCACZ,WAAW;2EAAM;IAGpC;QADC,KAAK,EAAE;;2EAC6G;IAf1G,4BAA4B;QALxC,SAAS,CAAC;YACT,QAAQ,EAAE,2BAA2B;YACrC,gkCAAqD;;SAEtD,CAAC;;OACW,4BAA4B,CAwBxC;IAAD,mCAAC;CAAA,AAxBD,CAA2D,0BAA0B,GAwBpF;SAxBY,4BAA4B","sourcesContent":["import { Component, ContentChild, Input, OnInit, TemplateRef } from '@angular/core';\nimport { Form, IMutableListModel, ListModel, StoreInListModel, TrackExternal } from '@coolon/pectin';\nimport { AbstractListInputComponent } from '../abstract-list-input.component';\n\n/**\n * Using templates:\n * <aup-multiple-select-input [valueModel]=\"myModel\" [options]=\"myOptions\">\n * <ng-template #optionTemplate let-option>{{option.thePropertyYouWant}}</ng-template>\n * <ng-template #nilOptionTemplate let-option>{{option.thePropertyYouWant}}</ng-template>\n * </aup-multiple-select_input>\n */\n@Component({\n selector: 'aup-multiple-select-input',\n templateUrl: './multiple-select-input.component.html',\n styleUrls: ['./multiple-select-input.component.scss']\n})\nexport class MultipleSelectInputComponent<T = any> extends AbstractListInputComponent<T> implements OnInit {\n\n @Input() @TrackExternal()\n optionsModel: ListModel<T>;\n\n @Input() @StoreInListModel('optionsModel')\n options: T[];\n\n @Input()\n optionLabel: keyof T;\n\n @ContentChild('optionTemplate')\n optionTemplateRef: TemplateRef<any>;\n\n @Input()\n optionLabelFormat: (option: T) => any = (option) => (option && this.optionLabel) ? option[this.optionLabel] : option;\n\n constructor() {\n super();\n }\n\n ngOnInit() {\n }\n\n}\n"]}
@@ -1,21 +1,18 @@
1
1
  import { __decorate, __extends, __metadata } from "tslib";
2
2
  import { Component, Input } from '@angular/core';
3
- import { TrackExternal } from '@coolon/pectin';
4
3
  import { AbstractValueInputComponent } from '../abstract-value-input.component';
5
4
  var NumberInputComponent = /** @class */ (function (_super) {
6
5
  __extends(NumberInputComponent, _super);
7
6
  function NumberInputComponent() {
8
7
  var _this = _super.call(this) || this;
8
+ // @Input() @TrackExternal({ delegateTo: 'inputModel' })
9
+ // valueModel: Form.ValueModelBase<number> | IMutableValueModel<number>;
9
10
  _this.min = Number.MIN_SAFE_INTEGER;
10
11
  _this.max = Number.MAX_SAFE_INTEGER;
11
12
  return _this;
12
13
  }
13
14
  NumberInputComponent.prototype.ngOnInit = function () {
14
15
  };
15
- __decorate([
16
- Input(), TrackExternal({ delegateTo: 'inputModel' }),
17
- __metadata("design:type", Object)
18
- ], NumberInputComponent.prototype, "valueModel", void 0);
19
16
  __decorate([
20
17
  Input(),
21
18
  __metadata("design:type", Object)
@@ -27,7 +24,7 @@ var NumberInputComponent = /** @class */ (function (_super) {
27
24
  NumberInputComponent = __decorate([
28
25
  Component({
29
26
  selector: 'aup-number-input',
30
- 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]=\"focusContext\"\n [errorStateMatcher]=\"errorStateMatcher\"\n [min]=\"min\"\n [max]=\"max\"\n >\n <mat-hint *ngIf=\"hint && !dense\" >{{hint}}</mat-hint>\n <mat-error *ngIf=\"hasErrors\">{{firstError}}</mat-error>\n</mat-form-field>\n",
27
+ 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)]=\"componentValueModel.value\"\n [disabled]=\"!enabled.value\"\n (keydown.enter)=\"notifyEnterKey()\"\n (keydown.escape)=\"notifyEscapeKey()\"\n [pectinFocusBinding]=\"focusContext\"\n [errorStateMatcher]=\"errorStateMatcher\"\n [min]=\"min\"\n [max]=\"max\"\n >\n <mat-hint *ngIf=\"hint && !dense\" >{{hint}}</mat-hint>\n <mat-error *ngIf=\"hasErrors\">{{firstError}}</mat-error>\n</mat-form-field>\n",
31
28
  styles: [""]
32
29
  }),
33
30
  __metadata("design:paramtypes", [])
@@ -1 +1 @@
1
- {"version":3,"file":"number-input.component.js","sourceRoot":"ng://@coolon/angular-ui-powerups/","sources":["lib/components/forms/number-input/number-input.component.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAU,MAAM,eAAe,CAAC;AACzD,OAAO,EAAiC,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC9E,OAAO,EAAE,2BAA2B,EAAE,MAAM,mCAAmC,CAAC;AAQhF;IAA0C,wCAAmC;IAW3E;QAAA,YACE,iBAAO,SACR;QAPD,SAAG,GAAG,MAAM,CAAC,gBAAgB,CAAC;QAG9B,SAAG,GAAG,MAAM,CAAC,gBAAgB,CAAC;;IAI9B,CAAC;IAED,uCAAQ,GAAR;IACA,CAAC;IAbD;QADC,KAAK,EAAE,EAAE,aAAa,CAAC,EAAE,UAAU,EAAE,YAAY,EAAE,CAAC;;4DACgB;IAGrE;QADC,KAAK,EAAE;;qDACsB;IAG9B;QADC,KAAK,EAAE;;qDACsB;IATnB,oBAAoB;QALhC,SAAS,CAAC;YACT,QAAQ,EAAE,kBAAkB;YAC5B,orBAA4C;;SAE7C,CAAC;;OACW,oBAAoB,CAkBhC;IAAD,2BAAC;CAAA,AAlBD,CAA0C,2BAA2B,GAkBpE;SAlBY,oBAAoB","sourcesContent":["import { Component, Input, OnInit } from '@angular/core';\nimport { Dsl, Form, IMutableValueModel, TrackExternal } from '@coolon/pectin';\nimport { AbstractValueInputComponent } from '../abstract-value-input.component';\n\n\n@Component({\n selector: 'aup-number-input',\n templateUrl: './number-input.component.html',\n styleUrls: ['./number-input.component.scss']\n})\nexport class NumberInputComponent extends AbstractValueInputComponent<number> implements OnInit {\n\n @Input() @TrackExternal({ delegateTo: 'inputModel' })\n valueModel: Form.ValueModelBase<number> | IMutableValueModel<number>;\n\n @Input()\n min = Number.MIN_SAFE_INTEGER;\n\n @Input()\n max = Number.MAX_SAFE_INTEGER;\n\n constructor() {\n super();\n }\n\n ngOnInit() {\n }\n\n}\n"]}
1
+ {"version":3,"file":"number-input.component.js","sourceRoot":"ng://@coolon/angular-ui-powerups/","sources":["lib/components/forms/number-input/number-input.component.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAU,MAAM,eAAe,CAAC;AAEzD,OAAO,EAAE,2BAA2B,EAAE,MAAM,mCAAmC,CAAC;AAQhF;IAA0C,wCAAmC;IAW3E;QAAA,YACE,iBAAO,SACR;QAXD,wDAAwD;QACxD,wEAAwE;QAGxE,SAAG,GAAG,MAAM,CAAC,gBAAgB,CAAC;QAG9B,SAAG,GAAG,MAAM,CAAC,gBAAgB,CAAC;;IAI9B,CAAC;IAED,uCAAQ,GAAR;IACA,CAAC;IAVD;QADC,KAAK,EAAE;;qDACsB;IAG9B;QADC,KAAK,EAAE;;qDACsB;IATnB,oBAAoB;QALhC,SAAS,CAAC;YACT,QAAQ,EAAE,kBAAkB;YAC5B,6rBAA4C;;SAE7C,CAAC;;OACW,oBAAoB,CAkBhC;IAAD,2BAAC;CAAA,AAlBD,CAA0C,2BAA2B,GAkBpE;SAlBY,oBAAoB","sourcesContent":["import { Component, Input, OnInit } from '@angular/core';\nimport { Dsl, Form, IMutableValueModel, TrackExternal } from '@coolon/pectin';\nimport { AbstractValueInputComponent } from '../abstract-value-input.component';\n\n\n@Component({\n selector: 'aup-number-input',\n templateUrl: './number-input.component.html',\n styleUrls: ['./number-input.component.scss']\n})\nexport class NumberInputComponent extends AbstractValueInputComponent<number> implements OnInit {\n\n // @Input() @TrackExternal({ delegateTo: 'inputModel' })\n // valueModel: Form.ValueModelBase<number> | IMutableValueModel<number>;\n\n @Input()\n min = Number.MIN_SAFE_INTEGER;\n\n @Input()\n max = Number.MAX_SAFE_INTEGER;\n\n constructor() {\n super();\n }\n\n ngOnInit() {\n }\n\n}\n"]}
@@ -1,22 +1,19 @@
1
1
  import { __decorate, __extends, __metadata } from "tslib";
2
- import { Component, Input } from '@angular/core';
3
- import { TrackExternal } from '@coolon/pectin';
2
+ import { Component } from '@angular/core';
4
3
  import { AbstractValueInputComponent } from '../abstract-value-input.component';
5
4
  var PasswordInputComponent = /** @class */ (function (_super) {
6
5
  __extends(PasswordInputComponent, _super);
6
+ // @Input() @TrackExternal({ delegateTo: 'inputModel' })
7
+ // valueModel: Form.ValueModelBase<string> | IMutableValueModel<string>;
7
8
  function PasswordInputComponent() {
8
9
  return _super.call(this) || this;
9
10
  }
10
11
  PasswordInputComponent.prototype.ngOnInit = function () {
11
12
  };
12
- __decorate([
13
- Input(), TrackExternal({ delegateTo: 'inputModel' }),
14
- __metadata("design:type", Object)
15
- ], PasswordInputComponent.prototype, "valueModel", void 0);
16
13
  PasswordInputComponent = __decorate([
17
14
  Component({
18
15
  selector: 'aup-password-input',
19
- 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]=\"focusContext\"\n [errorStateMatcher]=\"errorStateMatcher\"\n >\n <mat-hint *ngIf=\"showHint\">{{hint}}</mat-hint>\n <mat-error *ngIf=\"hasErrors\">{{firstError}}</mat-error>\n</mat-form-field>\n\n",
16
+ 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)]=\"componentValueModel.value\"\n [disabled]=\"!enabled.value\"\n (keydown.enter)=\"notifyEnterKey()\"\n (keydown.escape)=\"notifyEscapeKey()\"\n [pectinFocusBinding]=\"focusContext\"\n [errorStateMatcher]=\"errorStateMatcher\"\n >\n <mat-hint *ngIf=\"showHint\">{{hint}}</mat-hint>\n <mat-error *ngIf=\"hasErrors\">{{firstError}}</mat-error>\n</mat-form-field>\n\n",
20
17
  styles: [""]
21
18
  }),
22
19
  __metadata("design:paramtypes", [])
@@ -1 +1 @@
1
- {"version":3,"file":"password-input.component.js","sourceRoot":"ng://@coolon/angular-ui-powerups/","sources":["lib/components/forms/password-input/password-input.component.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAU,MAAM,eAAe,CAAC;AACzD,OAAO,EAA4B,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACzE,OAAO,EAAE,2BAA2B,EAAE,MAAM,mCAAmC,CAAC;AAOhF;IAA4C,0CAAmC;IAK7E;eACE,iBAAO;IACT,CAAC;IAED,yCAAQ,GAAR;IACA,CAAC;IAPD;QADC,KAAK,EAAE,EAAE,aAAa,CAAC,EAAE,UAAU,EAAE,YAAY,EAAE,CAAC;;8DACgB;IAH1D,sBAAsB;QALlC,SAAS,CAAC;YACT,QAAQ,EAAE,oBAAoB;YAC9B,ioBAA8C;;SAE/C,CAAC;;OACW,sBAAsB,CAYlC;IAAD,6BAAC;CAAA,AAZD,CAA4C,2BAA2B,GAYtE;SAZY,sBAAsB","sourcesContent":["import { Component, Input, OnInit } from '@angular/core';\nimport { Form, IMutableValueModel, TrackExternal } from '@coolon/pectin';\nimport { AbstractValueInputComponent } from '../abstract-value-input.component';\n\n@Component({\n selector: 'aup-password-input',\n templateUrl: './password-input.component.html',\n styleUrls: ['./password-input.component.scss']\n})\nexport class PasswordInputComponent extends AbstractValueInputComponent<string> implements OnInit {\n\n @Input() @TrackExternal({ delegateTo: 'inputModel' })\n valueModel: Form.ValueModelBase<string> | IMutableValueModel<string>;\n\n constructor() {\n super();\n }\n\n ngOnInit() {\n }\n\n}\n"]}
1
+ {"version":3,"file":"password-input.component.js","sourceRoot":"ng://@coolon/angular-ui-powerups/","sources":["lib/components/forms/password-input/password-input.component.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAiB,MAAM,eAAe,CAAC;AAEzD,OAAO,EAAE,2BAA2B,EAAE,MAAM,mCAAmC,CAAC;AAOhF;IAA4C,0CAAmC;IAE7E,wDAAwD;IACxD,wEAAwE;IAExE;eACE,iBAAO;IACT,CAAC;IAED,yCAAQ,GAAR;IACA,CAAC;IAVU,sBAAsB;QALlC,SAAS,CAAC;YACT,QAAQ,EAAE,oBAAoB;YAC9B,0oBAA8C;;SAE/C,CAAC;;OACW,sBAAsB,CAYlC;IAAD,6BAAC;CAAA,AAZD,CAA4C,2BAA2B,GAYtE;SAZY,sBAAsB","sourcesContent":["import { Component, Input, OnInit } from '@angular/core';\nimport { Form, IMutableValueModel, TrackExternal } from '@coolon/pectin';\nimport { AbstractValueInputComponent } from '../abstract-value-input.component';\n\n@Component({\n selector: 'aup-password-input',\n templateUrl: './password-input.component.html',\n styleUrls: ['./password-input.component.scss']\n})\nexport class PasswordInputComponent extends AbstractValueInputComponent<string> implements OnInit {\n\n // @Input() @TrackExternal({ delegateTo: 'inputModel' })\n // valueModel: Form.ValueModelBase<string> | IMutableValueModel<string>;\n\n constructor() {\n super();\n }\n\n ngOnInit() {\n }\n\n}\n"]}