@bravura/ui 1.21.10 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (287) hide show
  1. package/CHANGELOG.md +25 -5
  2. package/README.md +1 -2
  3. package/alert/alert-container.component.d.ts +1 -1
  4. package/alert/alert-message.component.d.ts +1 -1
  5. package/alert/{bravura-ui-alert.d.ts → index.d.ts} +0 -0
  6. package/behavior/await.directive.d.ts +1 -1
  7. package/behavior/{bravura-ui-behavior.d.ts → index.d.ts} +0 -0
  8. package/behavior/sizing-monitor.directive.d.ts +1 -1
  9. package/behavior/sizing.directive.d.ts +1 -1
  10. package/common/{bravura-ui-common.d.ts → index.d.ts} +0 -0
  11. package/currency-input/currency-input.directive.d.ts +1 -1
  12. package/currency-input/{bravura-ui-currency-input.d.ts → index.d.ts} +0 -0
  13. package/decimal-input/decimal-input.directive.d.ts +1 -1
  14. package/decimal-input/{bravura-ui-decimal-input.d.ts → index.d.ts} +0 -0
  15. package/discrete-input/discrete-input.component.d.ts +6 -5
  16. package/discrete-input/{bravura-ui-discrete-input.d.ts → index.d.ts} +0 -0
  17. package/esm2020/alert/alert-container.component.mjs +201 -0
  18. package/esm2020/alert/alert-message.component.mjs +92 -0
  19. package/esm2020/alert/alert.module.mjs +22 -0
  20. package/{esm2015/alert/bravura-ui-alert.js → esm2020/alert/bravura-ui-alert.mjs} +0 -0
  21. package/{esm2015/alert/public-api.js → esm2020/alert/public-api.mjs} +0 -0
  22. package/{esm2015/behavior/await.directive.js → esm2020/behavior/await.directive.mjs} +4 -4
  23. package/esm2020/behavior/behavior.module.mjs +25 -0
  24. package/{esm2015/behavior/bravura-ui-behavior.js → esm2020/behavior/bravura-ui-behavior.mjs} +0 -0
  25. package/{esm2015/behavior/public-api.js → esm2020/behavior/public-api.mjs} +0 -0
  26. package/{esm2015/behavior/sizing-monitor.directive.js → esm2020/behavior/sizing-monitor.directive.mjs} +4 -4
  27. package/{esm2015/behavior/sizing.directive.js → esm2020/behavior/sizing.directive.mjs} +4 -4
  28. package/{esm2015/bravura-ui.js → esm2020/bravura-ui.mjs} +0 -0
  29. package/{esm2015/common/bravura-ui-common.js → esm2020/common/bravura-ui-common.mjs} +0 -0
  30. package/{esm2015/common/common-utils.js → esm2020/common/common-utils.mjs} +0 -0
  31. package/esm2020/common/common.module.mjs +52 -0
  32. package/{esm2015/common/public-api.js → esm2020/common/public-api.mjs} +0 -0
  33. package/{esm2015/currency-input/bravura-ui-currency-input.js → esm2020/currency-input/bravura-ui-currency-input.mjs} +0 -0
  34. package/esm2020/currency-input/currency-input.directive.mjs +279 -0
  35. package/esm2020/currency-input/currency-input.module.mjs +19 -0
  36. package/{esm2015/currency-input/public-api.js → esm2020/currency-input/public-api.mjs} +0 -0
  37. package/{esm2015/decimal-input/bravura-ui-decimal-input.js → esm2020/decimal-input/bravura-ui-decimal-input.mjs} +0 -0
  38. package/{esm2015/decimal-input/decimal-input.directive.js → esm2020/decimal-input/decimal-input.directive.mjs} +4 -4
  39. package/esm2020/decimal-input/decimal-input.module.mjs +19 -0
  40. package/{esm2015/decimal-input/public-api.js → esm2020/decimal-input/public-api.mjs} +0 -0
  41. package/{esm2015/discrete-input/bravura-ui-discrete-input.js → esm2020/discrete-input/bravura-ui-discrete-input.mjs} +0 -0
  42. package/esm2020/discrete-input/discrete-input.component.mjs +326 -0
  43. package/esm2020/discrete-input/discrete-input.module.mjs +21 -0
  44. package/{esm2015/discrete-input/public-api.js → esm2020/discrete-input/public-api.mjs} +0 -0
  45. package/{esm2015/file-upload/bravura-ui-file-upload.js → esm2020/file-upload/bravura-ui-file-upload.mjs} +0 -0
  46. package/esm2020/file-upload/file-upload.component.mjs +356 -0
  47. package/{esm2015/file-upload/file-upload.module.js → esm2020/file-upload/file-upload.module.mjs} +11 -13
  48. package/{esm2015/file-upload/file-upload.service.js → esm2020/file-upload/file-upload.service.mjs} +4 -4
  49. package/{esm2015/file-upload/public-api.js → esm2020/file-upload/public-api.mjs} +0 -0
  50. package/{esm2015/form-field/bravura-ui-form-field.js → esm2020/form-field/bravura-ui-form-field.mjs} +0 -0
  51. package/esm2020/form-field/form-field.component.mjs +96 -0
  52. package/esm2020/form-field/form-field.module.mjs +20 -0
  53. package/{esm2015/form-field/public-api.js → esm2020/form-field/public-api.mjs} +0 -0
  54. package/{esm2015/icon-font/bravura-ui-icon-font.js → esm2020/icon-font/bravura-ui-icon-font.mjs} +0 -0
  55. package/esm2020/icon-font/icon-font.module.mjs +22 -0
  56. package/{esm2015/icon-font/icon.directive.js → esm2020/icon-font/icon.directive.mjs} +4 -4
  57. package/{esm2015/icon-font/public-api.js → esm2020/icon-font/public-api.mjs} +0 -0
  58. package/{esm2015/icon-font/utilities.js → esm2020/icon-font/utilities.mjs} +0 -0
  59. package/esm2020/panel/bravura-ui-panel.mjs +5 -0
  60. package/esm2020/panel/panel.component.mjs +64 -0
  61. package/esm2020/panel/panel.module.mjs +20 -0
  62. package/esm2020/panel/public-api.mjs +2 -0
  63. package/{esm2015/phone-number/bravura-ui-phone-number.js → esm2020/phone-number/bravura-ui-phone-number.mjs} +0 -0
  64. package/esm2020/phone-number/phone-number.directive.mjs +187 -0
  65. package/esm2020/phone-number/phone-number.module.mjs +24 -0
  66. package/{esm2015/phone-number/phone-number.pipe.js → esm2020/phone-number/phone-number.pipe.mjs} +4 -4
  67. package/{esm2015/phone-number/phone-number.validator.js → esm2020/phone-number/phone-number.validator.mjs} +4 -4
  68. package/{esm2015/phone-number/public-api.js → esm2020/phone-number/public-api.mjs} +0 -0
  69. package/{esm2015/public-api.js → esm2020/public-api.mjs} +0 -0
  70. package/{esm2015/radio-panel/bravura-ui-radio-panel.js → esm2020/radio-panel/bravura-ui-radio-panel.mjs} +0 -0
  71. package/{esm2015/radio-panel/public-api.js → esm2020/radio-panel/public-api.mjs} +0 -0
  72. package/esm2020/radio-panel/radio-panel-item.component.mjs +97 -0
  73. package/esm2020/radio-panel/radio-panel.component.mjs +89 -0
  74. package/esm2020/radio-panel/radio-panel.module.mjs +25 -0
  75. package/{esm2015/selection-panel/bravura-ui-selection-panel.js → esm2020/selection-panel/bravura-ui-selection-panel.mjs} +0 -0
  76. package/{esm2015/selection-panel/public-api.js → esm2020/selection-panel/public-api.mjs} +0 -0
  77. package/esm2020/selection-panel/selection-panel-item.component.mjs +166 -0
  78. package/esm2020/selection-panel/selection-panel.directive.mjs +119 -0
  79. package/esm2020/selection-panel/selection-panel.module.mjs +23 -0
  80. package/{esm2015/skeletons/bravura-ui-skeletons.js → esm2020/skeletons/bravura-ui-skeletons.mjs} +0 -0
  81. package/{esm2015/skeletons/public-api.js → esm2020/skeletons/public-api.mjs} +0 -0
  82. package/esm2020/skeletons/skeleton-loader-presets.directive.mjs +83 -0
  83. package/{esm2015/skeletons/skeleton-loader.component.js → esm2020/skeletons/skeleton-loader.component.mjs} +4 -4
  84. package/esm2020/skeletons/skeletons.module.mjs +35 -0
  85. package/{esm2015/stepper/bravura-ui-stepper.js → esm2020/stepper/bravura-ui-stepper.mjs} +0 -0
  86. package/{esm2015/stepper/public-api.js → esm2020/stepper/public-api.mjs} +0 -0
  87. package/esm2020/stepper/stepper-animation.mjs +23 -0
  88. package/esm2020/stepper/stepper.component.mjs +166 -0
  89. package/{esm2015/stepper/stepper.module.js → esm2020/stepper/stepper.module.mjs} +13 -15
  90. package/{esm2015/tooltip/bravura-ui-tooltip.js → esm2020/tooltip/bravura-ui-tooltip.mjs} +0 -0
  91. package/{esm2015/tooltip/public-api.js → esm2020/tooltip/public-api.mjs} +0 -0
  92. package/esm2020/tooltip/tooltip.component.mjs +51 -0
  93. package/{esm2015/tooltip/tooltip.directive.js → esm2020/tooltip/tooltip.directive.mjs} +4 -4
  94. package/esm2020/tooltip/tooltip.module.mjs +25 -0
  95. package/fesm2015/bravura-ui-alert.mjs +324 -0
  96. package/fesm2015/bravura-ui-alert.mjs.map +1 -0
  97. package/fesm2015/bravura-ui-behavior.mjs +407 -0
  98. package/fesm2015/bravura-ui-behavior.mjs.map +1 -0
  99. package/fesm2015/bravura-ui-common.mjs +74 -0
  100. package/fesm2015/bravura-ui-common.mjs.map +1 -0
  101. package/fesm2015/bravura-ui-currency-input.mjs +303 -0
  102. package/fesm2015/bravura-ui-currency-input.mjs.map +1 -0
  103. package/fesm2015/bravura-ui-decimal-input.mjs +149 -0
  104. package/fesm2015/bravura-ui-decimal-input.mjs.map +1 -0
  105. package/fesm2015/bravura-ui-discrete-input.mjs +354 -0
  106. package/fesm2015/bravura-ui-discrete-input.mjs.map +1 -0
  107. package/fesm2015/bravura-ui-file-upload.mjs +434 -0
  108. package/fesm2015/bravura-ui-file-upload.mjs.map +1 -0
  109. package/fesm2015/{bravura-ui-form-field.js → bravura-ui-form-field.mjs} +12 -23
  110. package/fesm2015/bravura-ui-form-field.mjs.map +1 -0
  111. package/fesm2015/{bravura-ui-icon-font.js → bravura-ui-icon-font.mjs} +8 -8
  112. package/fesm2015/bravura-ui-icon-font.mjs.map +1 -0
  113. package/fesm2015/bravura-ui-panel.mjs +87 -0
  114. package/fesm2015/bravura-ui-panel.mjs.map +1 -0
  115. package/fesm2015/{bravura-ui-phone-number.js → bravura-ui-phone-number.mjs} +34 -30
  116. package/fesm2015/bravura-ui-phone-number.mjs.map +1 -0
  117. package/fesm2015/bravura-ui-radio-panel.mjs +212 -0
  118. package/fesm2015/bravura-ui-radio-panel.mjs.map +1 -0
  119. package/fesm2015/{bravura-ui-selection-panel.js → bravura-ui-selection-panel.mjs} +24 -28
  120. package/fesm2015/bravura-ui-selection-panel.mjs.map +1 -0
  121. package/fesm2015/bravura-ui-skeletons.mjs +195 -0
  122. package/fesm2015/bravura-ui-skeletons.mjs.map +1 -0
  123. package/fesm2015/bravura-ui-stepper.mjs +243 -0
  124. package/fesm2015/bravura-ui-stepper.mjs.map +1 -0
  125. package/fesm2015/bravura-ui-tooltip.mjs +195 -0
  126. package/fesm2015/bravura-ui-tooltip.mjs.map +1 -0
  127. package/fesm2015/{bravura-ui.js → bravura-ui.mjs} +1 -1
  128. package/fesm2015/bravura-ui.mjs.map +1 -0
  129. package/fesm2020/bravura-ui-alert.mjs +312 -0
  130. package/fesm2020/bravura-ui-alert.mjs.map +1 -0
  131. package/{fesm2015/bravura-ui-behavior.js → fesm2020/bravura-ui-behavior.mjs} +14 -14
  132. package/fesm2020/bravura-ui-behavior.mjs.map +1 -0
  133. package/{fesm2015/bravura-ui-common.js → fesm2020/bravura-ui-common.mjs} +7 -7
  134. package/fesm2020/bravura-ui-common.mjs.map +1 -0
  135. package/{fesm2015/bravura-ui-currency-input.js → fesm2020/bravura-ui-currency-input.mjs} +9 -10
  136. package/fesm2020/bravura-ui-currency-input.mjs.map +1 -0
  137. package/{fesm2015/bravura-ui-decimal-input.js → fesm2020/bravura-ui-decimal-input.mjs} +8 -8
  138. package/fesm2020/bravura-ui-decimal-input.mjs.map +1 -0
  139. package/{fesm2015/bravura-ui-discrete-input.js → fesm2020/bravura-ui-discrete-input.mjs} +18 -26
  140. package/fesm2020/bravura-ui-discrete-input.mjs.map +1 -0
  141. package/fesm2020/bravura-ui-file-upload.mjs +430 -0
  142. package/fesm2020/bravura-ui-file-upload.mjs.map +1 -0
  143. package/fesm2020/bravura-ui-form-field.mjs +119 -0
  144. package/fesm2020/bravura-ui-form-field.mjs.map +1 -0
  145. package/fesm2020/bravura-ui-icon-font.mjs +178 -0
  146. package/fesm2020/bravura-ui-icon-font.mjs.map +1 -0
  147. package/fesm2020/bravura-ui-panel.mjs +87 -0
  148. package/fesm2020/bravura-ui-panel.mjs.map +1 -0
  149. package/fesm2020/bravura-ui-phone-number.mjs +317 -0
  150. package/fesm2020/bravura-ui-phone-number.mjs.map +1 -0
  151. package/fesm2020/bravura-ui-radio-panel.mjs +209 -0
  152. package/fesm2020/bravura-ui-radio-panel.mjs.map +1 -0
  153. package/fesm2020/bravura-ui-selection-panel.mjs +306 -0
  154. package/fesm2020/bravura-ui-selection-panel.mjs.map +1 -0
  155. package/{fesm2015/bravura-ui-skeletons.js → fesm2020/bravura-ui-skeletons.mjs} +13 -13
  156. package/fesm2020/bravura-ui-skeletons.mjs.map +1 -0
  157. package/{fesm2015/bravura-ui-stepper.js → fesm2020/bravura-ui-stepper.mjs} +27 -44
  158. package/fesm2020/bravura-ui-stepper.mjs.map +1 -0
  159. package/{fesm2015/bravura-ui-tooltip.js → fesm2020/bravura-ui-tooltip.mjs} +13 -22
  160. package/fesm2020/bravura-ui-tooltip.mjs.map +1 -0
  161. package/fesm2020/bravura-ui.mjs +8 -0
  162. package/fesm2020/bravura-ui.mjs.map +1 -0
  163. package/file-upload/file-upload.component.d.ts +1 -1
  164. package/file-upload/{bravura-ui-file-upload.d.ts → index.d.ts} +0 -0
  165. package/form-field/form-field.component.d.ts +1 -1
  166. package/form-field/{bravura-ui-form-field.d.ts → index.d.ts} +0 -0
  167. package/icon-font/icon.directive.d.ts +1 -1
  168. package/icon-font/{bravura-ui-icon-font.d.ts → index.d.ts} +0 -0
  169. package/{bravura-ui.d.ts → index.d.ts} +0 -0
  170. package/package.json +157 -14
  171. package/panel/index.d.ts +5 -0
  172. package/panel/panel.component.d.ts +46 -0
  173. package/panel/panel.module.d.ts +11 -0
  174. package/panel/public-api.d.ts +1 -0
  175. package/phone-number/{bravura-ui-phone-number.d.ts → index.d.ts} +0 -0
  176. package/phone-number/phone-number.directive.d.ts +1 -1
  177. package/phone-number/phone-number.pipe.d.ts +1 -1
  178. package/phone-number/phone-number.validator.d.ts +1 -1
  179. package/radio-panel/{bravura-ui-radio-panel.d.ts → index.d.ts} +0 -0
  180. package/radio-panel/radio-panel-item.component.d.ts +1 -1
  181. package/radio-panel/radio-panel.component.d.ts +1 -1
  182. package/selection-panel/{bravura-ui-selection-panel.d.ts → index.d.ts} +0 -0
  183. package/selection-panel/selection-panel-item.component.d.ts +1 -1
  184. package/selection-panel/selection-panel.directive.d.ts +1 -1
  185. package/skeletons/{bravura-ui-skeletons.d.ts → index.d.ts} +0 -0
  186. package/skeletons/skeleton-loader-presets.directive.d.ts +1 -1
  187. package/skeletons/skeleton-loader.component.d.ts +1 -1
  188. package/stepper/{bravura-ui-stepper.d.ts → index.d.ts} +0 -0
  189. package/stepper/stepper.component.d.ts +1 -1
  190. package/theme/_ui-theme.scss +1 -1
  191. package/tooltip/{bravura-ui-tooltip.d.ts → index.d.ts} +0 -0
  192. package/tooltip/tooltip.component.d.ts +1 -1
  193. package/tooltip/tooltip.directive.d.ts +1 -1
  194. package/alert/package.json +0 -10
  195. package/behavior/package.json +0 -10
  196. package/bundles/bravura-ui-alert.umd.js +0 -745
  197. package/bundles/bravura-ui-alert.umd.js.map +0 -1
  198. package/bundles/bravura-ui-behavior.umd.js +0 -788
  199. package/bundles/bravura-ui-behavior.umd.js.map +0 -1
  200. package/bundles/bravura-ui-common.umd.js +0 -103
  201. package/bundles/bravura-ui-common.umd.js.map +0 -1
  202. package/bundles/bravura-ui-currency-input.umd.js +0 -335
  203. package/bundles/bravura-ui-currency-input.umd.js.map +0 -1
  204. package/bundles/bravura-ui-decimal-input.umd.js +0 -178
  205. package/bundles/bravura-ui-decimal-input.umd.js.map +0 -1
  206. package/bundles/bravura-ui-discrete-input.umd.js +0 -747
  207. package/bundles/bravura-ui-discrete-input.umd.js.map +0 -1
  208. package/bundles/bravura-ui-file-upload.umd.js +0 -845
  209. package/bundles/bravura-ui-file-upload.umd.js.map +0 -1
  210. package/bundles/bravura-ui-form-field.umd.js +0 -494
  211. package/bundles/bravura-ui-form-field.umd.js.map +0 -1
  212. package/bundles/bravura-ui-icon-font.umd.js +0 -539
  213. package/bundles/bravura-ui-icon-font.umd.js.map +0 -1
  214. package/bundles/bravura-ui-phone-number.umd.js +0 -690
  215. package/bundles/bravura-ui-phone-number.umd.js.map +0 -1
  216. package/bundles/bravura-ui-radio-panel.umd.js +0 -595
  217. package/bundles/bravura-ui-radio-panel.umd.js.map +0 -1
  218. package/bundles/bravura-ui-selection-panel.umd.js +0 -699
  219. package/bundles/bravura-ui-selection-panel.umd.js.map +0 -1
  220. package/bundles/bravura-ui-skeletons.umd.js +0 -525
  221. package/bundles/bravura-ui-skeletons.umd.js.map +0 -1
  222. package/bundles/bravura-ui-stepper.umd.js +0 -613
  223. package/bundles/bravura-ui-stepper.umd.js.map +0 -1
  224. package/bundles/bravura-ui-tooltip.umd.js +0 -586
  225. package/bundles/bravura-ui-tooltip.umd.js.map +0 -1
  226. package/bundles/bravura-ui.umd.js +0 -18
  227. package/bundles/bravura-ui.umd.js.map +0 -1
  228. package/common/package.json +0 -10
  229. package/currency-input/package.json +0 -10
  230. package/decimal-input/package.json +0 -10
  231. package/discrete-input/package.json +0 -10
  232. package/esm2015/alert/alert-container.component.js +0 -220
  233. package/esm2015/alert/alert-message.component.js +0 -98
  234. package/esm2015/alert/alert.module.js +0 -22
  235. package/esm2015/behavior/behavior.module.js +0 -25
  236. package/esm2015/common/common.module.js +0 -52
  237. package/esm2015/currency-input/currency-input.directive.js +0 -280
  238. package/esm2015/currency-input/currency-input.module.js +0 -19
  239. package/esm2015/decimal-input/decimal-input.module.js +0 -19
  240. package/esm2015/discrete-input/discrete-input.component.js +0 -334
  241. package/esm2015/discrete-input/discrete-input.module.js +0 -21
  242. package/esm2015/file-upload/file-upload.component.js +0 -367
  243. package/esm2015/form-field/form-field.component.js +0 -107
  244. package/esm2015/form-field/form-field.module.js +0 -20
  245. package/esm2015/icon-font/icon-font.module.js +0 -22
  246. package/esm2015/phone-number/phone-number.directive.js +0 -192
  247. package/esm2015/phone-number/phone-number.module.js +0 -24
  248. package/esm2015/radio-panel/radio-panel-item.component.js +0 -109
  249. package/esm2015/radio-panel/radio-panel.component.js +0 -98
  250. package/esm2015/radio-panel/radio-panel.module.js +0 -25
  251. package/esm2015/selection-panel/selection-panel-item.component.js +0 -174
  252. package/esm2015/selection-panel/selection-panel.directive.js +0 -120
  253. package/esm2015/selection-panel/selection-panel.module.js +0 -23
  254. package/esm2015/skeletons/skeleton-loader-presets.directive.js +0 -83
  255. package/esm2015/skeletons/skeletons.module.js +0 -35
  256. package/esm2015/stepper/stepper-animation.js +0 -23
  257. package/esm2015/stepper/stepper.component.js +0 -181
  258. package/esm2015/tooltip/tooltip.component.js +0 -59
  259. package/esm2015/tooltip/tooltip.module.js +0 -26
  260. package/fesm2015/bravura-ui-alert.js +0 -337
  261. package/fesm2015/bravura-ui-alert.js.map +0 -1
  262. package/fesm2015/bravura-ui-behavior.js.map +0 -1
  263. package/fesm2015/bravura-ui-common.js.map +0 -1
  264. package/fesm2015/bravura-ui-currency-input.js.map +0 -1
  265. package/fesm2015/bravura-ui-decimal-input.js.map +0 -1
  266. package/fesm2015/bravura-ui-discrete-input.js.map +0 -1
  267. package/fesm2015/bravura-ui-file-upload.js +0 -443
  268. package/fesm2015/bravura-ui-file-upload.js.map +0 -1
  269. package/fesm2015/bravura-ui-form-field.js.map +0 -1
  270. package/fesm2015/bravura-ui-icon-font.js.map +0 -1
  271. package/fesm2015/bravura-ui-phone-number.js.map +0 -1
  272. package/fesm2015/bravura-ui-radio-panel.js +0 -230
  273. package/fesm2015/bravura-ui-radio-panel.js.map +0 -1
  274. package/fesm2015/bravura-ui-selection-panel.js.map +0 -1
  275. package/fesm2015/bravura-ui-skeletons.js.map +0 -1
  276. package/fesm2015/bravura-ui-stepper.js.map +0 -1
  277. package/fesm2015/bravura-ui-tooltip.js.map +0 -1
  278. package/fesm2015/bravura-ui.js.map +0 -1
  279. package/file-upload/package.json +0 -10
  280. package/form-field/package.json +0 -10
  281. package/icon-font/package.json +0 -10
  282. package/phone-number/package.json +0 -10
  283. package/radio-panel/package.json +0 -10
  284. package/selection-panel/package.json +0 -10
  285. package/skeletons/package.json +0 -10
  286. package/stepper/package.json +0 -10
  287. package/tooltip/package.json +0 -10
@@ -0,0 +1,119 @@
1
+ import * as i2 from '@angular/cdk/observers';
2
+ import { ObserversModule } from '@angular/cdk/observers';
3
+ import * as i1 from '@angular/common';
4
+ import { CommonModule } from '@angular/common';
5
+ import * as i0 from '@angular/core';
6
+ import { forwardRef, Component, ViewEncapsulation, ChangeDetectionStrategy, HostListener, NgModule } from '@angular/core';
7
+ import { MatFormField, MAT_FORM_FIELD, matFormFieldAnimations, MatFormFieldModule } from '@angular/material/form-field';
8
+
9
+ /** @ignore */
10
+ const TYPE_REF = forwardRef(() => FormFieldComponent);
11
+ /**
12
+ * Container for form controls that applies Material Design styling and behavior.
13
+ *
14
+ * This component extends Angular Material's [mat-form-field](https://material.angular.io/components/form-field) and provides two additional appearances
15
+ * `bound` and `detach`. `bound` renders the label outside the outlined area of the field, while `detach` remove the borders all together. `detach`
16
+ * is generally used with form controls that render their own borders.
17
+ */
18
+ class FormFieldComponent extends MatFormField {
19
+ /**
20
+ * @ignore
21
+ */
22
+ _shouldAlwaysFloat() {
23
+ return super._shouldAlwaysFloat() || this._enhancedAppearance();
24
+ }
25
+ /**
26
+ * @ignore
27
+ */
28
+ _borderClass() {
29
+ if (this.appearance !== 'bound') {
30
+ return 'bui-form-field-flex-default';
31
+ }
32
+ if (this._control.disabled) {
33
+ return 'bui-form-field-border-disabled';
34
+ }
35
+ else if (this._control.errorState) {
36
+ return 'bui-border-warn bui-form-field-border-thick';
37
+ }
38
+ else if (this._control.focused) {
39
+ return `bui-border-${this.color || 'primary'} bui-form-field-border-thick`;
40
+ }
41
+ else {
42
+ return 'bui-form-field-border-default bui-border-emphasis';
43
+ }
44
+ }
45
+ /**
46
+ * @ignore
47
+ */
48
+ _enhancedAppearance() {
49
+ return this.appearance === 'detach' || this.appearance === 'bound';
50
+ }
51
+ /** @ignore */
52
+ _hostClicked(event) {
53
+ this._control.onContainerClick && this._control.onContainerClick(event);
54
+ }
55
+ get __defaults() {
56
+ return this._defaults;
57
+ }
58
+ }
59
+ FormFieldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: FormFieldComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
60
+ FormFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.3", type: FormFieldComponent, selector: "bui-form-field", inputs: { color: "color" }, host: { listeners: { "click": "_hostClicked($event)" }, properties: { "class.mat-form-field-appearance-standard": "appearance == \"standard\"", "class.mat-form-field-appearance-fill": "appearance == \"fill\"", "class.mat-form-field-appearance-outline": "appearance == \"outline\"", "class.mat-form-field-appearance-detach": "appearance == \"detach\"", "class.mat-form-field-appearance-bound": "appearance == \"bound\"", "class.mat-form-field-appearance-legacy": "appearance == \"legacy\"", "class.mat-form-field-invalid": "_control.errorState", "class.mat-form-field-can-float": "_canLabelFloat()", "class.mat-form-field-should-float": "_shouldLabelFloat()", "class.mat-form-field-has-label": "_hasFloatingLabel()", "class.mat-form-field-hide-placeholder": "_hideControlPlaceholder()", "class.mat-form-field-disabled": "_control.disabled", "class.mat-form-field-autofilled": "_control.autofilled", "class.mat-focused": "_control.focused", "class.ng-untouched": "_shouldForward(\"untouched\")", "class.ng-touched": "_shouldForward(\"touched\")", "class.ng-pristine": "_shouldForward(\"pristine\")", "class.ng-dirty": "_shouldForward(\"dirty\")", "class.ng-valid": "_shouldForward(\"valid\")", "class.ng-invalid": "_shouldForward(\"invalid\")", "class.ng-pending": "_shouldForward(\"pending\")", "class._mat-animation-noopable": "!_animationsEnabled" }, classAttribute: "mat-form-field bui-form-field bui-host" }, providers: [
61
+ { provide: MAT_FORM_FIELD, useExisting: TYPE_REF },
62
+ { provide: MatFormField, useExisting: TYPE_REF }
63
+ ], exportAs: ["buiFormField"], usesInheritance: true, ngImport: i0, template: "<div class=\"mat-form-field-wrapper\">\n\t<div class=\"mat-form-field-flex {{ _borderClass() }}\" #connectionContainer>\n\t\t<!-- Outline used for outline appearance. -->\n\t\t<ng-container *ngIf=\"appearance == 'outline'\">\n\t\t\t<div class=\"mat-form-field-outline\">\n\t\t\t\t<div class=\"mat-form-field-outline-start\"></div>\n\t\t\t\t<div class=\"mat-form-field-outline-gap\"></div>\n\t\t\t\t<div class=\"mat-form-field-outline-end\"></div>\n\t\t\t</div>\n\t\t\t<div class=\"mat-form-field-outline mat-form-field-outline-thick\">\n\t\t\t\t<div class=\"mat-form-field-outline-start\"></div>\n\t\t\t\t<div class=\"mat-form-field-outline-gap\"></div>\n\t\t\t\t<div class=\"mat-form-field-outline-end\"></div>\n\t\t\t</div>\n\t\t</ng-container>\n\n\t\t<div class=\"mat-form-field-prefix\" *ngIf=\"_prefixChildren.length\">\n\t\t\t<ng-content select=\"[matPrefix]\"></ng-content>\n\t\t</div>\n\n\t\t<div class=\"{{ _enhancedAppearance() ? 'bui-form-field-infix' : 'mat-form-field-infix' }}\" #inputContainer>\n\t\t\t<ng-content></ng-content>\n\n\t\t\t<span class=\"mat-form-field-label-wrapper\">\n\t\t\t\t<!-- We add aria-owns as a workaround for an issue in JAWS & NVDA where the label isn't\n\t\t\t read if it comes before the control in the DOM. -->\n\t\t\t\t<label\n\t\t\t\t\tclass=\"mat-form-field-label\"\n\t\t\t\t\t(cdkObserveContent)=\"updateOutlineGap()\"\n\t\t\t\t\t[cdkObserveContentDisabled]=\"appearance != 'outline'\"\n\t\t\t\t\t[id]=\"_labelId\"\n\t\t\t\t\t[attr.for]=\"_control.id\"\n\t\t\t\t\t[attr.aria-owns]=\"_control.id\"\n\t\t\t\t\t[class.mat-empty]=\"_control.empty && !_shouldAlwaysFloat()\"\n\t\t\t\t\t[class.mat-form-field-empty]=\"_control.empty && !_shouldAlwaysFloat()\"\n\t\t\t\t\t[class.mat-accent]=\"color == 'accent'\"\n\t\t\t\t\t[class.mat-warn]=\"color == 'warn'\"\n\t\t\t\t\t[class.bui-bold-label]=\"__defaults?.boldLabel\"\n\t\t\t\t\t#label\n\t\t\t\t\t*ngIf=\"_hasFloatingLabel()\"\n\t\t\t\t\t[ngSwitch]=\"_hasLabel()\"\n\t\t\t\t>\n\t\t\t\t\t<!-- @breaking-change 8.0.0 remove in favor of mat-label element an placeholder attr. -->\n\t\t\t\t\t<ng-container *ngSwitchCase=\"false\">\n\t\t\t\t\t\t<ng-content select=\"mat-placeholder\"></ng-content>\n\t\t\t\t\t\t<span>{{ _control.placeholder }}</span>\n\t\t\t\t\t</ng-container>\n\n\t\t\t\t\t<ng-content select=\"mat-label\" *ngSwitchCase=\"true\"></ng-content>\n\n\t\t\t\t\t<!-- @breaking-change 8.0.0 remove `mat-placeholder-required` class -->\n\t\t\t\t\t<span\n\t\t\t\t\t\tclass=\"mat-placeholder-required mat-form-field-required-marker\"\n\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\t*ngIf=\"!hideRequiredMarker && _control.required && !_control.disabled\"\n\t\t\t\t\t\t>&#32;*</span\n\t\t\t\t\t>\n\t\t\t\t</label>\n\t\t\t</span>\n\t\t</div>\n\n\t\t<div class=\"mat-form-field-suffix\" *ngIf=\"_suffixChildren.length\">\n\t\t\t<ng-content select=\"[matSuffix]\"></ng-content>\n\t\t</div>\n\t</div>\n\n\t<!-- Underline used for legacy, standard, and box appearances. -->\n\t<div class=\"mat-form-field-underline\" #underline *ngIf=\"appearance != 'outline'\">\n\t\t<span\n\t\t\tclass=\"mat-form-field-ripple\"\n\t\t\t[class.mat-accent]=\"color == 'accent'\"\n\t\t\t[class.mat-warn]=\"color == 'warn'\"\n\t\t></span>\n\t</div>\n\n\t<div class=\"mat-form-field-subscript-wrapper\" [ngSwitch]=\"_getDisplayedMessages()\" (click)=\"$event.stopPropagation()\">\n\t\t<div *ngSwitchCase=\"'error'\" [@transitionMessages]=\"_subscriptAnimationState\">\n\t\t\t<ng-content select=\"mat-error\"></ng-content>\n\t\t</div>\n\n\t\t<div class=\"mat-form-field-hint-wrapper\" *ngSwitchCase=\"'hint'\" [@transitionMessages]=\"_subscriptAnimationState\">\n\t\t\t<!-- TODO(mmalerba): use an actual <mat-hint> once all selectors are switched to mat-* -->\n\t\t\t<div *ngIf=\"hintLabel\" [id]=\"_hintLabelId\" class=\"mat-hint\">{{ hintLabel }}</div>\n\t\t\t<ng-content select=\"mat-hint:not([align='end'])\"></ng-content>\n\t\t\t<div class=\"mat-form-field-hint-spacer\"></div>\n\t\t\t<ng-content select=\"mat-hint[align='end']\"></ng-content>\n\t\t</div>\n\t</div>\n</div>\n", styles: [".mat-form-field-appearance-bound{width:215px}.mat-form-field-appearance-bound .mat-form-field-flex{align-items:center;border-radius:4px;border-style:solid}.mat-form-field-appearance-bound .mat-form-field-flex:not(.bui-form-field-border-thick):not(:hover),.mat-form-field-appearance-bound .mat-form-field-flex.bui-form-field-border-disabled{padding:8px;border-width:1px;margin:1px}.mat-form-field-appearance-bound .mat-form-field-flex.bui-form-field-border-disabled{border-color:#80808033;border-style:dotted}.mat-form-field-appearance-bound .mat-form-field-flex.bui-form-field-border-default{border-color:#80808066}.mat-form-field-appearance-bound .mat-form-field-flex.bui-form-field-border-thick,.mat-form-field-appearance-bound .mat-form-field-flex.bui-border-emphasis:hover{border-width:2px;padding:8px 6px 8px 8px}.mat-form-field-appearance-bound .mat-form-field-flex .mat-form-field-prefix .mat-icon,.mat-form-field-appearance-bound .mat-form-field-flex .mat-form-field-suffix .mat-icon{height:.667em!important;line-height:.667em}.mat-form-field-appearance-bound .mat-form-field-flex .mat-form-field-prefix button[matsuffix],.mat-form-field-appearance-bound .mat-form-field-flex .mat-form-field-prefix button.mat-icon-button,.mat-form-field-appearance-bound .mat-form-field-flex .mat-form-field-suffix button[matsuffix],.mat-form-field-appearance-bound .mat-form-field-flex .mat-form-field-suffix button.mat-icon-button{display:flex;height:1em;width:1.5em}.mat-form-field-appearance-bound .mat-form-field-flex .mat-form-field-prefix.mat-datepicker-toggle,.mat-form-field-appearance-bound .mat-form-field-flex .mat-form-field-prefix .mat-datepicker-toggle,.mat-form-field-appearance-bound .mat-form-field-flex .mat-form-field-suffix.mat-datepicker-toggle,.mat-form-field-appearance-bound .mat-form-field-flex .mat-form-field-suffix .mat-datepicker-toggle{display:flex;align-items:center;justify-content:center;width:1.5em;height:1em}.mat-form-field-appearance-bound .mat-form-field-flex .mat-form-field-prefix.mat-datepicker-toggle .mat-icon-button,.mat-form-field-appearance-bound .mat-form-field-flex .mat-form-field-prefix .mat-datepicker-toggle .mat-icon-button,.mat-form-field-appearance-bound .mat-form-field-flex .mat-form-field-suffix.mat-datepicker-toggle .mat-icon-button,.mat-form-field-appearance-bound .mat-form-field-flex .mat-form-field-suffix .mat-datepicker-toggle .mat-icon-button{width:2em;height:2em}.mat-form-field-appearance-detach,.mat-form-field-appearance-bound{padding-top:.75em}.mat-form-field-appearance-detach .mat-form-field-wrapper,.mat-form-field-appearance-bound .mat-form-field-wrapper{padding-top:.5em}.mat-form-field-appearance-detach .bui-form-field-infix,.mat-form-field-appearance-bound .bui-form-field-infix{flex-grow:1}.mat-form-field-appearance-detach .mat-form-field-label,.mat-form-field-appearance-bound .mat-form-field-label{font-size:1.125em}.mat-form-field-appearance-detach .mat-form-field-flex,.mat-form-field-appearance-bound .mat-form-field-flex{align-items:center}.mat-form-field-appearance-detach .mat-form-field-flex{padding:.125em 0;align-items:center}.bui-form-field .bui-bold-label{font-weight:700}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i2.CdkObserveContent, selector: "[cdkObserveContent]", inputs: ["cdkObserveContentDisabled", "debounce"], outputs: ["cdkObserveContent"], exportAs: ["cdkObserveContent"] }], animations: [matFormFieldAnimations.transitionMessages], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
64
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: FormFieldComponent, decorators: [{
65
+ type: Component,
66
+ args: [{ selector: 'bui-form-field', exportAs: 'buiFormField', animations: [matFormFieldAnimations.transitionMessages], host: {
67
+ class: 'mat-form-field bui-form-field bui-host',
68
+ '[class.mat-form-field-appearance-standard]': 'appearance == "standard"',
69
+ '[class.mat-form-field-appearance-fill]': 'appearance == "fill"',
70
+ '[class.mat-form-field-appearance-outline]': 'appearance == "outline"',
71
+ '[class.mat-form-field-appearance-detach]': 'appearance == "detach"',
72
+ '[class.mat-form-field-appearance-bound]': 'appearance == "bound"',
73
+ '[class.mat-form-field-appearance-legacy]': 'appearance == "legacy"',
74
+ '[class.mat-form-field-invalid]': '_control.errorState',
75
+ '[class.mat-form-field-can-float]': '_canLabelFloat()',
76
+ '[class.mat-form-field-should-float]': '_shouldLabelFloat()',
77
+ '[class.mat-form-field-has-label]': '_hasFloatingLabel()',
78
+ '[class.mat-form-field-hide-placeholder]': '_hideControlPlaceholder()',
79
+ '[class.mat-form-field-disabled]': '_control.disabled',
80
+ '[class.mat-form-field-autofilled]': '_control.autofilled',
81
+ '[class.mat-focused]': '_control.focused',
82
+ '[class.ng-untouched]': '_shouldForward("untouched")',
83
+ '[class.ng-touched]': '_shouldForward("touched")',
84
+ '[class.ng-pristine]': '_shouldForward("pristine")',
85
+ '[class.ng-dirty]': '_shouldForward("dirty")',
86
+ '[class.ng-valid]': '_shouldForward("valid")',
87
+ '[class.ng-invalid]': '_shouldForward("invalid")',
88
+ '[class.ng-pending]': '_shouldForward("pending")',
89
+ '[class._mat-animation-noopable]': '!_animationsEnabled'
90
+ }, inputs: ['color'], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
91
+ { provide: MAT_FORM_FIELD, useExisting: TYPE_REF },
92
+ { provide: MatFormField, useExisting: TYPE_REF }
93
+ ], template: "<div class=\"mat-form-field-wrapper\">\n\t<div class=\"mat-form-field-flex {{ _borderClass() }}\" #connectionContainer>\n\t\t<!-- Outline used for outline appearance. -->\n\t\t<ng-container *ngIf=\"appearance == 'outline'\">\n\t\t\t<div class=\"mat-form-field-outline\">\n\t\t\t\t<div class=\"mat-form-field-outline-start\"></div>\n\t\t\t\t<div class=\"mat-form-field-outline-gap\"></div>\n\t\t\t\t<div class=\"mat-form-field-outline-end\"></div>\n\t\t\t</div>\n\t\t\t<div class=\"mat-form-field-outline mat-form-field-outline-thick\">\n\t\t\t\t<div class=\"mat-form-field-outline-start\"></div>\n\t\t\t\t<div class=\"mat-form-field-outline-gap\"></div>\n\t\t\t\t<div class=\"mat-form-field-outline-end\"></div>\n\t\t\t</div>\n\t\t</ng-container>\n\n\t\t<div class=\"mat-form-field-prefix\" *ngIf=\"_prefixChildren.length\">\n\t\t\t<ng-content select=\"[matPrefix]\"></ng-content>\n\t\t</div>\n\n\t\t<div class=\"{{ _enhancedAppearance() ? 'bui-form-field-infix' : 'mat-form-field-infix' }}\" #inputContainer>\n\t\t\t<ng-content></ng-content>\n\n\t\t\t<span class=\"mat-form-field-label-wrapper\">\n\t\t\t\t<!-- We add aria-owns as a workaround for an issue in JAWS & NVDA where the label isn't\n\t\t\t read if it comes before the control in the DOM. -->\n\t\t\t\t<label\n\t\t\t\t\tclass=\"mat-form-field-label\"\n\t\t\t\t\t(cdkObserveContent)=\"updateOutlineGap()\"\n\t\t\t\t\t[cdkObserveContentDisabled]=\"appearance != 'outline'\"\n\t\t\t\t\t[id]=\"_labelId\"\n\t\t\t\t\t[attr.for]=\"_control.id\"\n\t\t\t\t\t[attr.aria-owns]=\"_control.id\"\n\t\t\t\t\t[class.mat-empty]=\"_control.empty && !_shouldAlwaysFloat()\"\n\t\t\t\t\t[class.mat-form-field-empty]=\"_control.empty && !_shouldAlwaysFloat()\"\n\t\t\t\t\t[class.mat-accent]=\"color == 'accent'\"\n\t\t\t\t\t[class.mat-warn]=\"color == 'warn'\"\n\t\t\t\t\t[class.bui-bold-label]=\"__defaults?.boldLabel\"\n\t\t\t\t\t#label\n\t\t\t\t\t*ngIf=\"_hasFloatingLabel()\"\n\t\t\t\t\t[ngSwitch]=\"_hasLabel()\"\n\t\t\t\t>\n\t\t\t\t\t<!-- @breaking-change 8.0.0 remove in favor of mat-label element an placeholder attr. -->\n\t\t\t\t\t<ng-container *ngSwitchCase=\"false\">\n\t\t\t\t\t\t<ng-content select=\"mat-placeholder\"></ng-content>\n\t\t\t\t\t\t<span>{{ _control.placeholder }}</span>\n\t\t\t\t\t</ng-container>\n\n\t\t\t\t\t<ng-content select=\"mat-label\" *ngSwitchCase=\"true\"></ng-content>\n\n\t\t\t\t\t<!-- @breaking-change 8.0.0 remove `mat-placeholder-required` class -->\n\t\t\t\t\t<span\n\t\t\t\t\t\tclass=\"mat-placeholder-required mat-form-field-required-marker\"\n\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\t*ngIf=\"!hideRequiredMarker && _control.required && !_control.disabled\"\n\t\t\t\t\t\t>&#32;*</span\n\t\t\t\t\t>\n\t\t\t\t</label>\n\t\t\t</span>\n\t\t</div>\n\n\t\t<div class=\"mat-form-field-suffix\" *ngIf=\"_suffixChildren.length\">\n\t\t\t<ng-content select=\"[matSuffix]\"></ng-content>\n\t\t</div>\n\t</div>\n\n\t<!-- Underline used for legacy, standard, and box appearances. -->\n\t<div class=\"mat-form-field-underline\" #underline *ngIf=\"appearance != 'outline'\">\n\t\t<span\n\t\t\tclass=\"mat-form-field-ripple\"\n\t\t\t[class.mat-accent]=\"color == 'accent'\"\n\t\t\t[class.mat-warn]=\"color == 'warn'\"\n\t\t></span>\n\t</div>\n\n\t<div class=\"mat-form-field-subscript-wrapper\" [ngSwitch]=\"_getDisplayedMessages()\" (click)=\"$event.stopPropagation()\">\n\t\t<div *ngSwitchCase=\"'error'\" [@transitionMessages]=\"_subscriptAnimationState\">\n\t\t\t<ng-content select=\"mat-error\"></ng-content>\n\t\t</div>\n\n\t\t<div class=\"mat-form-field-hint-wrapper\" *ngSwitchCase=\"'hint'\" [@transitionMessages]=\"_subscriptAnimationState\">\n\t\t\t<!-- TODO(mmalerba): use an actual <mat-hint> once all selectors are switched to mat-* -->\n\t\t\t<div *ngIf=\"hintLabel\" [id]=\"_hintLabelId\" class=\"mat-hint\">{{ hintLabel }}</div>\n\t\t\t<ng-content select=\"mat-hint:not([align='end'])\"></ng-content>\n\t\t\t<div class=\"mat-form-field-hint-spacer\"></div>\n\t\t\t<ng-content select=\"mat-hint[align='end']\"></ng-content>\n\t\t</div>\n\t</div>\n</div>\n", styles: [".mat-form-field-appearance-bound{width:215px}.mat-form-field-appearance-bound .mat-form-field-flex{align-items:center;border-radius:4px;border-style:solid}.mat-form-field-appearance-bound .mat-form-field-flex:not(.bui-form-field-border-thick):not(:hover),.mat-form-field-appearance-bound .mat-form-field-flex.bui-form-field-border-disabled{padding:8px;border-width:1px;margin:1px}.mat-form-field-appearance-bound .mat-form-field-flex.bui-form-field-border-disabled{border-color:#80808033;border-style:dotted}.mat-form-field-appearance-bound .mat-form-field-flex.bui-form-field-border-default{border-color:#80808066}.mat-form-field-appearance-bound .mat-form-field-flex.bui-form-field-border-thick,.mat-form-field-appearance-bound .mat-form-field-flex.bui-border-emphasis:hover{border-width:2px;padding:8px 6px 8px 8px}.mat-form-field-appearance-bound .mat-form-field-flex .mat-form-field-prefix .mat-icon,.mat-form-field-appearance-bound .mat-form-field-flex .mat-form-field-suffix .mat-icon{height:.667em!important;line-height:.667em}.mat-form-field-appearance-bound .mat-form-field-flex .mat-form-field-prefix button[matsuffix],.mat-form-field-appearance-bound .mat-form-field-flex .mat-form-field-prefix button.mat-icon-button,.mat-form-field-appearance-bound .mat-form-field-flex .mat-form-field-suffix button[matsuffix],.mat-form-field-appearance-bound .mat-form-field-flex .mat-form-field-suffix button.mat-icon-button{display:flex;height:1em;width:1.5em}.mat-form-field-appearance-bound .mat-form-field-flex .mat-form-field-prefix.mat-datepicker-toggle,.mat-form-field-appearance-bound .mat-form-field-flex .mat-form-field-prefix .mat-datepicker-toggle,.mat-form-field-appearance-bound .mat-form-field-flex .mat-form-field-suffix.mat-datepicker-toggle,.mat-form-field-appearance-bound .mat-form-field-flex .mat-form-field-suffix .mat-datepicker-toggle{display:flex;align-items:center;justify-content:center;width:1.5em;height:1em}.mat-form-field-appearance-bound .mat-form-field-flex .mat-form-field-prefix.mat-datepicker-toggle .mat-icon-button,.mat-form-field-appearance-bound .mat-form-field-flex .mat-form-field-prefix .mat-datepicker-toggle .mat-icon-button,.mat-form-field-appearance-bound .mat-form-field-flex .mat-form-field-suffix.mat-datepicker-toggle .mat-icon-button,.mat-form-field-appearance-bound .mat-form-field-flex .mat-form-field-suffix .mat-datepicker-toggle .mat-icon-button{width:2em;height:2em}.mat-form-field-appearance-detach,.mat-form-field-appearance-bound{padding-top:.75em}.mat-form-field-appearance-detach .mat-form-field-wrapper,.mat-form-field-appearance-bound .mat-form-field-wrapper{padding-top:.5em}.mat-form-field-appearance-detach .bui-form-field-infix,.mat-form-field-appearance-bound .bui-form-field-infix{flex-grow:1}.mat-form-field-appearance-detach .mat-form-field-label,.mat-form-field-appearance-bound .mat-form-field-label{font-size:1.125em}.mat-form-field-appearance-detach .mat-form-field-flex,.mat-form-field-appearance-bound .mat-form-field-flex{align-items:center}.mat-form-field-appearance-detach .mat-form-field-flex{padding:.125em 0;align-items:center}.bui-form-field .bui-bold-label{font-weight:700}\n"] }]
94
+ }], propDecorators: { _hostClicked: [{
95
+ type: HostListener,
96
+ args: ['click', ['$event']]
97
+ }] } });
98
+ FormFieldComponent.ɵcmp.styles.push(MatFormField.ɵcmp.styles);
99
+
100
+ class FormFieldModule {
101
+ }
102
+ FormFieldModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: FormFieldModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
103
+ FormFieldModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.1.3", ngImport: i0, type: FormFieldModule, declarations: [FormFieldComponent], imports: [CommonModule, MatFormFieldModule, ObserversModule], exports: [FormFieldComponent, MatFormFieldModule] });
104
+ FormFieldModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: FormFieldModule, imports: [CommonModule, MatFormFieldModule, ObserversModule, MatFormFieldModule] });
105
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: FormFieldModule, decorators: [{
106
+ type: NgModule,
107
+ args: [{
108
+ declarations: [FormFieldComponent],
109
+ imports: [CommonModule, MatFormFieldModule, ObserversModule],
110
+ exports: [FormFieldComponent, MatFormFieldModule]
111
+ }]
112
+ }] });
113
+
114
+ /**
115
+ * Generated bundle index. Do not edit.
116
+ */
117
+
118
+ export { FormFieldComponent, FormFieldModule };
119
+ //# sourceMappingURL=bravura-ui-form-field.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bravura-ui-form-field.mjs","sources":["../../../projects/ui/form-field/form-field.component.ts","../../../projects/ui/form-field/form-field.component.html","../../../projects/ui/form-field/form-field.module.ts","../../../projects/ui/form-field/bravura-ui-form-field.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, forwardRef, HostListener, ViewEncapsulation } from '@angular/core';\nimport {\n\tMatFormField,\n\tmatFormFieldAnimations,\n\tMatFormFieldDefaultOptions,\n\tMAT_FORM_FIELD\n} from '@angular/material/form-field';\n\n/** @ignore */\nconst TYPE_REF = forwardRef(() => FormFieldComponent);\n\n/**\n * Represents the default options for the form field that can be configured\n * using the `MAT_FORM_FIELD_DEFAULT_OPTIONS` injection token.\n */\nexport interface BuiFormFieldDefaultOptions extends MatFormFieldDefaultOptions {\n\t/**\n\t * Render labels inb bold fonts\n\t * @default false\n\t */\n\tboldLabel?: boolean;\n}\n/**\n * Container for form controls that applies Material Design styling and behavior.\n *\n * This component extends Angular Material's [mat-form-field](https://material.angular.io/components/form-field) and provides two additional appearances\n * `bound` and `detach`. `bound` renders the label outside the outlined area of the field, while `detach` remove the borders all together. `detach`\n * is generally used with form controls that render their own borders.\n */\n@Component({\n\tselector: 'bui-form-field',\n\texportAs: 'buiFormField',\n\ttemplateUrl: 'form-field.component.html',\n\tstyleUrls: ['./form-field.component.scss'],\n\tanimations: [matFormFieldAnimations.transitionMessages],\n\thost: {\n\t\tclass: 'mat-form-field bui-form-field bui-host',\n\t\t'[class.mat-form-field-appearance-standard]': 'appearance == \"standard\"',\n\t\t'[class.mat-form-field-appearance-fill]': 'appearance == \"fill\"',\n\t\t'[class.mat-form-field-appearance-outline]': 'appearance == \"outline\"',\n\t\t'[class.mat-form-field-appearance-detach]': 'appearance == \"detach\"',\n\t\t'[class.mat-form-field-appearance-bound]': 'appearance == \"bound\"',\n\t\t'[class.mat-form-field-appearance-legacy]': 'appearance == \"legacy\"',\n\t\t'[class.mat-form-field-invalid]': '_control.errorState',\n\t\t'[class.mat-form-field-can-float]': '_canLabelFloat()',\n\t\t'[class.mat-form-field-should-float]': '_shouldLabelFloat()',\n\t\t'[class.mat-form-field-has-label]': '_hasFloatingLabel()',\n\t\t'[class.mat-form-field-hide-placeholder]': '_hideControlPlaceholder()',\n\t\t'[class.mat-form-field-disabled]': '_control.disabled',\n\t\t'[class.mat-form-field-autofilled]': '_control.autofilled',\n\t\t'[class.mat-focused]': '_control.focused',\n\t\t'[class.ng-untouched]': '_shouldForward(\"untouched\")',\n\t\t'[class.ng-touched]': '_shouldForward(\"touched\")',\n\t\t'[class.ng-pristine]': '_shouldForward(\"pristine\")',\n\t\t'[class.ng-dirty]': '_shouldForward(\"dirty\")',\n\t\t'[class.ng-valid]': '_shouldForward(\"valid\")',\n\t\t'[class.ng-invalid]': '_shouldForward(\"invalid\")',\n\t\t'[class.ng-pending]': '_shouldForward(\"pending\")',\n\t\t'[class._mat-animation-noopable]': '!_animationsEnabled'\n\t},\n\tinputs: ['color'],\n\tencapsulation: ViewEncapsulation.None,\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tproviders: [\n\t\t{ provide: MAT_FORM_FIELD, useExisting: TYPE_REF },\n\t\t{ provide: MatFormField, useExisting: TYPE_REF }\n\t]\n})\nexport class FormFieldComponent extends MatFormField {\n\t/**\n\t * @ignore\n\t */\n\t_shouldAlwaysFloat(): boolean {\n\t\treturn super._shouldAlwaysFloat() || this._enhancedAppearance();\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\t_borderClass(): string {\n\t\tif ((this.appearance as any) !== 'bound') {\n\t\t\treturn 'bui-form-field-flex-default';\n\t\t}\n\t\tif (this._control.disabled) {\n\t\t\treturn 'bui-form-field-border-disabled';\n\t\t} else if (this._control.errorState) {\n\t\t\treturn 'bui-border-warn bui-form-field-border-thick';\n\t\t} else if (this._control.focused) {\n\t\t\treturn `bui-border-${this.color || 'primary'} bui-form-field-border-thick`;\n\t\t} else {\n\t\t\treturn 'bui-form-field-border-default bui-border-emphasis';\n\t\t}\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\t_enhancedAppearance() {\n\t\treturn (this.appearance as any) === 'detach' || (this.appearance as any) === 'bound';\n\t}\n\n\t/** @ignore */\n\t@HostListener('click', ['$event'])\n\t_hostClicked(event: MouseEvent) {\n\t\tthis._control.onContainerClick && this._control.onContainerClick(event);\n\t}\n\n\tget __defaults() {\n\t\treturn (this as any)._defaults;\n\t}\n}\n\n(FormFieldComponent as any).ɵcmp.styles.push((MatFormField as any).ɵcmp.styles);\n","<div class=\"mat-form-field-wrapper\">\n\t<div class=\"mat-form-field-flex {{ _borderClass() }}\" #connectionContainer>\n\t\t<!-- Outline used for outline appearance. -->\n\t\t<ng-container *ngIf=\"appearance == 'outline'\">\n\t\t\t<div class=\"mat-form-field-outline\">\n\t\t\t\t<div class=\"mat-form-field-outline-start\"></div>\n\t\t\t\t<div class=\"mat-form-field-outline-gap\"></div>\n\t\t\t\t<div class=\"mat-form-field-outline-end\"></div>\n\t\t\t</div>\n\t\t\t<div class=\"mat-form-field-outline mat-form-field-outline-thick\">\n\t\t\t\t<div class=\"mat-form-field-outline-start\"></div>\n\t\t\t\t<div class=\"mat-form-field-outline-gap\"></div>\n\t\t\t\t<div class=\"mat-form-field-outline-end\"></div>\n\t\t\t</div>\n\t\t</ng-container>\n\n\t\t<div class=\"mat-form-field-prefix\" *ngIf=\"_prefixChildren.length\">\n\t\t\t<ng-content select=\"[matPrefix]\"></ng-content>\n\t\t</div>\n\n\t\t<div class=\"{{ _enhancedAppearance() ? 'bui-form-field-infix' : 'mat-form-field-infix' }}\" #inputContainer>\n\t\t\t<ng-content></ng-content>\n\n\t\t\t<span class=\"mat-form-field-label-wrapper\">\n\t\t\t\t<!-- We add aria-owns as a workaround for an issue in JAWS & NVDA where the label isn't\n\t\t\t read if it comes before the control in the DOM. -->\n\t\t\t\t<label\n\t\t\t\t\tclass=\"mat-form-field-label\"\n\t\t\t\t\t(cdkObserveContent)=\"updateOutlineGap()\"\n\t\t\t\t\t[cdkObserveContentDisabled]=\"appearance != 'outline'\"\n\t\t\t\t\t[id]=\"_labelId\"\n\t\t\t\t\t[attr.for]=\"_control.id\"\n\t\t\t\t\t[attr.aria-owns]=\"_control.id\"\n\t\t\t\t\t[class.mat-empty]=\"_control.empty && !_shouldAlwaysFloat()\"\n\t\t\t\t\t[class.mat-form-field-empty]=\"_control.empty && !_shouldAlwaysFloat()\"\n\t\t\t\t\t[class.mat-accent]=\"color == 'accent'\"\n\t\t\t\t\t[class.mat-warn]=\"color == 'warn'\"\n\t\t\t\t\t[class.bui-bold-label]=\"__defaults?.boldLabel\"\n\t\t\t\t\t#label\n\t\t\t\t\t*ngIf=\"_hasFloatingLabel()\"\n\t\t\t\t\t[ngSwitch]=\"_hasLabel()\"\n\t\t\t\t>\n\t\t\t\t\t<!-- @breaking-change 8.0.0 remove in favor of mat-label element an placeholder attr. -->\n\t\t\t\t\t<ng-container *ngSwitchCase=\"false\">\n\t\t\t\t\t\t<ng-content select=\"mat-placeholder\"></ng-content>\n\t\t\t\t\t\t<span>{{ _control.placeholder }}</span>\n\t\t\t\t\t</ng-container>\n\n\t\t\t\t\t<ng-content select=\"mat-label\" *ngSwitchCase=\"true\"></ng-content>\n\n\t\t\t\t\t<!-- @breaking-change 8.0.0 remove `mat-placeholder-required` class -->\n\t\t\t\t\t<span\n\t\t\t\t\t\tclass=\"mat-placeholder-required mat-form-field-required-marker\"\n\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\t*ngIf=\"!hideRequiredMarker && _control.required && !_control.disabled\"\n\t\t\t\t\t\t>&#32;*</span\n\t\t\t\t\t>\n\t\t\t\t</label>\n\t\t\t</span>\n\t\t</div>\n\n\t\t<div class=\"mat-form-field-suffix\" *ngIf=\"_suffixChildren.length\">\n\t\t\t<ng-content select=\"[matSuffix]\"></ng-content>\n\t\t</div>\n\t</div>\n\n\t<!-- Underline used for legacy, standard, and box appearances. -->\n\t<div class=\"mat-form-field-underline\" #underline *ngIf=\"appearance != 'outline'\">\n\t\t<span\n\t\t\tclass=\"mat-form-field-ripple\"\n\t\t\t[class.mat-accent]=\"color == 'accent'\"\n\t\t\t[class.mat-warn]=\"color == 'warn'\"\n\t\t></span>\n\t</div>\n\n\t<div class=\"mat-form-field-subscript-wrapper\" [ngSwitch]=\"_getDisplayedMessages()\" (click)=\"$event.stopPropagation()\">\n\t\t<div *ngSwitchCase=\"'error'\" [@transitionMessages]=\"_subscriptAnimationState\">\n\t\t\t<ng-content select=\"mat-error\"></ng-content>\n\t\t</div>\n\n\t\t<div class=\"mat-form-field-hint-wrapper\" *ngSwitchCase=\"'hint'\" [@transitionMessages]=\"_subscriptAnimationState\">\n\t\t\t<!-- TODO(mmalerba): use an actual <mat-hint> once all selectors are switched to mat-* -->\n\t\t\t<div *ngIf=\"hintLabel\" [id]=\"_hintLabelId\" class=\"mat-hint\">{{ hintLabel }}</div>\n\t\t\t<ng-content select=\"mat-hint:not([align='end'])\"></ng-content>\n\t\t\t<div class=\"mat-form-field-hint-spacer\"></div>\n\t\t\t<ng-content select=\"mat-hint[align='end']\"></ng-content>\n\t\t</div>\n\t</div>\n</div>\n","import { ObserversModule } from '@angular/cdk/observers';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { FormFieldComponent } from './form-field.component';\n\n@NgModule({\n\tdeclarations: [FormFieldComponent],\n\timports: [CommonModule, MatFormFieldModule, ObserversModule],\n\texports: [FormFieldComponent, MatFormFieldModule]\n})\nexport class FormFieldModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,178 @@
1
+ import * as i0 from '@angular/core';
2
+ import { Directive, Input, NgModule } from '@angular/core';
3
+ import { CommonModule } from '@angular/common';
4
+ import * as i1 from '@angular/material/icon';
5
+ import { MatIconModule } from '@angular/material/icon';
6
+
7
+ /**
8
+ * @ignore
9
+ */
10
+ const faReplacementMap = {
11
+ 'fa-shield': 'fa-shield-alt',
12
+ 'fa-line-chart': 'fa-chart-line'
13
+ };
14
+ /**
15
+ * Decode the FontAwesome icon font set name from the icon name
16
+ *
17
+ * `'far fa-alarm' => 'far'`
18
+ *
19
+ * `'home' => ''`
20
+ *
21
+ * `'fa-user' => 'fas'`
22
+ */
23
+ function decodeFAIconFontSet(iconName) {
24
+ let fontSet = '';
25
+ let isFA = false;
26
+ if (iconName) {
27
+ iconName.split(/\s/).forEach(s => {
28
+ if (s.startsWith('fa-')) {
29
+ isFA = true;
30
+ }
31
+ else {
32
+ fontSet = s;
33
+ }
34
+ });
35
+ }
36
+ if (isFA) {
37
+ return fontSet || 'fas';
38
+ }
39
+ return '';
40
+ }
41
+ /**
42
+ * Decode the FontAwesome icon font name from the icon name
43
+ *
44
+ * `'far fa-alarm' => 'fa-alarm'`
45
+ *
46
+ * `'home' => ''`
47
+ *
48
+ * `'fa-user' => 'fa-user'`
49
+ */
50
+ function decodeFAIconFontName(iconName) {
51
+ if (iconName) {
52
+ const name = iconName.split(/\s/).find(s => s && s.startsWith('fa-')) || '';
53
+ return faReplacementMap[name] || name;
54
+ }
55
+ return '';
56
+ }
57
+
58
+ /**
59
+ * @ignore
60
+ */
61
+ const BUI_ICON_CLASS = 'bui-font-awesome-icon';
62
+ /**
63
+ * @ignore
64
+ */
65
+ const BUI_ICON_MAT_VARIANTS = ['filled', 'outlined', 'round', 'two-tone', 'sharp'];
66
+ /**
67
+ * @ignore
68
+ */
69
+ function variantToClass(variant) {
70
+ return `material-icons-${variant}`.replace(/-filled$/, '');
71
+ }
72
+ /**
73
+ * @ignore
74
+ */
75
+ const ALL_MAT_CLASSES = BUI_ICON_MAT_VARIANTS.map(variantToClass);
76
+ /**
77
+ * Use this directive, together with `<mat-icon>`, to display an icon font character/symbol
78
+ * from Material or FontAwesome icons.
79
+ *
80
+ * To use the icon fonts, add the following statements to one of your global SCSS files:
81
+ *
82
+ * ```css
83
+ * @import url(https://fonts.googleapis.com/css2?family=Material+Icons);
84
+ * @import url(https://use.fontawesome.com/releases/v5.15.0/css/all.css);
85
+ * ```
86
+ *
87
+ * @example <mat-icon buiIcon="far fa-circle"></mat-icon> <!-- FontAwesome -->
88
+ * @example <mat-icon buiIcon="home" [size]="42"></mat-icon> <!-- Material -->
89
+ */
90
+ class IconDirective {
91
+ constructor(_icon) {
92
+ this._icon = _icon;
93
+ /**
94
+ * The icon name
95
+ *
96
+ * @example 'far fa-circle'
97
+ * @example 'home'
98
+ */
99
+ this.buiIcon = '';
100
+ /**
101
+ * Override the default icon size
102
+ *
103
+ * @default 24
104
+ */
105
+ this.size = 24;
106
+ /**
107
+ * The style variant of Material Icons. It is not applicable for Font Awesome Icons or any other custom font icon sets.
108
+ * @default `filled`
109
+ */
110
+ this.variant = 'filled';
111
+ if (!this._icon) {
112
+ throw new Error('Directive [buiIcon] must be used on a mat-icon!');
113
+ }
114
+ }
115
+ ngOnChanges(_) {
116
+ const iconFontSet = this.buiIcon && decodeFAIconFontSet(this.buiIcon);
117
+ const iconFontName = this.buiIcon && decodeFAIconFontName(this.buiIcon);
118
+ const element = this._icon._elementRef.nativeElement;
119
+ if (iconFontSet) {
120
+ this._icon.fontSet = iconFontSet;
121
+ this._icon.fontIcon = iconFontName;
122
+ element.textContent = '';
123
+ element.classList.add(BUI_ICON_CLASS);
124
+ element.style.fontSize = `${(this.size * 20) / 24}px`;
125
+ this._icon['_updateFontIconClasses']();
126
+ }
127
+ else {
128
+ element.textContent = this.buiIcon;
129
+ this._icon.fontSet = '';
130
+ this._icon.fontIcon = '';
131
+ element.classList.remove(BUI_ICON_CLASS);
132
+ element.style.fontSize = `${this.size}px`;
133
+ this._icon['_updateFontIconClasses']();
134
+ element.classList.remove(...ALL_MAT_CLASSES);
135
+ element.classList.add(variantToClass(this.variant));
136
+ }
137
+ element.style.width = `${this.size}px`;
138
+ element.style.height = `${this.size}px`;
139
+ }
140
+ }
141
+ IconDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: IconDirective, deps: [{ token: i1.MatIcon }], target: i0.ɵɵFactoryTarget.Directive });
142
+ IconDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.1.3", type: IconDirective, selector: "[buiIcon]", inputs: { buiIcon: "buiIcon", size: "size", variant: "variant" }, usesOnChanges: true, ngImport: i0 });
143
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: IconDirective, decorators: [{
144
+ type: Directive,
145
+ args: [{
146
+ selector: '[buiIcon]'
147
+ }]
148
+ }], ctorParameters: function () { return [{ type: i1.MatIcon }]; }, propDecorators: { buiIcon: [{
149
+ type: Input
150
+ }], size: [{
151
+ type: Input
152
+ }], variant: [{
153
+ type: Input
154
+ }] } });
155
+
156
+ /**
157
+ * Module for utility functions and directives based on `mat-icon` and icon fonts.
158
+ */
159
+ class IconFontModule {
160
+ }
161
+ IconFontModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: IconFontModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
162
+ IconFontModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.1.3", ngImport: i0, type: IconFontModule, declarations: [IconDirective], imports: [CommonModule, MatIconModule], exports: [MatIconModule, IconDirective] });
163
+ IconFontModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: IconFontModule, imports: [CommonModule, MatIconModule, MatIconModule] });
164
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: IconFontModule, decorators: [{
165
+ type: NgModule,
166
+ args: [{
167
+ declarations: [IconDirective],
168
+ imports: [CommonModule, MatIconModule],
169
+ exports: [MatIconModule, IconDirective]
170
+ }]
171
+ }] });
172
+
173
+ /**
174
+ * Generated bundle index. Do not edit.
175
+ */
176
+
177
+ export { BUI_ICON_MAT_VARIANTS, IconDirective, IconFontModule, decodeFAIconFontName, decodeFAIconFontSet };
178
+ //# sourceMappingURL=bravura-ui-icon-font.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bravura-ui-icon-font.mjs","sources":["../../../projects/ui/icon-font/utilities.ts","../../../projects/ui/icon-font/icon.directive.ts","../../../projects/ui/icon-font/icon-font.module.ts","../../../projects/ui/icon-font/bravura-ui-icon-font.ts"],"sourcesContent":["/**\n * @ignore\n */\nconst faReplacementMap: { [key: string]: string } = {\n\t'fa-shield': 'fa-shield-alt',\n\t'fa-line-chart': 'fa-chart-line'\n};\n\n/**\n * Decode the FontAwesome icon font set name from the icon name\n *\n * `'far fa-alarm' => 'far'`\n *\n * `'home' => ''`\n *\n * `'fa-user' => 'fas'`\n */\nexport function decodeFAIconFontSet(iconName: string): string {\n\tlet fontSet = '';\n\tlet isFA = false;\n\tif (iconName) {\n\t\ticonName.split(/\\s/).forEach(s => {\n\t\t\tif (s.startsWith('fa-')) {\n\t\t\t\tisFA = true;\n\t\t\t} else {\n\t\t\t\tfontSet = s;\n\t\t\t}\n\t\t});\n\t}\n\tif (isFA) {\n\t\treturn fontSet || 'fas';\n\t}\n\n\treturn '';\n}\n\n/**\n * Decode the FontAwesome icon font name from the icon name\n *\n * `'far fa-alarm' => 'fa-alarm'`\n *\n * `'home' => ''`\n *\n * `'fa-user' => 'fa-user'`\n */\nexport function decodeFAIconFontName(iconName: string): string {\n\tif (iconName) {\n\t\tconst name = iconName.split(/\\s/).find(s => s && s.startsWith('fa-')) || '';\n\t\treturn faReplacementMap[name] || name;\n\t}\n\n\treturn '';\n}\n","import { Directive, Input, OnChanges, SimpleChanges } from '@angular/core';\nimport { MatIcon } from '@angular/material/icon';\n\nimport { decodeFAIconFontName, decodeFAIconFontSet } from './utilities';\n\n/**\n * @ignore\n */\nconst BUI_ICON_CLASS = 'bui-font-awesome-icon';\n\n/**\n * @ignore\n */\nexport const BUI_ICON_MAT_VARIANTS = ['filled', 'outlined', 'round', 'two-tone', 'sharp'];\n\n/**\n * @ignore\n */\nfunction variantToClass(variant: string) {\n\treturn `material-icons-${variant}`.replace(/-filled$/, '');\n}\n\n/**\n * @ignore\n */\nconst ALL_MAT_CLASSES = BUI_ICON_MAT_VARIANTS.map(variantToClass);\n\n/**\n * Use this directive, together with `<mat-icon>`, to display an icon font character/symbol\n * from Material or FontAwesome icons.\n *\n * To use the icon fonts, add the following statements to one of your global SCSS files:\n *\n * ```css\n * @import url(https://fonts.googleapis.com/css2?family=Material+Icons);\n * @import url(https://use.fontawesome.com/releases/v5.15.0/css/all.css);\n * ```\n *\n * @example <mat-icon buiIcon=\"far fa-circle\"></mat-icon> <!-- FontAwesome -->\n * @example <mat-icon buiIcon=\"home\" [size]=\"42\"></mat-icon> <!-- Material -->\n */\n@Directive({\n\tselector: '[buiIcon]'\n})\nexport class IconDirective implements OnChanges {\n\t/**\n\t * The icon name\n\t *\n\t * @example 'far fa-circle'\n\t * @example 'home'\n\t */\n\t@Input()\n\tbuiIcon = '';\n\n\t/**\n\t * Override the default icon size\n\t *\n\t * @default 24\n\t */\n\t@Input()\n\tsize = 24;\n\n\t/**\n\t * The style variant of Material Icons. It is not applicable for Font Awesome Icons or any other custom font icon sets.\n\t * @default `filled`\n\t */\n\t@Input()\n\tvariant: 'filled' | 'outlined' | 'round' | 'two-tone' | 'sharp' = 'filled';\n\n\tconstructor(private _icon: MatIcon) {\n\t\tif (!this._icon) {\n\t\t\tthrow new Error('Directive [buiIcon] must be used on a mat-icon!');\n\t\t}\n\t}\n\n\tngOnChanges(_: SimpleChanges) {\n\t\tconst iconFontSet = this.buiIcon && decodeFAIconFontSet(this.buiIcon);\n\t\tconst iconFontName = this.buiIcon && decodeFAIconFontName(this.buiIcon);\n\n\t\tconst element: HTMLElement = this._icon._elementRef.nativeElement;\n\t\tif (iconFontSet) {\n\t\t\tthis._icon.fontSet = iconFontSet;\n\t\t\tthis._icon.fontIcon = iconFontName;\n\t\t\telement.textContent = '';\n\t\t\telement.classList.add(BUI_ICON_CLASS);\n\t\t\telement.style.fontSize = `${(this.size * 20) / 24}px`;\n\t\t\tthis._icon['_updateFontIconClasses']();\n\t\t} else {\n\t\t\telement.textContent = this.buiIcon;\n\t\t\tthis._icon.fontSet = '';\n\t\t\tthis._icon.fontIcon = '';\n\t\t\telement.classList.remove(BUI_ICON_CLASS);\n\t\t\telement.style.fontSize = `${this.size}px`;\n\t\t\tthis._icon['_updateFontIconClasses']();\n\t\t\telement.classList.remove(...ALL_MAT_CLASSES);\n\t\t\telement.classList.add(variantToClass(this.variant));\n\t\t}\n\t\telement.style.width = `${this.size}px`;\n\t\telement.style.height = `${this.size}px`;\n\t}\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { IconDirective } from './icon.directive';\nimport { MatIconModule } from '@angular/material/icon';\n\n/**\n * Module for utility functions and directives based on `mat-icon` and icon fonts.\n */\n@NgModule({\n\tdeclarations: [IconDirective],\n\timports: [CommonModule, MatIconModule],\n\texports: [MatIconModule, IconDirective]\n})\nexport class IconFontModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,87 @@
1
+ import * as i0 from '@angular/core';
2
+ import { Component, ChangeDetectionStrategy, Input, NgModule } from '@angular/core';
3
+ import { CommonModule } from '@angular/common';
4
+ import * as i1 from '@angular/material/card';
5
+ import { MatCardModule } from '@angular/material/card';
6
+
7
+ /**
8
+ * A `bui-panel` consists of a `mat-card` and a tinted backdrop.
9
+ *
10
+ * Unlike `mat-card`, `bui-panel` has a flat appearance by default and a transparent background.
11
+ * The backdrop is nearly transparent, blending the theme palette `color`
12
+ * and the effective background color of the DOM ancestors.
13
+ *
14
+ * `bui-panel` supports all the content child directives of `mat-card`.
15
+ *
16
+ */
17
+ class PanelComponent {
18
+ constructor(_cd) {
19
+ this._cd = _cd;
20
+ this._color = 'primary';
21
+ this._appearance = 'flat';
22
+ }
23
+ /**
24
+ * This property defines the background (shaded) and border colors of the panel
25
+ */
26
+ get color() {
27
+ return this._color;
28
+ }
29
+ set color(value) {
30
+ this._color = value;
31
+ this._cd.markForCheck();
32
+ }
33
+ /**
34
+ * In contrast to using a `mat-card` alone, a `bui-panel` does not have a elevated appearance by default.
35
+ *
36
+ * This property can change the default appearance to
37
+ *
38
+ * * `raised` - the original `mat-card` default
39
+ * * `outline` - a `mat-card` with borders
40
+ * * `flat` - no border or elevation
41
+ */
42
+ get appearance() {
43
+ return this._appearance;
44
+ }
45
+ set appearance(value) {
46
+ this._appearance = value;
47
+ this._cd.markForCheck();
48
+ }
49
+ ngOnInit() { }
50
+ }
51
+ PanelComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: PanelComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
52
+ PanelComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.3", type: PanelComponent, selector: "bui-panel", inputs: { backdropClass: "backdropClass", cardClass: "cardClass", color: "color", appearance: "appearance" }, host: { classAttribute: "bui-panel bui-host" }, ngImport: i0, template: "<div class=\"bui-panel-backdrop {{ backdropClass }} bui-bg-{{ color || 'none' }}\"></div>\n<mat-card\n\tclass=\"bui-border-{{ color || 'none' }} {{ cardClass }} {{\n\t\tappearance === 'flat' ? 'mat-elevation-z' : appearance === 'outlined' ? 'mat-elevation-z bui-panel-border' : ''\n\t}}\"\n>\n\t<ng-content></ng-content>\n</mat-card>\n", styles: [":host{position:relative}:host .bui-panel-backdrop{position:absolute;top:0;left:0;right:0;bottom:0;border-radius:4px;opacity:.1}:host .mat-card{background-color:transparent}:host .bui-panel-border{border-width:1px;border-style:solid}\n"], dependencies: [{ kind: "component", type: i1.MatCard, selector: "mat-card", exportAs: ["matCard"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
53
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: PanelComponent, decorators: [{
54
+ type: Component,
55
+ args: [{ selector: 'bui-panel', host: {
56
+ class: 'bui-panel bui-host'
57
+ }, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"bui-panel-backdrop {{ backdropClass }} bui-bg-{{ color || 'none' }}\"></div>\n<mat-card\n\tclass=\"bui-border-{{ color || 'none' }} {{ cardClass }} {{\n\t\tappearance === 'flat' ? 'mat-elevation-z' : appearance === 'outlined' ? 'mat-elevation-z bui-panel-border' : ''\n\t}}\"\n>\n\t<ng-content></ng-content>\n</mat-card>\n", styles: [":host{position:relative}:host .bui-panel-backdrop{position:absolute;top:0;left:0;right:0;bottom:0;border-radius:4px;opacity:.1}:host .mat-card{background-color:transparent}:host .bui-panel-border{border-width:1px;border-style:solid}\n"] }]
58
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { backdropClass: [{
59
+ type: Input
60
+ }], cardClass: [{
61
+ type: Input
62
+ }], color: [{
63
+ type: Input
64
+ }], appearance: [{
65
+ type: Input
66
+ }] } });
67
+
68
+ class PanelModule {
69
+ }
70
+ PanelModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: PanelModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
71
+ PanelModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.1.3", ngImport: i0, type: PanelModule, declarations: [PanelComponent], imports: [CommonModule, MatCardModule], exports: [MatCardModule, PanelComponent] });
72
+ PanelModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: PanelModule, imports: [CommonModule, MatCardModule, MatCardModule] });
73
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: PanelModule, decorators: [{
74
+ type: NgModule,
75
+ args: [{
76
+ declarations: [PanelComponent],
77
+ imports: [CommonModule, MatCardModule],
78
+ exports: [MatCardModule, PanelComponent]
79
+ }]
80
+ }] });
81
+
82
+ /**
83
+ * Generated bundle index. Do not edit.
84
+ */
85
+
86
+ export { PanelComponent, PanelModule };
87
+ //# sourceMappingURL=bravura-ui-panel.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bravura-ui-panel.mjs","sources":["../../../projects/ui/panel/panel.component.ts","../../../projects/ui/panel/panel.component.html","../../../projects/ui/panel/panel.module.ts","../../../projects/ui/panel/bravura-ui-panel.ts"],"sourcesContent":["import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, OnInit } from '@angular/core';\nimport { ThemePalette } from '@angular/material/core';\n\n/**\n * A `bui-panel` consists of a `mat-card` and a tinted backdrop.\n *\n * Unlike `mat-card`, `bui-panel` has a flat appearance by default and a transparent background.\n * The backdrop is nearly transparent, blending the theme palette `color`\n * and the effective background color of the DOM ancestors.\n *\n * `bui-panel` supports all the content child directives of `mat-card`.\n *\n */\n@Component({\n\tselector: 'bui-panel',\n\ttemplateUrl: './panel.component.html',\n\tstyleUrls: ['./panel.component.scss'],\n\thost: {\n\t\tclass: 'bui-panel bui-host'\n\t},\n\tchangeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PanelComponent implements OnInit {\n\t/**\n\t * Additional style classes on the tinted backdrop element.\n\t */\n\t@Input()\n\tbackdropClass?: string;\n\n\t/**\n\t * Additional style classes on the `<mat-card>` element.\n\t */\n\t@Input()\n\tcardClass?: string;\n\n\t/**\n\t * This property defines the background (shaded) and border colors of the panel\n\t */\n\t@Input()\n\tget color(): ThemePalette {\n\t\treturn this._color;\n\t}\n\tset color(value: ThemePalette) {\n\t\tthis._color = value;\n\t\tthis._cd.markForCheck();\n\t}\n\n\t/**\n\t * In contrast to using a `mat-card` alone, a `bui-panel` does not have a elevated appearance by default.\n\t *\n\t * This property can change the default appearance to\n\t *\n\t * * `raised` - the original `mat-card` default\n\t * * `outline` - a `mat-card` with borders\n\t * * `flat` - no border or elevation\n\t */\n\t@Input()\n\tget appearance(): 'outlined' | 'raised' | 'flat' {\n\t\treturn this._appearance;\n\t}\n\tset appearance(value: 'outlined' | 'raised' | 'flat') {\n\t\tthis._appearance = value;\n\t\tthis._cd.markForCheck();\n\t}\n\n\tprivate _color: ThemePalette = 'primary';\n\n\tprivate _appearance: 'outlined' | 'raised' | 'flat' = 'flat';\n\n\tconstructor(private _cd: ChangeDetectorRef) {}\n\n\tngOnInit(): void {}\n}\n","<div class=\"bui-panel-backdrop {{ backdropClass }} bui-bg-{{ color || 'none' }}\"></div>\n<mat-card\n\tclass=\"bui-border-{{ color || 'none' }} {{ cardClass }} {{\n\t\tappearance === 'flat' ? 'mat-elevation-z' : appearance === 'outlined' ? 'mat-elevation-z bui-panel-border' : ''\n\t}}\"\n>\n\t<ng-content></ng-content>\n</mat-card>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { PanelComponent } from './panel.component';\nimport { MatCardModule } from '@angular/material/card';\n\n@NgModule({\n\tdeclarations: [PanelComponent],\n\timports: [CommonModule, MatCardModule],\n\texports: [MatCardModule, PanelComponent]\n})\nexport class PanelModule {}\n\nexport { PanelComponent };\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}