@bravura/ui 1.21.6 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (275) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/README.md +1 -0
  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/{esm2015/phone-number/bravura-ui-phone-number.js → esm2020/phone-number/bravura-ui-phone-number.mjs} +0 -0
  60. package/esm2020/phone-number/phone-number.directive.mjs +187 -0
  61. package/esm2020/phone-number/phone-number.module.mjs +24 -0
  62. package/{esm2015/phone-number/phone-number.pipe.js → esm2020/phone-number/phone-number.pipe.mjs} +4 -4
  63. package/{esm2015/phone-number/phone-number.validator.js → esm2020/phone-number/phone-number.validator.mjs} +4 -4
  64. package/{esm2015/phone-number/public-api.js → esm2020/phone-number/public-api.mjs} +0 -0
  65. package/{esm2015/public-api.js → esm2020/public-api.mjs} +0 -0
  66. package/{esm2015/radio-panel/bravura-ui-radio-panel.js → esm2020/radio-panel/bravura-ui-radio-panel.mjs} +0 -0
  67. package/{esm2015/radio-panel/public-api.js → esm2020/radio-panel/public-api.mjs} +0 -0
  68. package/esm2020/radio-panel/radio-panel-item.component.mjs +97 -0
  69. package/esm2020/radio-panel/radio-panel.component.mjs +89 -0
  70. package/esm2020/radio-panel/radio-panel.module.mjs +25 -0
  71. package/{esm2015/selection-panel/bravura-ui-selection-panel.js → esm2020/selection-panel/bravura-ui-selection-panel.mjs} +0 -0
  72. package/{esm2015/selection-panel/public-api.js → esm2020/selection-panel/public-api.mjs} +0 -0
  73. package/esm2020/selection-panel/selection-panel-item.component.mjs +166 -0
  74. package/esm2020/selection-panel/selection-panel.directive.mjs +119 -0
  75. package/esm2020/selection-panel/selection-panel.module.mjs +23 -0
  76. package/{esm2015/skeletons/bravura-ui-skeletons.js → esm2020/skeletons/bravura-ui-skeletons.mjs} +0 -0
  77. package/{esm2015/skeletons/public-api.js → esm2020/skeletons/public-api.mjs} +0 -0
  78. package/esm2020/skeletons/skeleton-loader-presets.directive.mjs +83 -0
  79. package/{esm2015/skeletons/skeleton-loader.component.js → esm2020/skeletons/skeleton-loader.component.mjs} +4 -4
  80. package/esm2020/skeletons/skeletons.module.mjs +35 -0
  81. package/{esm2015/stepper/bravura-ui-stepper.js → esm2020/stepper/bravura-ui-stepper.mjs} +0 -0
  82. package/{esm2015/stepper/public-api.js → esm2020/stepper/public-api.mjs} +0 -0
  83. package/esm2020/stepper/stepper-animation.mjs +23 -0
  84. package/esm2020/stepper/stepper.component.mjs +166 -0
  85. package/{esm2015/stepper/stepper.module.js → esm2020/stepper/stepper.module.mjs} +13 -15
  86. package/{esm2015/tooltip/bravura-ui-tooltip.js → esm2020/tooltip/bravura-ui-tooltip.mjs} +0 -0
  87. package/{esm2015/tooltip/public-api.js → esm2020/tooltip/public-api.mjs} +0 -0
  88. package/esm2020/tooltip/tooltip.component.mjs +51 -0
  89. package/{esm2015/tooltip/tooltip.directive.js → esm2020/tooltip/tooltip.directive.mjs} +4 -4
  90. package/esm2020/tooltip/tooltip.module.mjs +25 -0
  91. package/fesm2015/bravura-ui-alert.mjs +324 -0
  92. package/fesm2015/bravura-ui-alert.mjs.map +1 -0
  93. package/fesm2015/bravura-ui-behavior.mjs +407 -0
  94. package/fesm2015/bravura-ui-behavior.mjs.map +1 -0
  95. package/fesm2015/bravura-ui-common.mjs +74 -0
  96. package/fesm2015/bravura-ui-common.mjs.map +1 -0
  97. package/fesm2015/bravura-ui-currency-input.mjs +303 -0
  98. package/fesm2015/bravura-ui-currency-input.mjs.map +1 -0
  99. package/fesm2015/bravura-ui-decimal-input.mjs +147 -0
  100. package/fesm2015/bravura-ui-decimal-input.mjs.map +1 -0
  101. package/fesm2015/bravura-ui-discrete-input.mjs +354 -0
  102. package/fesm2015/bravura-ui-discrete-input.mjs.map +1 -0
  103. package/fesm2015/bravura-ui-file-upload.mjs +434 -0
  104. package/fesm2015/bravura-ui-file-upload.mjs.map +1 -0
  105. package/fesm2015/{bravura-ui-form-field.js → bravura-ui-form-field.mjs} +12 -23
  106. package/fesm2015/bravura-ui-form-field.mjs.map +1 -0
  107. package/fesm2015/{bravura-ui-icon-font.js → bravura-ui-icon-font.mjs} +8 -8
  108. package/fesm2015/bravura-ui-icon-font.mjs.map +1 -0
  109. package/fesm2015/{bravura-ui-phone-number.js → bravura-ui-phone-number.mjs} +34 -30
  110. package/fesm2015/bravura-ui-phone-number.mjs.map +1 -0
  111. package/fesm2015/bravura-ui-radio-panel.mjs +212 -0
  112. package/fesm2015/bravura-ui-radio-panel.mjs.map +1 -0
  113. package/fesm2015/{bravura-ui-selection-panel.js → bravura-ui-selection-panel.mjs} +24 -28
  114. package/fesm2015/bravura-ui-selection-panel.mjs.map +1 -0
  115. package/fesm2015/bravura-ui-skeletons.mjs +195 -0
  116. package/fesm2015/bravura-ui-skeletons.mjs.map +1 -0
  117. package/fesm2015/bravura-ui-stepper.mjs +243 -0
  118. package/fesm2015/bravura-ui-stepper.mjs.map +1 -0
  119. package/fesm2015/bravura-ui-tooltip.mjs +195 -0
  120. package/fesm2015/bravura-ui-tooltip.mjs.map +1 -0
  121. package/fesm2015/{bravura-ui.js → bravura-ui.mjs} +1 -1
  122. package/fesm2015/bravura-ui.mjs.map +1 -0
  123. package/fesm2020/bravura-ui-alert.mjs +312 -0
  124. package/fesm2020/bravura-ui-alert.mjs.map +1 -0
  125. package/{fesm2015/bravura-ui-behavior.js → fesm2020/bravura-ui-behavior.mjs} +14 -14
  126. package/fesm2020/bravura-ui-behavior.mjs.map +1 -0
  127. package/{fesm2015/bravura-ui-common.js → fesm2020/bravura-ui-common.mjs} +7 -7
  128. package/fesm2020/bravura-ui-common.mjs.map +1 -0
  129. package/{fesm2015/bravura-ui-currency-input.js → fesm2020/bravura-ui-currency-input.mjs} +9 -10
  130. package/fesm2020/bravura-ui-currency-input.mjs.map +1 -0
  131. package/{fesm2015/bravura-ui-decimal-input.js → fesm2020/bravura-ui-decimal-input.mjs} +8 -8
  132. package/fesm2020/bravura-ui-decimal-input.mjs.map +1 -0
  133. package/{fesm2015/bravura-ui-discrete-input.js → fesm2020/bravura-ui-discrete-input.mjs} +18 -26
  134. package/fesm2020/bravura-ui-discrete-input.mjs.map +1 -0
  135. package/fesm2020/bravura-ui-file-upload.mjs +430 -0
  136. package/fesm2020/bravura-ui-file-upload.mjs.map +1 -0
  137. package/fesm2020/bravura-ui-form-field.mjs +119 -0
  138. package/fesm2020/bravura-ui-form-field.mjs.map +1 -0
  139. package/fesm2020/bravura-ui-icon-font.mjs +178 -0
  140. package/fesm2020/bravura-ui-icon-font.mjs.map +1 -0
  141. package/fesm2020/bravura-ui-phone-number.mjs +317 -0
  142. package/fesm2020/bravura-ui-phone-number.mjs.map +1 -0
  143. package/fesm2020/bravura-ui-radio-panel.mjs +209 -0
  144. package/fesm2020/bravura-ui-radio-panel.mjs.map +1 -0
  145. package/fesm2020/bravura-ui-selection-panel.mjs +306 -0
  146. package/fesm2020/bravura-ui-selection-panel.mjs.map +1 -0
  147. package/{fesm2015/bravura-ui-skeletons.js → fesm2020/bravura-ui-skeletons.mjs} +13 -13
  148. package/fesm2020/bravura-ui-skeletons.mjs.map +1 -0
  149. package/{fesm2015/bravura-ui-stepper.js → fesm2020/bravura-ui-stepper.mjs} +27 -44
  150. package/fesm2020/bravura-ui-stepper.mjs.map +1 -0
  151. package/{fesm2015/bravura-ui-tooltip.js → fesm2020/bravura-ui-tooltip.mjs} +13 -22
  152. package/fesm2020/bravura-ui-tooltip.mjs.map +1 -0
  153. package/fesm2020/bravura-ui.mjs +8 -0
  154. package/fesm2020/bravura-ui.mjs.map +1 -0
  155. package/file-upload/file-upload.component.d.ts +1 -1
  156. package/file-upload/{bravura-ui-file-upload.d.ts → index.d.ts} +0 -0
  157. package/form-field/form-field.component.d.ts +1 -1
  158. package/form-field/{bravura-ui-form-field.d.ts → index.d.ts} +0 -0
  159. package/icon-font/icon.directive.d.ts +1 -1
  160. package/icon-font/{bravura-ui-icon-font.d.ts → index.d.ts} +0 -0
  161. package/{bravura-ui.d.ts → index.d.ts} +0 -0
  162. package/package.json +149 -14
  163. package/phone-number/{bravura-ui-phone-number.d.ts → index.d.ts} +0 -0
  164. package/phone-number/phone-number.directive.d.ts +1 -1
  165. package/phone-number/phone-number.pipe.d.ts +1 -1
  166. package/phone-number/phone-number.validator.d.ts +1 -1
  167. package/radio-panel/{bravura-ui-radio-panel.d.ts → index.d.ts} +0 -0
  168. package/radio-panel/radio-panel-item.component.d.ts +1 -1
  169. package/radio-panel/radio-panel.component.d.ts +1 -1
  170. package/selection-panel/{bravura-ui-selection-panel.d.ts → index.d.ts} +0 -0
  171. package/selection-panel/selection-panel-item.component.d.ts +1 -1
  172. package/selection-panel/selection-panel.directive.d.ts +1 -1
  173. package/skeletons/{bravura-ui-skeletons.d.ts → index.d.ts} +0 -0
  174. package/skeletons/skeleton-loader-presets.directive.d.ts +1 -1
  175. package/skeletons/skeleton-loader.component.d.ts +1 -1
  176. package/stepper/{bravura-ui-stepper.d.ts → index.d.ts} +0 -0
  177. package/stepper/stepper.component.d.ts +1 -1
  178. package/theme/_ui-theme.scss +1 -1
  179. package/tooltip/{bravura-ui-tooltip.d.ts → index.d.ts} +0 -0
  180. package/tooltip/tooltip.component.d.ts +1 -1
  181. package/tooltip/tooltip.directive.d.ts +1 -1
  182. package/alert/package.json +0 -10
  183. package/behavior/package.json +0 -10
  184. package/bundles/bravura-ui-alert.umd.js +0 -745
  185. package/bundles/bravura-ui-alert.umd.js.map +0 -1
  186. package/bundles/bravura-ui-behavior.umd.js +0 -788
  187. package/bundles/bravura-ui-behavior.umd.js.map +0 -1
  188. package/bundles/bravura-ui-common.umd.js +0 -103
  189. package/bundles/bravura-ui-common.umd.js.map +0 -1
  190. package/bundles/bravura-ui-currency-input.umd.js +0 -335
  191. package/bundles/bravura-ui-currency-input.umd.js.map +0 -1
  192. package/bundles/bravura-ui-decimal-input.umd.js +0 -176
  193. package/bundles/bravura-ui-decimal-input.umd.js.map +0 -1
  194. package/bundles/bravura-ui-discrete-input.umd.js +0 -747
  195. package/bundles/bravura-ui-discrete-input.umd.js.map +0 -1
  196. package/bundles/bravura-ui-file-upload.umd.js +0 -845
  197. package/bundles/bravura-ui-file-upload.umd.js.map +0 -1
  198. package/bundles/bravura-ui-form-field.umd.js +0 -494
  199. package/bundles/bravura-ui-form-field.umd.js.map +0 -1
  200. package/bundles/bravura-ui-icon-font.umd.js +0 -539
  201. package/bundles/bravura-ui-icon-font.umd.js.map +0 -1
  202. package/bundles/bravura-ui-phone-number.umd.js +0 -690
  203. package/bundles/bravura-ui-phone-number.umd.js.map +0 -1
  204. package/bundles/bravura-ui-radio-panel.umd.js +0 -595
  205. package/bundles/bravura-ui-radio-panel.umd.js.map +0 -1
  206. package/bundles/bravura-ui-selection-panel.umd.js +0 -699
  207. package/bundles/bravura-ui-selection-panel.umd.js.map +0 -1
  208. package/bundles/bravura-ui-skeletons.umd.js +0 -525
  209. package/bundles/bravura-ui-skeletons.umd.js.map +0 -1
  210. package/bundles/bravura-ui-stepper.umd.js +0 -613
  211. package/bundles/bravura-ui-stepper.umd.js.map +0 -1
  212. package/bundles/bravura-ui-tooltip.umd.js +0 -586
  213. package/bundles/bravura-ui-tooltip.umd.js.map +0 -1
  214. package/bundles/bravura-ui.umd.js +0 -18
  215. package/bundles/bravura-ui.umd.js.map +0 -1
  216. package/common/package.json +0 -10
  217. package/currency-input/package.json +0 -10
  218. package/decimal-input/package.json +0 -10
  219. package/discrete-input/package.json +0 -10
  220. package/esm2015/alert/alert-container.component.js +0 -220
  221. package/esm2015/alert/alert-message.component.js +0 -98
  222. package/esm2015/alert/alert.module.js +0 -22
  223. package/esm2015/behavior/behavior.module.js +0 -25
  224. package/esm2015/common/common.module.js +0 -52
  225. package/esm2015/currency-input/currency-input.directive.js +0 -280
  226. package/esm2015/currency-input/currency-input.module.js +0 -19
  227. package/esm2015/decimal-input/decimal-input.module.js +0 -19
  228. package/esm2015/discrete-input/discrete-input.component.js +0 -334
  229. package/esm2015/discrete-input/discrete-input.module.js +0 -21
  230. package/esm2015/file-upload/file-upload.component.js +0 -367
  231. package/esm2015/form-field/form-field.component.js +0 -107
  232. package/esm2015/form-field/form-field.module.js +0 -20
  233. package/esm2015/icon-font/icon-font.module.js +0 -22
  234. package/esm2015/phone-number/phone-number.directive.js +0 -192
  235. package/esm2015/phone-number/phone-number.module.js +0 -24
  236. package/esm2015/radio-panel/radio-panel-item.component.js +0 -109
  237. package/esm2015/radio-panel/radio-panel.component.js +0 -98
  238. package/esm2015/radio-panel/radio-panel.module.js +0 -25
  239. package/esm2015/selection-panel/selection-panel-item.component.js +0 -174
  240. package/esm2015/selection-panel/selection-panel.directive.js +0 -120
  241. package/esm2015/selection-panel/selection-panel.module.js +0 -23
  242. package/esm2015/skeletons/skeleton-loader-presets.directive.js +0 -83
  243. package/esm2015/skeletons/skeletons.module.js +0 -35
  244. package/esm2015/stepper/stepper-animation.js +0 -23
  245. package/esm2015/stepper/stepper.component.js +0 -181
  246. package/esm2015/tooltip/tooltip.component.js +0 -59
  247. package/esm2015/tooltip/tooltip.module.js +0 -26
  248. package/fesm2015/bravura-ui-alert.js +0 -337
  249. package/fesm2015/bravura-ui-alert.js.map +0 -1
  250. package/fesm2015/bravura-ui-behavior.js.map +0 -1
  251. package/fesm2015/bravura-ui-common.js.map +0 -1
  252. package/fesm2015/bravura-ui-currency-input.js.map +0 -1
  253. package/fesm2015/bravura-ui-decimal-input.js.map +0 -1
  254. package/fesm2015/bravura-ui-discrete-input.js.map +0 -1
  255. package/fesm2015/bravura-ui-file-upload.js +0 -443
  256. package/fesm2015/bravura-ui-file-upload.js.map +0 -1
  257. package/fesm2015/bravura-ui-form-field.js.map +0 -1
  258. package/fesm2015/bravura-ui-icon-font.js.map +0 -1
  259. package/fesm2015/bravura-ui-phone-number.js.map +0 -1
  260. package/fesm2015/bravura-ui-radio-panel.js +0 -230
  261. package/fesm2015/bravura-ui-radio-panel.js.map +0 -1
  262. package/fesm2015/bravura-ui-selection-panel.js.map +0 -1
  263. package/fesm2015/bravura-ui-skeletons.js.map +0 -1
  264. package/fesm2015/bravura-ui-stepper.js.map +0 -1
  265. package/fesm2015/bravura-ui-tooltip.js.map +0 -1
  266. package/fesm2015/bravura-ui.js.map +0 -1
  267. package/file-upload/package.json +0 -10
  268. package/form-field/package.json +0 -10
  269. package/icon-font/package.json +0 -10
  270. package/phone-number/package.json +0 -10
  271. package/radio-panel/package.json +0 -10
  272. package/selection-panel/package.json +0 -10
  273. package/skeletons/package.json +0 -10
  274. package/stepper/package.json +0 -10
  275. package/tooltip/package.json +0 -10
@@ -0,0 +1,97 @@
1
+ import { animate, state, style, transition, trigger } from '@angular/animations';
2
+ import { Attribute, ChangeDetectionStrategy, Component, ContentChild, HostBinding, Inject, Input, Optional } from '@angular/core';
3
+ import { MatRadioButton, MAT_RADIO_DEFAULT_OPTIONS, MAT_RADIO_GROUP } from '@angular/material/radio';
4
+ import { ANIMATION_MODULE_TYPE } from '@angular/platform-browser/animations';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@angular/cdk/a11y";
7
+ import * as i2 from "@angular/cdk/collections";
8
+ import * as i3 from "@angular/common";
9
+ import * as i4 from "@angular/material/core";
10
+ import * as i5 from "@angular/material/icon";
11
+ import * as i6 from "@angular/material/radio";
12
+ /**
13
+ * Use `bui-radio-panel-item` instead of `mat-radio-button` in a `bui-radio-panel` to display an option.
14
+ */
15
+ export class RadioPanelItemComponent extends MatRadioButton {
16
+ constructor(radioGroup, elementRef, _changeDetector, _focusMonitor, _radioDispatcher, animationMode, _providerOverride, tabIndex) {
17
+ super(radioGroup, elementRef, _changeDetector, _focusMonitor, _radioDispatcher, animationMode, _providerOverride, tabIndex);
18
+ /**
19
+ * This will be displayed as the panel header
20
+ */
21
+ this.title = '';
22
+ this.panelWidth = '280px';
23
+ }
24
+ get tickPosition() {
25
+ return this._tickPosition || this.radioGroup?.tickPosition;
26
+ }
27
+ set tickPosition(pos) {
28
+ this._tickPosition = pos;
29
+ }
30
+ }
31
+ RadioPanelItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: RadioPanelItemComponent, deps: [{ token: MAT_RADIO_GROUP, optional: true }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.FocusMonitor }, { token: i2.UniqueSelectionDispatcher }, { token: ANIMATION_MODULE_TYPE, optional: true }, { token: MAT_RADIO_DEFAULT_OPTIONS, optional: true }, { token: 'tabindex', attribute: true }], target: i0.ɵɵFactoryTarget.Component });
32
+ RadioPanelItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.3", type: RadioPanelItemComponent, selector: "bui-radio-panel-item", inputs: { disableRipple: "disableRipple", tabIndex: "tabIndex", title: "title", _tickPosition: "_tickPosition", tickPosition: "tickPosition" }, host: { listeners: { "focus": "_inputElement.nativeElement.focus()" }, properties: { "class.bui-radio-checked": "checked", "class.bui-disabled": "disabled", "class._mat-animation-noopable": "_noopAnimations", "class.mat-primary": "color === \"primary\"", "class.mat-accent": "color === \"accent\"", "class.mat-warn": "color === \"warn\"", "attr.tabindex": "null", "attr.id": "id", "attr.aria-label": "null", "attr.aria-labelledby": "null", "attr.aria-describedby": "null", "style.--panel-width": "this.panelWidth" }, classAttribute: "bui-radio-panel-item" }, queries: [{ propertyName: "contentOnSelect", first: true, predicate: ["contentOnSelect"], descendants: true }], exportAs: ["matRadioButton"], usesInheritance: true, ngImport: i0, template: "<label\n\tmatRipple\n\tmatRippleColor=\"rgba(128,128,128,.1)\"\n\t[matRippleDisabled]=\"disabled || checked\"\n\t[attr.for]=\"inputId\"\n\t#label\n\tclass=\"bui-radio-panel-item-label bui-border-{{ checked ? color : 'default' }}\"\n>\n\t<div class=\"bui-radio-panel-item-wrapper\" [class.bui-radio-tick-at-end]=\"tickPosition === 'end'\">\n\t\t<div class=\"bui-label-header\">\n\t\t\t<span class=\"bui-label-title\" [innerHTML]=\"title\"></span>\n\t\t\t<ng-content select=\"[buiRadioItemHeadingEnd]\"></ng-content>\n\t\t\t<span class=\"bui-radio-panel-item-circle\">\n\t\t\t\t<span\n\t\t\t\t\tclass=\"bui-persistent-ripple\"\n\t\t\t\t\tmatRipple\n\t\t\t\t\tmatRippleColor=\"rgba(128,128,128,.1)\"\n\t\t\t\t\t[matRippleCentered]=\"true\"\n\t\t\t\t\t[matRippleUnbounded]=\"true\"\n\t\t\t\t\t[matRippleTrigger]=\"label\"\n\t\t\t\t\t[matRippleRadius]=\"20\"\n\t\t\t\t\t*ngIf=\"!disabled\"\n\t\t\t\t></span>\n\t\t\t\t<mat-icon [color]=\"color\" *ngIf=\"checked\">check_circle</mat-icon>\n\t\t\t\t<mat-icon *ngIf=\"!checked\" class=\"bui-radio-panel-item-circle-unchecked\">radio_button_unchecked</mat-icon>\n\t\t\t</span>\n\t\t</div>\n\t\t<!-- The actual 'radio' part of the control. -->\n\t\t<span class=\"radio-container\">\n\t\t\t<input\n\t\t\t\t#input\n\t\t\t\tclass=\"mat-radio-input cdk-visually-hidden\"\n\t\t\t\ttype=\"radio\"\n\t\t\t\t[id]=\"inputId\"\n\t\t\t\t[checked]=\"checked\"\n\t\t\t\t[disabled]=\"disabled\"\n\t\t\t\t[tabIndex]=\"tabIndex\"\n\t\t\t\t[attr.name]=\"name\"\n\t\t\t\t[attr.value]=\"value\"\n\t\t\t\t[required]=\"required\"\n\t\t\t\t[attr.aria-label]=\"ariaLabel\"\n\t\t\t\t[attr.aria-labelledby]=\"ariaLabelledby\"\n\t\t\t\t[attr.aria-describedby]=\"ariaDescribedby\"\n\t\t\t\t(change)=\"_onInputInteraction($event)\"\n\t\t\t\t(click)=\"_onInputClick($event)\"\n\t\t\t/>\n\t\t</span>\n\n\t\t<div class=\"bui-label-content-gap\"></div>\n\t\t<!-- The label content for radio control. -->\n\t\t<div class=\"bui-label-content\">\n\t\t\t<ng-content></ng-content>\n\t\t</div>\n\t\t<div class=\"bui-label-content\" *ngIf=\"contentOnSelect && checked\" @slideInOut>\n\t\t\t<ng-container *ngTemplateOutlet=\"contentOnSelect\"></ng-container>\n\t\t</div>\n\t</div>\n</label>\n", styles: [":host .bui-ripple,:host .bui-persistent-ripple{position:absolute;top:0;right:0;bottom:0;left:0}:host .bui-radio-panel-item-overlay{background-color:#fff;opacity:0}:host .bui-radio-panel-item-circle{width:40px;height:40px}:host .bui-radio-panel-item-label{display:block;border-radius:5px;border:1px solid rgba(128,128,128,.2);padding:1px;position:relative;height:100%}:host .bui-radio-panel-item-label .bui-radio-panel-item-circle-unchecked{color:#80808066}:host .bui-radio-panel-item-wrapper.bui-radio-tick-at-end .bui-label-header{padding:calc(1rem - 10px) calc(1rem - 10px) 0 1rem;justify-content:space-between}:host .bui-radio-panel-item-wrapper:not(.bui-radio-tick-at-end) .bui-label-header{padding:calc(1rem - 10px) calc(1rem - 10px) 0 calc(1rem - 10px)}:host .bui-radio-panel-item-wrapper:not(.bui-radio-tick-at-end) .bui-radio-panel-item-circle{order:-1}:host .bui-label-header,:host .bui-radio-panel-item-circle{display:flex;align-items:center}:host .bui-label-header{margin-bottom:calc(1rem - 10px)}:host .bui-label-title{font-size:larger;font-weight:700}:host .bui-radio-panel-item-circle{justify-content:center;position:relative}:host .bui-label-content:not(:empty){margin:0 1rem 1rem}:host .bui-label-content-gap{margin-top:calc(1rem - 10px)}@polyfill-unscoped-rule{content: \".bui-radio-panel-item-wrapper .bui-label-header [buiRadioItemHeadingEnd]\"; margin-left: auto;}:host(:not([hidden])){display:block}:host(:not(.bui-disabled)):not(.bui-radio-checked) .bui-radio-panel-item-label{cursor:pointer}:host(:not(.bui-disabled)) .bui-radio-panel-item-label:hover{border-width:2px;padding:0;border-color:#8080804d}:host(:not(.bui-disabled)).cdk-keyboard-focused .bui-persistent-ripple,:host(:not(.bui-disabled)).cdk-program-focused .bui-persistent-ripple{background-color:#80808033;border-radius:50%}:host-context(.radio-dir-row){--panel-width: 300px;margin-right:1rem;max-width:var(--panel-width);min-width:250px;margin-bottom:1rem}:host(.bui-disabled) .bui-radio-panel-item-wrapper>.bui-label-header,:host(.bui-disabled) .bui-radio-panel-item-wrapper>.bui-label-content{opacity:.5}:host-context(.radio-dir-row):not(:last-child){margin-right:1rem;margin-bottom:1rem}:host-context(.radio-dir-column):not(:last-child){margin-bottom:1rem}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i4.MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], animations: [
33
+ trigger('slideInOut', [
34
+ state('void', style({ height: '0px', overflow: 'hidden' })),
35
+ transition(':enter, :leave', animate('.25s'))
36
+ ])
37
+ ], changeDetection: i0.ChangeDetectionStrategy.OnPush });
38
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: RadioPanelItemComponent, decorators: [{
39
+ type: Component,
40
+ args: [{ selector: 'bui-radio-panel-item', inputs: ['disableRipple', 'tabIndex'], exportAs: 'matRadioButton', host: {
41
+ class: 'bui-radio-panel-item',
42
+ '[class.bui-radio-checked]': 'checked',
43
+ '[class.bui-disabled]': 'disabled',
44
+ '[class._mat-animation-noopable]': '_noopAnimations',
45
+ '[class.mat-primary]': 'color === "primary"',
46
+ '[class.mat-accent]': 'color === "accent"',
47
+ '[class.mat-warn]': 'color === "warn"',
48
+ // Needs to be removed since it causes some a11y issues (see #21266).
49
+ '[attr.tabindex]': 'null',
50
+ '[attr.id]': 'id',
51
+ '[attr.aria-label]': 'null',
52
+ '[attr.aria-labelledby]': 'null',
53
+ '[attr.aria-describedby]': 'null',
54
+ // Note: under normal conditions focus shouldn't land on this element, however it may be
55
+ // programmatically set, for example inside of a focus trap, in this case we want to forward
56
+ // the focus to the native element.
57
+ '(focus)': '_inputElement.nativeElement.focus()'
58
+ }, changeDetection: ChangeDetectionStrategy.OnPush, animations: [
59
+ trigger('slideInOut', [
60
+ state('void', style({ height: '0px', overflow: 'hidden' })),
61
+ transition(':enter, :leave', animate('.25s'))
62
+ ])
63
+ ], template: "<label\n\tmatRipple\n\tmatRippleColor=\"rgba(128,128,128,.1)\"\n\t[matRippleDisabled]=\"disabled || checked\"\n\t[attr.for]=\"inputId\"\n\t#label\n\tclass=\"bui-radio-panel-item-label bui-border-{{ checked ? color : 'default' }}\"\n>\n\t<div class=\"bui-radio-panel-item-wrapper\" [class.bui-radio-tick-at-end]=\"tickPosition === 'end'\">\n\t\t<div class=\"bui-label-header\">\n\t\t\t<span class=\"bui-label-title\" [innerHTML]=\"title\"></span>\n\t\t\t<ng-content select=\"[buiRadioItemHeadingEnd]\"></ng-content>\n\t\t\t<span class=\"bui-radio-panel-item-circle\">\n\t\t\t\t<span\n\t\t\t\t\tclass=\"bui-persistent-ripple\"\n\t\t\t\t\tmatRipple\n\t\t\t\t\tmatRippleColor=\"rgba(128,128,128,.1)\"\n\t\t\t\t\t[matRippleCentered]=\"true\"\n\t\t\t\t\t[matRippleUnbounded]=\"true\"\n\t\t\t\t\t[matRippleTrigger]=\"label\"\n\t\t\t\t\t[matRippleRadius]=\"20\"\n\t\t\t\t\t*ngIf=\"!disabled\"\n\t\t\t\t></span>\n\t\t\t\t<mat-icon [color]=\"color\" *ngIf=\"checked\">check_circle</mat-icon>\n\t\t\t\t<mat-icon *ngIf=\"!checked\" class=\"bui-radio-panel-item-circle-unchecked\">radio_button_unchecked</mat-icon>\n\t\t\t</span>\n\t\t</div>\n\t\t<!-- The actual 'radio' part of the control. -->\n\t\t<span class=\"radio-container\">\n\t\t\t<input\n\t\t\t\t#input\n\t\t\t\tclass=\"mat-radio-input cdk-visually-hidden\"\n\t\t\t\ttype=\"radio\"\n\t\t\t\t[id]=\"inputId\"\n\t\t\t\t[checked]=\"checked\"\n\t\t\t\t[disabled]=\"disabled\"\n\t\t\t\t[tabIndex]=\"tabIndex\"\n\t\t\t\t[attr.name]=\"name\"\n\t\t\t\t[attr.value]=\"value\"\n\t\t\t\t[required]=\"required\"\n\t\t\t\t[attr.aria-label]=\"ariaLabel\"\n\t\t\t\t[attr.aria-labelledby]=\"ariaLabelledby\"\n\t\t\t\t[attr.aria-describedby]=\"ariaDescribedby\"\n\t\t\t\t(change)=\"_onInputInteraction($event)\"\n\t\t\t\t(click)=\"_onInputClick($event)\"\n\t\t\t/>\n\t\t</span>\n\n\t\t<div class=\"bui-label-content-gap\"></div>\n\t\t<!-- The label content for radio control. -->\n\t\t<div class=\"bui-label-content\">\n\t\t\t<ng-content></ng-content>\n\t\t</div>\n\t\t<div class=\"bui-label-content\" *ngIf=\"contentOnSelect && checked\" @slideInOut>\n\t\t\t<ng-container *ngTemplateOutlet=\"contentOnSelect\"></ng-container>\n\t\t</div>\n\t</div>\n</label>\n", styles: [":host .bui-ripple,:host .bui-persistent-ripple{position:absolute;top:0;right:0;bottom:0;left:0}:host .bui-radio-panel-item-overlay{background-color:#fff;opacity:0}:host .bui-radio-panel-item-circle{width:40px;height:40px}:host .bui-radio-panel-item-label{display:block;border-radius:5px;border:1px solid rgba(128,128,128,.2);padding:1px;position:relative;height:100%}:host .bui-radio-panel-item-label .bui-radio-panel-item-circle-unchecked{color:#80808066}:host .bui-radio-panel-item-wrapper.bui-radio-tick-at-end .bui-label-header{padding:calc(1rem - 10px) calc(1rem - 10px) 0 1rem;justify-content:space-between}:host .bui-radio-panel-item-wrapper:not(.bui-radio-tick-at-end) .bui-label-header{padding:calc(1rem - 10px) calc(1rem - 10px) 0 calc(1rem - 10px)}:host .bui-radio-panel-item-wrapper:not(.bui-radio-tick-at-end) .bui-radio-panel-item-circle{order:-1}:host .bui-label-header,:host .bui-radio-panel-item-circle{display:flex;align-items:center}:host .bui-label-header{margin-bottom:calc(1rem - 10px)}:host .bui-label-title{font-size:larger;font-weight:700}:host .bui-radio-panel-item-circle{justify-content:center;position:relative}:host .bui-label-content:not(:empty){margin:0 1rem 1rem}:host .bui-label-content-gap{margin-top:calc(1rem - 10px)}@polyfill-unscoped-rule{content: \".bui-radio-panel-item-wrapper .bui-label-header [buiRadioItemHeadingEnd]\"; margin-left: auto;}:host(:not([hidden])){display:block}:host(:not(.bui-disabled)):not(.bui-radio-checked) .bui-radio-panel-item-label{cursor:pointer}:host(:not(.bui-disabled)) .bui-radio-panel-item-label:hover{border-width:2px;padding:0;border-color:#8080804d}:host(:not(.bui-disabled)).cdk-keyboard-focused .bui-persistent-ripple,:host(:not(.bui-disabled)).cdk-program-focused .bui-persistent-ripple{background-color:#80808033;border-radius:50%}:host-context(.radio-dir-row){--panel-width: 300px;margin-right:1rem;max-width:var(--panel-width);min-width:250px;margin-bottom:1rem}:host(.bui-disabled) .bui-radio-panel-item-wrapper>.bui-label-header,:host(.bui-disabled) .bui-radio-panel-item-wrapper>.bui-label-content{opacity:.5}:host-context(.radio-dir-row):not(:last-child){margin-right:1rem;margin-bottom:1rem}:host-context(.radio-dir-column):not(:last-child){margin-bottom:1rem}\n"] }]
64
+ }], ctorParameters: function () { return [{ type: i6.MatRadioGroup, decorators: [{
65
+ type: Optional
66
+ }, {
67
+ type: Inject,
68
+ args: [MAT_RADIO_GROUP]
69
+ }] }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1.FocusMonitor }, { type: i2.UniqueSelectionDispatcher }, { type: undefined, decorators: [{
70
+ type: Optional
71
+ }, {
72
+ type: Inject,
73
+ args: [ANIMATION_MODULE_TYPE]
74
+ }] }, { type: undefined, decorators: [{
75
+ type: Optional
76
+ }, {
77
+ type: Inject,
78
+ args: [MAT_RADIO_DEFAULT_OPTIONS]
79
+ }] }, { type: undefined, decorators: [{
80
+ type: Attribute,
81
+ args: ['tabindex']
82
+ }] }]; }, propDecorators: { title: [{
83
+ type: Input
84
+ }], panelWidth: [{
85
+ type: HostBinding,
86
+ args: ['style.--panel-width']
87
+ }], _tickPosition: [{
88
+ type: Input
89
+ }], tickPosition: [{
90
+ type: Input
91
+ }],
92
+ //@ts-ignore
93
+ contentOnSelect: [{
94
+ type: ContentChild,
95
+ args: ['contentOnSelect']
96
+ }] } });
97
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8tcGFuZWwtaXRlbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9yYWRpby1wYW5lbC9yYWRpby1wYW5lbC1pdGVtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3JhZGlvLXBhbmVsL3JhZGlvLXBhbmVsLWl0ZW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUdqRixPQUFPLEVBQ04sU0FBUyxFQUNULHVCQUF1QixFQUV2QixTQUFTLEVBQ1QsWUFBWSxFQUVaLFdBQVcsRUFDWCxNQUFNLEVBQ04sS0FBSyxFQUNMLFFBQVEsRUFFUixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ04sY0FBYyxFQUdkLHlCQUF5QixFQUN6QixlQUFlLEVBQ2YsTUFBTSx5QkFBeUIsQ0FBQztBQUNqQyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQzs7Ozs7Ozs7QUFFN0U7O0dBRUc7QUFvQ0gsTUFBTSxPQUFPLHVCQUF3QixTQUFRLGNBQWM7SUF5QjFELFlBQ3NDLFVBQXlCLEVBQzlELFVBQXNCLEVBQ3RCLGVBQWtDLEVBQ2xDLGFBQTJCLEVBQzNCLGdCQUEyQyxFQUNBLGFBQXNCLEVBR2pFLGlCQUEwQyxFQUNuQixRQUFpQjtRQUV4QyxLQUFLLENBQ0osVUFBVSxFQUNWLFVBQVUsRUFDVixlQUFlLEVBQ2YsYUFBYSxFQUNiLGdCQUFnQixFQUNoQixhQUFhLEVBQ2IsaUJBQWlCLEVBQ2pCLFFBQVEsQ0FDUixDQUFDO1FBN0NIOztXQUVHO1FBRUgsVUFBSyxHQUFHLEVBQUUsQ0FBQztRQUdYLGVBQVUsR0FBRyxPQUFPLENBQUM7SUF1Q3JCLENBQUM7SUFsQ0QsSUFDSSxZQUFZO1FBQ2YsT0FBTyxJQUFJLENBQUMsYUFBYSxJQUFLLElBQUksQ0FBQyxVQUFrQixFQUFFLFlBQVksQ0FBQztJQUNyRSxDQUFDO0lBQ0QsSUFBSSxZQUFZLENBQUMsR0FBb0I7UUFDcEMsSUFBSSxDQUFDLGFBQWEsR0FBRyxHQUFHLENBQUM7SUFDMUIsQ0FBQzs7b0hBbkJXLHVCQUF1QixrQkEwQmQsZUFBZSw2SkFLZixxQkFBcUIsNkJBRWpDLHlCQUF5Qiw2QkFFdEIsVUFBVTt3R0FuQ1YsdUJBQXVCLGc2QkMvRHBDLGlwRUEwREEseTVGREZhO1FBQ1gsT0FBTyxDQUFDLFlBQVksRUFBRTtZQUNyQixLQUFLLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7WUFDM0QsVUFBVSxDQUFDLGdCQUFnQixFQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUM3QyxDQUFDO0tBQ0Y7MkZBRVcsdUJBQXVCO2tCQW5DbkMsU0FBUzsrQkFDQyxzQkFBc0IsVUFJeEIsQ0FBQyxlQUFlLEVBQUUsVUFBVSxDQUFDLFlBQzNCLGdCQUFnQixRQUVwQjt3QkFDTCxLQUFLLEVBQUUsc0JBQXNCO3dCQUM3QiwyQkFBMkIsRUFBRSxTQUFTO3dCQUN0QyxzQkFBc0IsRUFBRSxVQUFVO3dCQUNsQyxpQ0FBaUMsRUFBRSxpQkFBaUI7d0JBQ3BELHFCQUFxQixFQUFFLHFCQUFxQjt3QkFDNUMsb0JBQW9CLEVBQUUsb0JBQW9CO3dCQUMxQyxrQkFBa0IsRUFBRSxrQkFBa0I7d0JBQ3RDLHFFQUFxRTt3QkFDckUsaUJBQWlCLEVBQUUsTUFBTTt3QkFDekIsV0FBVyxFQUFFLElBQUk7d0JBQ2pCLG1CQUFtQixFQUFFLE1BQU07d0JBQzNCLHdCQUF3QixFQUFFLE1BQU07d0JBQ2hDLHlCQUF5QixFQUFFLE1BQU07d0JBQ2pDLHdGQUF3Rjt3QkFDeEYsNEZBQTRGO3dCQUM1RixtQ0FBbUM7d0JBQ25DLFNBQVMsRUFBRSxxQ0FBcUM7cUJBQ2hELG1CQUNnQix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DO3dCQUNYLE9BQU8sQ0FBQyxZQUFZLEVBQUU7NEJBQ3JCLEtBQUssQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQzs0QkFDM0QsVUFBVSxDQUFDLGdCQUFnQixFQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQzt5QkFDN0MsQ0FBQztxQkFDRjs7MEJBNEJDLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsZUFBZTs7MEJBS2xDLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMscUJBQXFCOzswQkFDeEMsUUFBUTs7MEJBQ1IsTUFBTTsyQkFBQyx5QkFBeUI7OzBCQUVoQyxTQUFTOzJCQUFDLFVBQVU7NENBOUJ0QixLQUFLO3NCQURKLEtBQUs7Z0JBSU4sVUFBVTtzQkFEVCxXQUFXO3VCQUFDLHFCQUFxQjtnQkFJakIsYUFBYTtzQkFBN0IsS0FBSztnQkFHRixZQUFZO3NCQURmLEtBQUs7O1FBU04sWUFBWTtRQUNaLGVBQWU7c0JBRmQsWUFBWTt1QkFBQyxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhbmltYXRlLCBzdGF0ZSwgc3R5bGUsIHRyYW5zaXRpb24sIHRyaWdnZXIgfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcbmltcG9ydCB7IEZvY3VzTW9uaXRvciB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7IFVuaXF1ZVNlbGVjdGlvbkRpc3BhdGNoZXIgfSBmcm9tICdAYW5ndWxhci9jZGsvY29sbGVjdGlvbnMnO1xuaW1wb3J0IHtcblx0QXR0cmlidXRlLFxuXHRDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcblx0Q2hhbmdlRGV0ZWN0b3JSZWYsXG5cdENvbXBvbmVudCxcblx0Q29udGVudENoaWxkLFxuXHRFbGVtZW50UmVmLFxuXHRIb3N0QmluZGluZyxcblx0SW5qZWN0LFxuXHRJbnB1dCxcblx0T3B0aW9uYWwsXG5cdFRlbXBsYXRlUmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcblx0TWF0UmFkaW9CdXR0b24sXG5cdE1hdFJhZGlvRGVmYXVsdE9wdGlvbnMsXG5cdE1hdFJhZGlvR3JvdXAsXG5cdE1BVF9SQURJT19ERUZBVUxUX09QVElPTlMsXG5cdE1BVF9SQURJT19HUk9VUFxufSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9yYWRpbyc7XG5pbXBvcnQgeyBBTklNQVRJT05fTU9EVUxFX1RZUEUgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyL2FuaW1hdGlvbnMnO1xuXG4vKipcbiAqIFVzZSBgYnVpLXJhZGlvLXBhbmVsLWl0ZW1gIGluc3RlYWQgb2YgYG1hdC1yYWRpby1idXR0b25gIGluIGEgYGJ1aS1yYWRpby1wYW5lbGAgdG8gZGlzcGxheSBhbiBvcHRpb24uXG4gKi9cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ2J1aS1yYWRpby1wYW5lbC1pdGVtJyxcblx0dGVtcGxhdGVVcmw6ICcuL3JhZGlvLXBhbmVsLWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxuXHRzdHlsZVVybHM6IFsnLi9yYWRpby1wYW5lbC1pdGVtLmNvbXBvbmVudC5zY3NzJ10sXG5cdC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG5cdGlucHV0czogWydkaXNhYmxlUmlwcGxlJywgJ3RhYkluZGV4J10sXG5cdGV4cG9ydEFzOiAnbWF0UmFkaW9CdXR0b24nLFxuXHQvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IG5vLWhvc3QtbWV0YWRhdGEtcHJvcGVydHlcblx0aG9zdDoge1xuXHRcdGNsYXNzOiAnYnVpLXJhZGlvLXBhbmVsLWl0ZW0nLFxuXHRcdCdbY2xhc3MuYnVpLXJhZGlvLWNoZWNrZWRdJzogJ2NoZWNrZWQnLFxuXHRcdCdbY2xhc3MuYnVpLWRpc2FibGVkXSc6ICdkaXNhYmxlZCcsXG5cdFx0J1tjbGFzcy5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZV0nOiAnX25vb3BBbmltYXRpb25zJyxcblx0XHQnW2NsYXNzLm1hdC1wcmltYXJ5XSc6ICdjb2xvciA9PT0gXCJwcmltYXJ5XCInLFxuXHRcdCdbY2xhc3MubWF0LWFjY2VudF0nOiAnY29sb3IgPT09IFwiYWNjZW50XCInLFxuXHRcdCdbY2xhc3MubWF0LXdhcm5dJzogJ2NvbG9yID09PSBcIndhcm5cIicsXG5cdFx0Ly8gTmVlZHMgdG8gYmUgcmVtb3ZlZCBzaW5jZSBpdCBjYXVzZXMgc29tZSBhMTF5IGlzc3VlcyAoc2VlICMyMTI2NikuXG5cdFx0J1thdHRyLnRhYmluZGV4XSc6ICdudWxsJyxcblx0XHQnW2F0dHIuaWRdJzogJ2lkJyxcblx0XHQnW2F0dHIuYXJpYS1sYWJlbF0nOiAnbnVsbCcsXG5cdFx0J1thdHRyLmFyaWEtbGFiZWxsZWRieV0nOiAnbnVsbCcsXG5cdFx0J1thdHRyLmFyaWEtZGVzY3JpYmVkYnldJzogJ251bGwnLFxuXHRcdC8vIE5vdGU6IHVuZGVyIG5vcm1hbCBjb25kaXRpb25zIGZvY3VzIHNob3VsZG4ndCBsYW5kIG9uIHRoaXMgZWxlbWVudCwgaG93ZXZlciBpdCBtYXkgYmVcblx0XHQvLyBwcm9ncmFtbWF0aWNhbGx5IHNldCwgZm9yIGV4YW1wbGUgaW5zaWRlIG9mIGEgZm9jdXMgdHJhcCwgaW4gdGhpcyBjYXNlIHdlIHdhbnQgdG8gZm9yd2FyZFxuXHRcdC8vIHRoZSBmb2N1cyB0byB0aGUgbmF0aXZlIGVsZW1lbnQuXG5cdFx0Jyhmb2N1cyknOiAnX2lucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LmZvY3VzKCknXG5cdH0sXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuXHRhbmltYXRpb25zOiBbXG5cdFx0dHJpZ2dlcignc2xpZGVJbk91dCcsIFtcblx0XHRcdHN0YXRlKCd2b2lkJywgc3R5bGUoeyBoZWlnaHQ6ICcwcHgnLCBvdmVyZmxvdzogJ2hpZGRlbicgfSkpLFxuXHRcdFx0dHJhbnNpdGlvbignOmVudGVyLCA6bGVhdmUnLCBhbmltYXRlKCcuMjVzJykpXG5cdFx0XSlcblx0XVxufSlcbmV4cG9ydCBjbGFzcyBSYWRpb1BhbmVsSXRlbUNvbXBvbmVudCBleHRlbmRzIE1hdFJhZGlvQnV0dG9uIHtcblx0LyoqXG5cdCAqIFRoaXMgd2lsbCBiZSBkaXNwbGF5ZWQgYXMgdGhlIHBhbmVsIGhlYWRlclxuXHQgKi9cblx0QElucHV0KClcblx0dGl0bGUgPSAnJztcblxuXHRASG9zdEJpbmRpbmcoJ3N0eWxlLi0tcGFuZWwtd2lkdGgnKVxuXHRwYW5lbFdpZHRoID0gJzI4MHB4JztcblxuXHQvKiogVGhlIGRlZmF1bHQgcG9zaXRpb24gb2YgdGhlICd0aWNrJyBpY29uIHJlbGF0aXZlIHRvIHRoZSB0aXRsZS4gKi9cblx0QElucHV0KCkgcHJpdmF0ZSBfdGlja1Bvc2l0aW9uOiAnc3RhcnQnIHwgJ2VuZCcgfCB1bmRlZmluZWQ7XG5cblx0QElucHV0KClcblx0Z2V0IHRpY2tQb3NpdGlvbigpOiAnc3RhcnQnIHwgJ2VuZCcge1xuXHRcdHJldHVybiB0aGlzLl90aWNrUG9zaXRpb24gfHwgKHRoaXMucmFkaW9Hcm91cCBhcyBhbnkpPy50aWNrUG9zaXRpb247XG5cdH1cblx0c2V0IHRpY2tQb3NpdGlvbihwb3M6ICdzdGFydCcgfCAnZW5kJykge1xuXHRcdHRoaXMuX3RpY2tQb3NpdGlvbiA9IHBvcztcblx0fVxuXG5cdEBDb250ZW50Q2hpbGQoJ2NvbnRlbnRPblNlbGVjdCcpXG5cdC8vQHRzLWlnbm9yZVxuXHRjb250ZW50T25TZWxlY3Q6IFRlbXBsYXRlUmVmPGFueT47XG5cblx0Y29uc3RydWN0b3IoXG5cdFx0QE9wdGlvbmFsKCkgQEluamVjdChNQVRfUkFESU9fR1JPVVApIHJhZGlvR3JvdXA6IE1hdFJhZGlvR3JvdXAsXG5cdFx0ZWxlbWVudFJlZjogRWxlbWVudFJlZixcblx0XHRfY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmLFxuXHRcdF9mb2N1c01vbml0b3I6IEZvY3VzTW9uaXRvcixcblx0XHRfcmFkaW9EaXNwYXRjaGVyOiBVbmlxdWVTZWxlY3Rpb25EaXNwYXRjaGVyLFxuXHRcdEBPcHRpb25hbCgpIEBJbmplY3QoQU5JTUFUSU9OX01PRFVMRV9UWVBFKSBhbmltYXRpb25Nb2RlPzogc3RyaW5nLFxuXHRcdEBPcHRpb25hbCgpXG5cdFx0QEluamVjdChNQVRfUkFESU9fREVGQVVMVF9PUFRJT05TKVxuXHRcdF9wcm92aWRlck92ZXJyaWRlPzogTWF0UmFkaW9EZWZhdWx0T3B0aW9ucyxcblx0XHRAQXR0cmlidXRlKCd0YWJpbmRleCcpIHRhYkluZGV4Pzogc3RyaW5nXG5cdCkge1xuXHRcdHN1cGVyKFxuXHRcdFx0cmFkaW9Hcm91cCxcblx0XHRcdGVsZW1lbnRSZWYsXG5cdFx0XHRfY2hhbmdlRGV0ZWN0b3IsXG5cdFx0XHRfZm9jdXNNb25pdG9yLFxuXHRcdFx0X3JhZGlvRGlzcGF0Y2hlcixcblx0XHRcdGFuaW1hdGlvbk1vZGUsXG5cdFx0XHRfcHJvdmlkZXJPdmVycmlkZSxcblx0XHRcdHRhYkluZGV4XG5cdFx0KTtcblx0fVxufVxuIiwiPGxhYmVsXG5cdG1hdFJpcHBsZVxuXHRtYXRSaXBwbGVDb2xvcj1cInJnYmEoMTI4LDEyOCwxMjgsLjEpXCJcblx0W21hdFJpcHBsZURpc2FibGVkXT1cImRpc2FibGVkIHx8IGNoZWNrZWRcIlxuXHRbYXR0ci5mb3JdPVwiaW5wdXRJZFwiXG5cdCNsYWJlbFxuXHRjbGFzcz1cImJ1aS1yYWRpby1wYW5lbC1pdGVtLWxhYmVsIGJ1aS1ib3JkZXIte3sgY2hlY2tlZCA/IGNvbG9yIDogJ2RlZmF1bHQnIH19XCJcbj5cblx0PGRpdiBjbGFzcz1cImJ1aS1yYWRpby1wYW5lbC1pdGVtLXdyYXBwZXJcIiBbY2xhc3MuYnVpLXJhZGlvLXRpY2stYXQtZW5kXT1cInRpY2tQb3NpdGlvbiA9PT0gJ2VuZCdcIj5cblx0XHQ8ZGl2IGNsYXNzPVwiYnVpLWxhYmVsLWhlYWRlclwiPlxuXHRcdFx0PHNwYW4gY2xhc3M9XCJidWktbGFiZWwtdGl0bGVcIiBbaW5uZXJIVE1MXT1cInRpdGxlXCI+PC9zcGFuPlxuXHRcdFx0PG5nLWNvbnRlbnQgc2VsZWN0PVwiW2J1aVJhZGlvSXRlbUhlYWRpbmdFbmRdXCI+PC9uZy1jb250ZW50PlxuXHRcdFx0PHNwYW4gY2xhc3M9XCJidWktcmFkaW8tcGFuZWwtaXRlbS1jaXJjbGVcIj5cblx0XHRcdFx0PHNwYW5cblx0XHRcdFx0XHRjbGFzcz1cImJ1aS1wZXJzaXN0ZW50LXJpcHBsZVwiXG5cdFx0XHRcdFx0bWF0UmlwcGxlXG5cdFx0XHRcdFx0bWF0UmlwcGxlQ29sb3I9XCJyZ2JhKDEyOCwxMjgsMTI4LC4xKVwiXG5cdFx0XHRcdFx0W21hdFJpcHBsZUNlbnRlcmVkXT1cInRydWVcIlxuXHRcdFx0XHRcdFttYXRSaXBwbGVVbmJvdW5kZWRdPVwidHJ1ZVwiXG5cdFx0XHRcdFx0W21hdFJpcHBsZVRyaWdnZXJdPVwibGFiZWxcIlxuXHRcdFx0XHRcdFttYXRSaXBwbGVSYWRpdXNdPVwiMjBcIlxuXHRcdFx0XHRcdCpuZ0lmPVwiIWRpc2FibGVkXCJcblx0XHRcdFx0Pjwvc3Bhbj5cblx0XHRcdFx0PG1hdC1pY29uIFtjb2xvcl09XCJjb2xvclwiICpuZ0lmPVwiY2hlY2tlZFwiPmNoZWNrX2NpcmNsZTwvbWF0LWljb24+XG5cdFx0XHRcdDxtYXQtaWNvbiAqbmdJZj1cIiFjaGVja2VkXCIgY2xhc3M9XCJidWktcmFkaW8tcGFuZWwtaXRlbS1jaXJjbGUtdW5jaGVja2VkXCI+cmFkaW9fYnV0dG9uX3VuY2hlY2tlZDwvbWF0LWljb24+XG5cdFx0XHQ8L3NwYW4+XG5cdFx0PC9kaXY+XG5cdFx0PCEtLSBUaGUgYWN0dWFsICdyYWRpbycgcGFydCBvZiB0aGUgY29udHJvbC4gLS0+XG5cdFx0PHNwYW4gY2xhc3M9XCJyYWRpby1jb250YWluZXJcIj5cblx0XHRcdDxpbnB1dFxuXHRcdFx0XHQjaW5wdXRcblx0XHRcdFx0Y2xhc3M9XCJtYXQtcmFkaW8taW5wdXQgY2RrLXZpc3VhbGx5LWhpZGRlblwiXG5cdFx0XHRcdHR5cGU9XCJyYWRpb1wiXG5cdFx0XHRcdFtpZF09XCJpbnB1dElkXCJcblx0XHRcdFx0W2NoZWNrZWRdPVwiY2hlY2tlZFwiXG5cdFx0XHRcdFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG5cdFx0XHRcdFt0YWJJbmRleF09XCJ0YWJJbmRleFwiXG5cdFx0XHRcdFthdHRyLm5hbWVdPVwibmFtZVwiXG5cdFx0XHRcdFthdHRyLnZhbHVlXT1cInZhbHVlXCJcblx0XHRcdFx0W3JlcXVpcmVkXT1cInJlcXVpcmVkXCJcblx0XHRcdFx0W2F0dHIuYXJpYS1sYWJlbF09XCJhcmlhTGFiZWxcIlxuXHRcdFx0XHRbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiYXJpYUxhYmVsbGVkYnlcIlxuXHRcdFx0XHRbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XT1cImFyaWFEZXNjcmliZWRieVwiXG5cdFx0XHRcdChjaGFuZ2UpPVwiX29uSW5wdXRJbnRlcmFjdGlvbigkZXZlbnQpXCJcblx0XHRcdFx0KGNsaWNrKT1cIl9vbklucHV0Q2xpY2soJGV2ZW50KVwiXG5cdFx0XHQvPlxuXHRcdDwvc3Bhbj5cblxuXHRcdDxkaXYgY2xhc3M9XCJidWktbGFiZWwtY29udGVudC1nYXBcIj48L2Rpdj5cblx0XHQ8IS0tIFRoZSBsYWJlbCBjb250ZW50IGZvciByYWRpbyBjb250cm9sLiAtLT5cblx0XHQ8ZGl2IGNsYXNzPVwiYnVpLWxhYmVsLWNvbnRlbnRcIj5cblx0XHRcdDxuZy1jb250ZW50PjwvbmctY29udGVudD5cblx0XHQ8L2Rpdj5cblx0XHQ8ZGl2IGNsYXNzPVwiYnVpLWxhYmVsLWNvbnRlbnRcIiAqbmdJZj1cImNvbnRlbnRPblNlbGVjdCAmJiBjaGVja2VkXCIgQHNsaWRlSW5PdXQ+XG5cdFx0XHQ8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29udGVudE9uU2VsZWN0XCI+PC9uZy1jb250YWluZXI+XG5cdFx0PC9kaXY+XG5cdDwvZGl2PlxuPC9sYWJlbD5cbiJdfQ==
@@ -0,0 +1,89 @@
1
+ import { Component, ContentChildren, forwardRef, HostBinding, Input } from '@angular/core';
2
+ import { NG_VALUE_ACCESSOR } from '@angular/forms';
3
+ import { MatRadioGroup, MAT_RADIO_GROUP } from '@angular/material/radio';
4
+ import { RadioPanelItemComponent } from './radio-panel-item.component';
5
+ import * as i0 from "@angular/core";
6
+ /**
7
+ * Radio panel is a [control value accessor](https://angular.io/api/forms/ControlValueAccessor)
8
+ * that extends Angular Material's [radio group component](https://material.angular.io/components/radio/overview).
9
+ * It inherits all the features of `MatRadioGroup`, and arranges the child items in panels,
10
+ * with the `title` attributes rendered as captions. The check box icon and the borders will be displayed
11
+ * in the color selected by the theme attribute `color`.
12
+ *
13
+ */
14
+ export class RadioPanelComponent extends MatRadioGroup {
15
+ constructor(cd) {
16
+ super(cd);
17
+ /**
18
+ * @ignore
19
+ */
20
+ this.classAttr = '';
21
+ this.panelWidth = 280;
22
+ /** The flow direction of the radio panel items */
23
+ this.direction = 'row';
24
+ /** The default position of the 'tick' icon relative to the title. */
25
+ this.tickPosition = 'start';
26
+ }
27
+ /** @ignore */
28
+ ngOnChanges(changes) {
29
+ if (['color', 'tickPosition'].some(p => changes[p]) && this._radios) {
30
+ this._radios.forEach(item => item._markForCheck());
31
+ }
32
+ if (this.direction === 'row') {
33
+ this.classAttr = 'bui-radio-panel bui-host radio-dir-row';
34
+ }
35
+ else {
36
+ this.classAttr = 'bui-radio-panel bui-host radio-dir-column';
37
+ }
38
+ if (changes.panelWidth && this._radios) {
39
+ this._updatePanelWidth();
40
+ }
41
+ }
42
+ ngAfterContentInit() {
43
+ this._updatePanelWidth();
44
+ }
45
+ _updatePanelWidth() {
46
+ this._radios.forEach(item => {
47
+ item.panelWidth = this.panelWidth + 'px';
48
+ item._markForCheck();
49
+ });
50
+ }
51
+ }
52
+ RadioPanelComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: RadioPanelComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
53
+ RadioPanelComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.3", type: RadioPanelComponent, selector: "bui-radio-panel", inputs: { panelWidth: "panelWidth", direction: "direction", color: "color", tickPosition: "tickPosition" }, host: { attributes: { "role": "radiogroup" }, properties: { "attr.class": "this.classAttr" }, classAttribute: "bui-radio-panel bui-host" }, providers: [
54
+ {
55
+ provide: NG_VALUE_ACCESSOR,
56
+ useExisting: forwardRef(() => RadioPanelComponent),
57
+ multi: true
58
+ },
59
+ { provide: MAT_RADIO_GROUP, useExisting: forwardRef(() => RadioPanelComponent) }
60
+ ], queries: [{ propertyName: "_radios", predicate: RadioPanelItemComponent, descendants: true }], exportAs: ["buiRadioPanel"], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: ` <ng-content></ng-content> `, isInline: true, styles: [":host{display:flex}:host.radio-dir-row{flex-direction:row;flex-wrap:wrap}:host.radio-dir-column{flex-direction:column}\n"] });
61
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: RadioPanelComponent, decorators: [{
62
+ type: Component,
63
+ args: [{ selector: 'bui-radio-panel', exportAs: 'buiRadioPanel', providers: [
64
+ {
65
+ provide: NG_VALUE_ACCESSOR,
66
+ useExisting: forwardRef(() => RadioPanelComponent),
67
+ multi: true
68
+ },
69
+ { provide: MAT_RADIO_GROUP, useExisting: forwardRef(() => RadioPanelComponent) }
70
+ ], host: {
71
+ role: 'radiogroup',
72
+ class: 'bui-radio-panel bui-host'
73
+ }, template: ` <ng-content></ng-content> `, styles: [":host{display:flex}:host.radio-dir-row{flex-direction:row;flex-wrap:wrap}:host.radio-dir-column{flex-direction:column}\n"] }]
74
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { classAttr: [{
75
+ type: HostBinding,
76
+ args: ['attr.class']
77
+ }], panelWidth: [{
78
+ type: Input
79
+ }], direction: [{
80
+ type: Input
81
+ }], color: [{
82
+ type: Input
83
+ }], tickPosition: [{
84
+ type: Input
85
+ }], _radios: [{
86
+ type: ContentChildren,
87
+ args: [RadioPanelItemComponent, { descendants: true }]
88
+ }] } });
89
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8tcGFuZWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvcmFkaW8tcGFuZWwvcmFkaW8tcGFuZWwuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHTixTQUFTLEVBQ1QsZUFBZSxFQUNmLFVBQVUsRUFDVixXQUFXLEVBQ1gsS0FBSyxFQUlMLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRW5ELE9BQU8sRUFBRSxhQUFhLEVBQUUsZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sOEJBQThCLENBQUM7O0FBQ3ZFOzs7Ozs7O0dBT0c7QUFxQkgsTUFBTSxPQUFPLG1CQUFvQixTQUFRLGFBQWE7SUEwQnJELFlBQVksRUFBcUI7UUFDaEMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBMUJYOztXQUVHO1FBRUgsY0FBUyxHQUFXLEVBQUUsQ0FBQztRQUd2QixlQUFVLEdBQUcsR0FBRyxDQUFDO1FBRWpCLGtEQUFrRDtRQUVsRCxjQUFTLEdBQXFCLEtBQUssQ0FBQztRQUtwQyxxRUFBcUU7UUFDNUQsaUJBQVksR0FBb0IsT0FBTyxDQUFDO0lBVWpELENBQUM7SUFFRCxjQUFjO0lBQ2QsV0FBVyxDQUFDLE9BQXNCO1FBQ2pDLElBQUksQ0FBQyxPQUFPLEVBQUUsY0FBYyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNwRSxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDO1NBQ25EO1FBRUQsSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLEtBQUssRUFBRTtZQUM3QixJQUFJLENBQUMsU0FBUyxHQUFHLHdDQUF3QyxDQUFDO1NBQzFEO2FBQU07WUFDTixJQUFJLENBQUMsU0FBUyxHQUFHLDJDQUEyQyxDQUFDO1NBQzdEO1FBRUQsSUFBSSxPQUFPLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDdkMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7U0FDekI7SUFDRixDQUFDO0lBRUQsa0JBQWtCO1FBQ2pCLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFTyxpQkFBaUI7UUFDeEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDM0IsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztZQUN6QyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDdEIsQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDOztnSEF4RFcsbUJBQW1CO29HQUFuQixtQkFBbUIsa1NBaEJwQjtRQUNWO1lBQ0MsT0FBTyxFQUFFLGlCQUFpQjtZQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLG1CQUFtQixDQUFDO1lBQ2xELEtBQUssRUFBRSxJQUFJO1NBQ1g7UUFDRCxFQUFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFO0tBQ2hGLGtEQWdDZ0IsdUJBQXVCLHlIQTFCOUIsNkJBQTZCOzJGQUczQixtQkFBbUI7a0JBcEIvQixTQUFTOytCQUVDLGlCQUFpQixZQUNqQixlQUFlLGFBQ2Q7d0JBQ1Y7NEJBQ0MsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsb0JBQW9CLENBQUM7NEJBQ2xELEtBQUssRUFBRSxJQUFJO3lCQUNYO3dCQUNELEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxvQkFBb0IsQ0FBQyxFQUFFO3FCQUNoRixRQUVLO3dCQUNMLElBQUksRUFBRSxZQUFZO3dCQUNsQixLQUFLLEVBQUUsMEJBQTBCO3FCQUNqQyxZQUNTLDZCQUE2Qjt3R0FRdkMsU0FBUztzQkFEUixXQUFXO3VCQUFDLFlBQVk7Z0JBSXpCLFVBQVU7c0JBRFQsS0FBSztnQkFLTixTQUFTO3NCQURSLEtBQUs7Z0JBSUcsS0FBSztzQkFBYixLQUFLO2dCQUdHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBTU4sT0FBTztzQkFETixlQUFlO3VCQUFDLHVCQUF1QixFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG5cdEFmdGVyQ29udGVudEluaXQsXG5cdENoYW5nZURldGVjdG9yUmVmLFxuXHRDb21wb25lbnQsXG5cdENvbnRlbnRDaGlsZHJlbixcblx0Zm9yd2FyZFJlZixcblx0SG9zdEJpbmRpbmcsXG5cdElucHV0LFxuXHRPbkNoYW5nZXMsXG5cdFF1ZXJ5TGlzdCxcblx0U2ltcGxlQ2hhbmdlc1xufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgVGhlbWVQYWxldHRlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XG5pbXBvcnQgeyBNYXRSYWRpb0dyb3VwLCBNQVRfUkFESU9fR1JPVVAgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9yYWRpbyc7XG5pbXBvcnQgeyBSYWRpb1BhbmVsSXRlbUNvbXBvbmVudCB9IGZyb20gJy4vcmFkaW8tcGFuZWwtaXRlbS5jb21wb25lbnQnO1xuLyoqXG4gKiBSYWRpbyBwYW5lbCBpcyBhIFtjb250cm9sIHZhbHVlIGFjY2Vzc29yXShodHRwczovL2FuZ3VsYXIuaW8vYXBpL2Zvcm1zL0NvbnRyb2xWYWx1ZUFjY2Vzc29yKVxuICogdGhhdCBleHRlbmRzIEFuZ3VsYXIgTWF0ZXJpYWwncyBbcmFkaW8gZ3JvdXAgY29tcG9uZW50XShodHRwczovL21hdGVyaWFsLmFuZ3VsYXIuaW8vY29tcG9uZW50cy9yYWRpby9vdmVydmlldykuXG4gKiBJdCBpbmhlcml0cyBhbGwgdGhlIGZlYXR1cmVzIG9mIGBNYXRSYWRpb0dyb3VwYCwgYW5kIGFycmFuZ2VzIHRoZSBjaGlsZCBpdGVtcyBpbiBwYW5lbHMsXG4gKiB3aXRoIHRoZSBgdGl0bGVgIGF0dHJpYnV0ZXMgcmVuZGVyZWQgYXMgY2FwdGlvbnMuIFRoZSBjaGVjayBib3ggaWNvbiBhbmQgdGhlIGJvcmRlcnMgd2lsbCBiZSBkaXNwbGF5ZWRcbiAqIGluIHRoZSBjb2xvciBzZWxlY3RlZCBieSB0aGUgdGhlbWUgYXR0cmlidXRlIGBjb2xvcmAuXG4gKlxuICovXG5AQ29tcG9uZW50KHtcblx0Ly8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBkaXJlY3RpdmUtc2VsZWN0b3Jcblx0c2VsZWN0b3I6ICdidWktcmFkaW8tcGFuZWwnLFxuXHRleHBvcnRBczogJ2J1aVJhZGlvUGFuZWwnLFxuXHRwcm92aWRlcnM6IFtcblx0XHR7XG5cdFx0XHRwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcblx0XHRcdHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFJhZGlvUGFuZWxDb21wb25lbnQpLFxuXHRcdFx0bXVsdGk6IHRydWVcblx0XHR9LFxuXHRcdHsgcHJvdmlkZTogTUFUX1JBRElPX0dST1VQLCB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBSYWRpb1BhbmVsQ29tcG9uZW50KSB9XG5cdF0sXG5cdC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogbm8taG9zdC1tZXRhZGF0YS1wcm9wZXJ0eVxuXHRob3N0OiB7XG5cdFx0cm9sZTogJ3JhZGlvZ3JvdXAnLFxuXHRcdGNsYXNzOiAnYnVpLXJhZGlvLXBhbmVsIGJ1aS1ob3N0J1xuXHR9LFxuXHR0ZW1wbGF0ZTogYCA8bmctY29udGVudD48L25nLWNvbnRlbnQ+IGAsXG5cdHN0eWxlVXJsczogWydyYWRpby1wYW5lbC5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFJhZGlvUGFuZWxDb21wb25lbnQgZXh0ZW5kcyBNYXRSYWRpb0dyb3VwIGltcGxlbWVudHMgT25DaGFuZ2VzLCBBZnRlckNvbnRlbnRJbml0IHtcblx0LyoqXG5cdCAqIEBpZ25vcmVcblx0ICovXG5cdEBIb3N0QmluZGluZygnYXR0ci5jbGFzcycpXG5cdGNsYXNzQXR0cjogc3RyaW5nID0gJyc7XG5cblx0QElucHV0KClcblx0cGFuZWxXaWR0aCA9IDI4MDtcblxuXHQvKiogVGhlIGZsb3cgZGlyZWN0aW9uIG9mIHRoZSByYWRpbyBwYW5lbCBpdGVtcyAqL1xuXHRASW5wdXQoKVxuXHRkaXJlY3Rpb246ICdyb3cnIHwgJ2NvbHVtbicgPSAncm93JztcblxuXHQvKiogVGhlbWUgY29sb3IgZm9yIGFsbCBvZiB0aGUgcmFkaW8gcGFuZWxzIGluIHRoZSBncm91cC4gKi9cblx0QElucHV0KCkgY29sb3I6IFRoZW1lUGFsZXR0ZTtcblxuXHQvKiogVGhlIGRlZmF1bHQgcG9zaXRpb24gb2YgdGhlICd0aWNrJyBpY29uIHJlbGF0aXZlIHRvIHRoZSB0aXRsZS4gKi9cblx0QElucHV0KCkgdGlja1Bvc2l0aW9uOiAnc3RhcnQnIHwgJ2VuZCcgPSAnc3RhcnQnO1xuXG5cdC8qKlxuXHQgKiBAaWdub3JlXG5cdCAqL1xuXHRAQ29udGVudENoaWxkcmVuKFJhZGlvUGFuZWxJdGVtQ29tcG9uZW50LCB7IGRlc2NlbmRhbnRzOiB0cnVlIH0pXG5cdF9yYWRpb3MhOiBRdWVyeUxpc3Q8UmFkaW9QYW5lbEl0ZW1Db21wb25lbnQ+O1xuXG5cdGNvbnN0cnVjdG9yKGNkOiBDaGFuZ2VEZXRlY3RvclJlZikge1xuXHRcdHN1cGVyKGNkKTtcblx0fVxuXG5cdC8qKiBAaWdub3JlICovXG5cdG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcblx0XHRpZiAoWydjb2xvcicsICd0aWNrUG9zaXRpb24nXS5zb21lKHAgPT4gY2hhbmdlc1twXSkgJiYgdGhpcy5fcmFkaW9zKSB7XG5cdFx0XHR0aGlzLl9yYWRpb3MuZm9yRWFjaChpdGVtID0+IGl0ZW0uX21hcmtGb3JDaGVjaygpKTtcblx0XHR9XG5cblx0XHRpZiAodGhpcy5kaXJlY3Rpb24gPT09ICdyb3cnKSB7XG5cdFx0XHR0aGlzLmNsYXNzQXR0ciA9ICdidWktcmFkaW8tcGFuZWwgYnVpLWhvc3QgcmFkaW8tZGlyLXJvdyc7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHRoaXMuY2xhc3NBdHRyID0gJ2J1aS1yYWRpby1wYW5lbCBidWktaG9zdCByYWRpby1kaXItY29sdW1uJztcblx0XHR9XG5cblx0XHRpZiAoY2hhbmdlcy5wYW5lbFdpZHRoICYmIHRoaXMuX3JhZGlvcykge1xuXHRcdFx0dGhpcy5fdXBkYXRlUGFuZWxXaWR0aCgpO1xuXHRcdH1cblx0fVxuXG5cdG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcblx0XHR0aGlzLl91cGRhdGVQYW5lbFdpZHRoKCk7XG5cdH1cblxuXHRwcml2YXRlIF91cGRhdGVQYW5lbFdpZHRoKCkge1xuXHRcdHRoaXMuX3JhZGlvcy5mb3JFYWNoKGl0ZW0gPT4ge1xuXHRcdFx0aXRlbS5wYW5lbFdpZHRoID0gdGhpcy5wYW5lbFdpZHRoICsgJ3B4Jztcblx0XHRcdGl0ZW0uX21hcmtGb3JDaGVjaygpO1xuXHRcdH0pO1xuXHR9XG59XG4iXX0=
@@ -0,0 +1,25 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { NgModule } from '@angular/core';
3
+ import { MatRippleModule } from '@angular/material/core';
4
+ import { MatIconModule } from '@angular/material/icon';
5
+ import { MatRadioModule } from '@angular/material/radio';
6
+ import { RadioPanelItemComponent } from './radio-panel-item.component';
7
+ import { RadioPanelComponent } from './radio-panel.component';
8
+ import * as i0 from "@angular/core";
9
+ /**
10
+ * Import this NgModule for the radio panel component
11
+ */
12
+ export class RadioPanelModule {
13
+ }
14
+ RadioPanelModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: RadioPanelModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
15
+ RadioPanelModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.1.3", ngImport: i0, type: RadioPanelModule, declarations: [RadioPanelItemComponent, RadioPanelComponent], imports: [CommonModule, MatRadioModule, MatRippleModule, MatIconModule], exports: [RadioPanelItemComponent, RadioPanelComponent] });
16
+ RadioPanelModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: RadioPanelModule, imports: [CommonModule, MatRadioModule, MatRippleModule, MatIconModule] });
17
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: RadioPanelModule, decorators: [{
18
+ type: NgModule,
19
+ args: [{
20
+ declarations: [RadioPanelItemComponent, RadioPanelComponent],
21
+ imports: [CommonModule, MatRadioModule, MatRippleModule, MatIconModule],
22
+ exports: [RadioPanelItemComponent, RadioPanelComponent]
23
+ }]
24
+ }] });
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8tcGFuZWwubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvcmFkaW8tcGFuZWwvcmFkaW8tcGFuZWwubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDOztBQUU5RDs7R0FFRztBQU1ILE1BQU0sT0FBTyxnQkFBZ0I7OzZHQUFoQixnQkFBZ0I7OEdBQWhCLGdCQUFnQixpQkFKYix1QkFBdUIsRUFBRSxtQkFBbUIsYUFDakQsWUFBWSxFQUFFLGNBQWMsRUFBRSxlQUFlLEVBQUUsYUFBYSxhQUM1RCx1QkFBdUIsRUFBRSxtQkFBbUI7OEdBRTFDLGdCQUFnQixZQUhsQixZQUFZLEVBQUUsY0FBYyxFQUFFLGVBQWUsRUFBRSxhQUFhOzJGQUcxRCxnQkFBZ0I7a0JBTDVCLFFBQVE7bUJBQUM7b0JBQ1QsWUFBWSxFQUFFLENBQUMsdUJBQXVCLEVBQUUsbUJBQW1CLENBQUM7b0JBQzVELE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxjQUFjLEVBQUUsZUFBZSxFQUFFLGFBQWEsQ0FBQztvQkFDdkUsT0FBTyxFQUFFLENBQUMsdUJBQXVCLEVBQUUsbUJBQW1CLENBQUM7aUJBQ3ZEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRSaXBwbGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IE1hdFJhZGlvTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcmFkaW8nO1xuaW1wb3J0IHsgUmFkaW9QYW5lbEl0ZW1Db21wb25lbnQgfSBmcm9tICcuL3JhZGlvLXBhbmVsLWl0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7IFJhZGlvUGFuZWxDb21wb25lbnQgfSBmcm9tICcuL3JhZGlvLXBhbmVsLmNvbXBvbmVudCc7XG5cbi8qKlxuICogSW1wb3J0IHRoaXMgTmdNb2R1bGUgZm9yIHRoZSByYWRpbyBwYW5lbCBjb21wb25lbnRcbiAqL1xuQE5nTW9kdWxlKHtcblx0ZGVjbGFyYXRpb25zOiBbUmFkaW9QYW5lbEl0ZW1Db21wb25lbnQsIFJhZGlvUGFuZWxDb21wb25lbnRdLFxuXHRpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBNYXRSYWRpb01vZHVsZSwgTWF0UmlwcGxlTW9kdWxlLCBNYXRJY29uTW9kdWxlXSxcblx0ZXhwb3J0czogW1JhZGlvUGFuZWxJdGVtQ29tcG9uZW50LCBSYWRpb1BhbmVsQ29tcG9uZW50XVxufSlcbmV4cG9ydCBjbGFzcyBSYWRpb1BhbmVsTW9kdWxlIHt9XG4iXX0=
@@ -0,0 +1,166 @@
1
+ import { coerceBooleanProperty } from '@angular/cdk/coercion';
2
+ import { ChangeDetectionStrategy, Component, Inject, InjectionToken, Input, ViewChild } from '@angular/core';
3
+ import { MatRipple } from '@angular/material/core';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/common";
6
+ import * as i2 from "@angular/material/checkbox";
7
+ import * as i3 from "@angular/forms";
8
+ import * as i4 from "@angular/material/core";
9
+ import * as i5 from "@angular/cdk/observers";
10
+ /**
11
+ * @ignore
12
+ */
13
+ export const SELECTION_PANEL_GROUP = new InjectionToken('SelectionPanelItemGroup');
14
+ /**
15
+ * Use `bui-selection-panel-item` within a `bui-selection-panel` to display an option.
16
+ */
17
+ export class SelectionPanelItemComponent {
18
+ constructor(_group, _cd) {
19
+ this._group = _group;
20
+ this._cd = _cd;
21
+ /**
22
+ * This will be displayed as the panel header
23
+ */
24
+ this.title = '';
25
+ /**
26
+ * Show the header in with a shaded background
27
+ */
28
+ this.shadedHeader = false;
29
+ /**
30
+ * when false will hide the checkbox
31
+ */
32
+ this.selectable = true;
33
+ this.empty = true;
34
+ this._disabled = false;
35
+ }
36
+ /** Whether the option is disabled. */
37
+ get disabled() {
38
+ return this._disabled || this._group._isDisabled;
39
+ }
40
+ set disabled(value) {
41
+ this._setDisabled(coerceBooleanProperty(value));
42
+ }
43
+ /** The value of this option. */
44
+ get value() {
45
+ return this._value;
46
+ }
47
+ set value(value) {
48
+ if (this._value !== value) {
49
+ this._value = value;
50
+ this._cd.markForCheck();
51
+ }
52
+ }
53
+ /** Whether this option is checked. */
54
+ get checked() {
55
+ return this._group._selection.includes(this.value);
56
+ }
57
+ set checked(value) {
58
+ if (!this._group._onTouched) {
59
+ setTimeout(() => this._setChecked(value), 0);
60
+ }
61
+ else {
62
+ this._setChecked(value);
63
+ }
64
+ }
65
+ /** Theme color of the radio button. */
66
+ get color() {
67
+ return this._color || this._group.color;
68
+ }
69
+ set color(newValue) {
70
+ this._color = newValue;
71
+ }
72
+ get _selectByHeader() {
73
+ return this._group.selectByHeader;
74
+ }
75
+ /** @ignore */
76
+ _markInteracted() {
77
+ if (this._group._onTouched) {
78
+ this._group._onTouched();
79
+ }
80
+ }
81
+ /** @ignore */
82
+ _notify() {
83
+ this._cd.markForCheck();
84
+ }
85
+ /** Toggle selection programmatically */
86
+ toggle() {
87
+ this.checked = !this.checked;
88
+ }
89
+ /** @ignore */
90
+ _contentClicked(event) {
91
+ if (!this._selectByHeader && this.selectable) {
92
+ this._ripple?.launch(event.clientX, event.clientY);
93
+ this.toggle();
94
+ }
95
+ }
96
+ /** @ignore */
97
+ contentChanged() {
98
+ const el = this._bodyContent?.nativeElement;
99
+ this.empty = (el?.childElementCount || 0) === 0 && (el?.textContent || '') === '';
100
+ }
101
+ /** @ignore */
102
+ ngAfterContentInit() {
103
+ this.contentChanged();
104
+ }
105
+ /** Sets the disabled state and marks for check if a change occurred. */
106
+ _setDisabled(value) {
107
+ if (this._disabled !== value) {
108
+ this._disabled = value;
109
+ this._cd.markForCheck();
110
+ }
111
+ }
112
+ _setChecked(value) {
113
+ const newCheckedState = coerceBooleanProperty(value);
114
+ const old = this._group._selection.includes(this.value);
115
+ if (old !== newCheckedState) {
116
+ const contained = this._group._selection.some(v => v === this._value);
117
+ if (newCheckedState && this._group && !contained) {
118
+ this._group._selection = [...this._group._selection, this._value];
119
+ }
120
+ else if (!newCheckedState && this._group && contained) {
121
+ // When unchecking the selected item, update the selection
122
+ // property on the group.
123
+ this._group._selection = this._group._selection.filter(v => v !== this._value);
124
+ }
125
+ this._cd.markForCheck();
126
+ }
127
+ }
128
+ }
129
+ SelectionPanelItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: SelectionPanelItemComponent, deps: [{ token: SELECTION_PANEL_GROUP }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
130
+ SelectionPanelItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.3", type: SelectionPanelItemComponent, selector: "bui-selection-panel-item", inputs: { title: "title", shadedHeader: "shadedHeader", selectable: "selectable", disabled: "disabled", value: "value", checked: "checked", color: "color" }, host: { properties: { "class.bui-selection-checked": "checked", "class.bui-border-accent": "checked && color ==='accent'", "class.bui-border-primary": "checked && color ==='primary'", "class.bui-border-warn": "checked && color ==='warn'", "class.bui-disabled": "disabled", "class.bui-unselectable": "!selectable" }, classAttribute: "bui-selection-panel-item" }, viewQueries: [{ propertyName: "_bodyContent", first: true, predicate: ["contentBody"], descendants: true, static: true }, { propertyName: "_ripple", first: true, predicate: MatRipple, descendants: true }], ngImport: i0, template: "<div class=\"bui-selection-panel-item-wrapper\">\n\t<div\n\t\tmatRipple\n\t\tmatRippleColor=\"rgba(128,128,128,.1)\"\n\t\tclass=\"bui-ripple\"\n\t\t*ngIf=\"!disabled\"\n\t\t[matRippleTrigger]=\"toggleTrigger\"\n\t\t#ripple=\"matRipple\"\n\t\t[matRippleDisabled]=\"!selectable\"\n\t></div>\n\t<div\n\t\tclass=\"bui-selection-panel-item-header\"\n\t\t[ngClass]=\"{ 'bui-shaded': shadedHeader, 'bui-empty': empty }\"\n\t\t#toggleTrigger\n\t>\n\t\t<div\n\t\t\t*ngIf=\"shadedHeader\"\n\t\t\tclass=\"bui-selection-panel-item-header-underlay\"\n\t\t\t[ngClass]=\"{ 'bui-not-empty': !empty }\"\n\t\t></div>\n\t\t<div class=\"bui-selection-panel-item-header-container\">\n\t\t\t<mat-checkbox\n\t\t\t\t*ngIf=\"selectable; else noselectable\"\n\t\t\t\t[(ngModel)]=\"checked\"\n\t\t\t\t[color]=\"color\"\n\t\t\t\t[disabled]=\"disabled\"\n\t\t\t\t(change)=\"_markInteracted()\"\n\t\t\t\tstyle=\"flex-grow: 1\"\n\t\t\t>\n\t\t\t\t<div class=\"bui-selection-panel-item-title\" [innerHTML]=\"title\"></div>\n\t\t\t</mat-checkbox>\n\t\t\t<ng-template #noselectable>\n\t\t\t\t<div style=\"flex-grow: 1\" class=\"bui-selection-panel-item-title\" [innerHTML]=\"title\"></div>\n\t\t\t</ng-template>\n\t\t\t<ng-content select=\"[buiSelectionItemHeadingEnd]\"></ng-content>\n\t\t</div>\n\t\t<ng-content select=\"[buiSelectionItemSubtitle]\"></ng-content>\n\t</div>\n\t<div\n\t\t#contentBody\n\t\tclass=\"bui-selection-panel-item-content\"\n\t\t[class.bui-selectable]=\"!_selectByHeader\"\n\t\t(click)=\"_contentClicked($event)\"\n\t\t(cdkObserveContent)=\"contentChanged()\"\n\t>\n\t\t<ng-content></ng-content>\n\t</div>\n\t<div class=\"bui-selection-panel-item-bottom\"></div>\n</div>\n", styles: [":host{position:relative;border-radius:5px;border:1px solid rgba(128,128,128,.2);padding:1px}:host .bui-selection-panel-item-wrapper{padding-left:1rem;padding-right:1rem}:host .bui-ripple{position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1}:host .bui-selection-panel-item-header{margin-top:calc(1rem - 4px);margin-bottom:calc(1rem - 4px);align-items:center;position:relative}:host .bui-selection-panel-item-header.bui-shaded:not(.bui-empty){margin-bottom:calc(2rem + 4px)}:host .bui-selection-panel-item-header-container{display:flex}:host .bui-selection-panel-item-header-container .mat-checkbox{z-index:1}:host .bui-selection-panel-item-title{font-size:larger;font-weight:700;white-space:normal;margin-top:2px}:host .bui-selection-panel-item-content{margin-top:calc(2px + 1rem);margin-bottom:1rem}:host .bui-selection-panel-item-header-underlay{position:absolute;top:calc(3px - 1rem);left:calc(-1px - 1rem);right:calc(-1px - 1rem);bottom:calc(-3px - 1rem);border-radius:5px;background-color:#80808026}:host .bui-selection-panel-item-header-underlay.bui-not-empty{border-bottom-left-radius:0;border-bottom-right-radius:0}:host(:not(:first-child)){margin-top:1rem}:host(:not([hidden])){display:block}:host(:not(.bui-disabled,.bui-unselectable)):hover{border-width:2px;padding:0;border-color:#8080804d}:host(:not(.bui-disabled,.bui-unselectable)) .bui-selection-panel-item-content.bui-selectable{cursor:pointer}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }, { kind: "directive", type: i5.CdkObserveContent, selector: "[cdkObserveContent]", inputs: ["cdkObserveContentDisabled", "debounce"], outputs: ["cdkObserveContent"], exportAs: ["cdkObserveContent"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
131
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: SelectionPanelItemComponent, decorators: [{
132
+ type: Component,
133
+ args: [{ selector: 'bui-selection-panel-item', changeDetection: ChangeDetectionStrategy.OnPush, host: {
134
+ class: 'bui-selection-panel-item',
135
+ '[class.bui-selection-checked]': 'checked',
136
+ '[class.bui-border-accent]': `checked && color ==='accent'`,
137
+ '[class.bui-border-primary]': `checked && color ==='primary'`,
138
+ '[class.bui-border-warn]': `checked && color ==='warn'`,
139
+ '[class.bui-disabled]': 'disabled',
140
+ '[class.bui-unselectable]': '!selectable'
141
+ }, template: "<div class=\"bui-selection-panel-item-wrapper\">\n\t<div\n\t\tmatRipple\n\t\tmatRippleColor=\"rgba(128,128,128,.1)\"\n\t\tclass=\"bui-ripple\"\n\t\t*ngIf=\"!disabled\"\n\t\t[matRippleTrigger]=\"toggleTrigger\"\n\t\t#ripple=\"matRipple\"\n\t\t[matRippleDisabled]=\"!selectable\"\n\t></div>\n\t<div\n\t\tclass=\"bui-selection-panel-item-header\"\n\t\t[ngClass]=\"{ 'bui-shaded': shadedHeader, 'bui-empty': empty }\"\n\t\t#toggleTrigger\n\t>\n\t\t<div\n\t\t\t*ngIf=\"shadedHeader\"\n\t\t\tclass=\"bui-selection-panel-item-header-underlay\"\n\t\t\t[ngClass]=\"{ 'bui-not-empty': !empty }\"\n\t\t></div>\n\t\t<div class=\"bui-selection-panel-item-header-container\">\n\t\t\t<mat-checkbox\n\t\t\t\t*ngIf=\"selectable; else noselectable\"\n\t\t\t\t[(ngModel)]=\"checked\"\n\t\t\t\t[color]=\"color\"\n\t\t\t\t[disabled]=\"disabled\"\n\t\t\t\t(change)=\"_markInteracted()\"\n\t\t\t\tstyle=\"flex-grow: 1\"\n\t\t\t>\n\t\t\t\t<div class=\"bui-selection-panel-item-title\" [innerHTML]=\"title\"></div>\n\t\t\t</mat-checkbox>\n\t\t\t<ng-template #noselectable>\n\t\t\t\t<div style=\"flex-grow: 1\" class=\"bui-selection-panel-item-title\" [innerHTML]=\"title\"></div>\n\t\t\t</ng-template>\n\t\t\t<ng-content select=\"[buiSelectionItemHeadingEnd]\"></ng-content>\n\t\t</div>\n\t\t<ng-content select=\"[buiSelectionItemSubtitle]\"></ng-content>\n\t</div>\n\t<div\n\t\t#contentBody\n\t\tclass=\"bui-selection-panel-item-content\"\n\t\t[class.bui-selectable]=\"!_selectByHeader\"\n\t\t(click)=\"_contentClicked($event)\"\n\t\t(cdkObserveContent)=\"contentChanged()\"\n\t>\n\t\t<ng-content></ng-content>\n\t</div>\n\t<div class=\"bui-selection-panel-item-bottom\"></div>\n</div>\n", styles: [":host{position:relative;border-radius:5px;border:1px solid rgba(128,128,128,.2);padding:1px}:host .bui-selection-panel-item-wrapper{padding-left:1rem;padding-right:1rem}:host .bui-ripple{position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1}:host .bui-selection-panel-item-header{margin-top:calc(1rem - 4px);margin-bottom:calc(1rem - 4px);align-items:center;position:relative}:host .bui-selection-panel-item-header.bui-shaded:not(.bui-empty){margin-bottom:calc(2rem + 4px)}:host .bui-selection-panel-item-header-container{display:flex}:host .bui-selection-panel-item-header-container .mat-checkbox{z-index:1}:host .bui-selection-panel-item-title{font-size:larger;font-weight:700;white-space:normal;margin-top:2px}:host .bui-selection-panel-item-content{margin-top:calc(2px + 1rem);margin-bottom:1rem}:host .bui-selection-panel-item-header-underlay{position:absolute;top:calc(3px - 1rem);left:calc(-1px - 1rem);right:calc(-1px - 1rem);bottom:calc(-3px - 1rem);border-radius:5px;background-color:#80808026}:host .bui-selection-panel-item-header-underlay.bui-not-empty{border-bottom-left-radius:0;border-bottom-right-radius:0}:host(:not(:first-child)){margin-top:1rem}:host(:not([hidden])){display:block}:host(:not(.bui-disabled,.bui-unselectable)):hover{border-width:2px;padding:0;border-color:#8080804d}:host(:not(.bui-disabled,.bui-unselectable)) .bui-selection-panel-item-content.bui-selectable{cursor:pointer}\n"] }]
142
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
143
+ type: Inject,
144
+ args: [SELECTION_PANEL_GROUP]
145
+ }] }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { title: [{
146
+ type: Input
147
+ }], shadedHeader: [{
148
+ type: Input
149
+ }], selectable: [{
150
+ type: Input
151
+ }], disabled: [{
152
+ type: Input
153
+ }], value: [{
154
+ type: Input
155
+ }], checked: [{
156
+ type: Input
157
+ }], color: [{
158
+ type: Input
159
+ }], _bodyContent: [{
160
+ type: ViewChild,
161
+ args: ['contentBody', { static: true }]
162
+ }], _ripple: [{
163
+ type: ViewChild,
164
+ args: [MatRipple]
165
+ }] } });
166
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aW9uLXBhbmVsLWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc2VsZWN0aW9uLXBhbmVsL3NlbGVjdGlvbi1wYW5lbC1pdGVtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NlbGVjdGlvbi1wYW5lbC9zZWxlY3Rpb24tcGFuZWwtaXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM5RCxPQUFPLEVBRU4sdUJBQXVCLEVBRXZCLFNBQVMsRUFFVCxNQUFNLEVBQ04sY0FBYyxFQUNkLEtBQUssRUFDTCxTQUFTLEVBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFNBQVMsRUFBZ0IsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7OztBQWFqRTs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLElBQUksY0FBYyxDQUEwQix5QkFBeUIsQ0FBQyxDQUFDO0FBRTVHOztHQUVHO0FBZ0JILE1BQU0sT0FBTywyQkFBMkI7SUFvRnZDLFlBQW1ELE1BQStCLEVBQVUsR0FBc0I7UUFBL0QsV0FBTSxHQUFOLE1BQU0sQ0FBeUI7UUFBVSxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQTdFbEg7O1dBRUc7UUFFSCxVQUFLLEdBQUcsRUFBRSxDQUFDO1FBRVg7O1dBRUc7UUFFSCxpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUVyQjs7V0FFRztRQUVILGVBQVUsR0FBRyxJQUFJLENBQUM7UUFpRGxCLFVBQUssR0FBWSxJQUFJLENBQUM7UUFHZCxjQUFTLEdBQUcsS0FBSyxDQUFDO0lBUzJGLENBQUM7SUEzRHRILHNDQUFzQztJQUN0QyxJQUNJLFFBQVE7UUFDWCxPQUFPLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxX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QUduQix1QkFBdUIsQ0FBQyxNQUFNLFFBQ3pDO3dCQUNMLEtBQUssRUFBRSwwQkFBMEI7d0JBQ2pDLCtCQUErQixFQUFFLFNBQVM7d0JBQzFDLDJCQUEyQixFQUFFLDhCQUE4Qjt3QkFDM0QsNEJBQTRCLEVBQUUsK0JBQStCO3dCQUM3RCx5QkFBeUIsRUFBRSw0QkFBNEI7d0JBQ3ZELHNCQUFzQixFQUFFLFVBQVU7d0JBQ2xDLDBCQUEwQixFQUFFLGFBQWE7cUJBQ3pDOzswQkFzRlksTUFBTTsyQkFBQyxxQkFBcUI7NEVBekV6QyxLQUFLO3NCQURKLEtBQUs7Z0JBT04sWUFBWTtzQkFEWCxLQUFLO2dCQU9OLFVBQVU7c0JBRFQsS0FBSztnQkFLRixRQUFRO3NCQURYLEtBQUs7Z0JBVUYsS0FBSztzQkFEUixLQUFLO2dCQWFGLE9BQU87c0JBRFYsS0FBSztnQkFjRixLQUFLO3NCQURSLEtBQUs7Z0JBbUJFLFlBQVk7c0JBRG5CLFNBQVM7dUJBQUMsYUFBYSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFJbEMsT0FBTztzQkFEZCxTQUFTO3VCQUFDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHtcblx0QWZ0ZXJDb250ZW50SW5pdCxcblx0Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG5cdENoYW5nZURldGVjdG9yUmVmLFxuXHRDb21wb25lbnQsXG5cdEVsZW1lbnRSZWYsXG5cdEluamVjdCxcblx0SW5qZWN0aW9uVG9rZW4sXG5cdElucHV0LFxuXHRWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRSaXBwbGUsIFRoZW1lUGFsZXR0ZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuXG4vKipcbiAqIEBpZ25vcmVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTZWxlY3Rpb25QYW5lbEl0ZW1Hcm91cCB7XG5cdF9zZWxlY3Rpb246IGFueVtdO1xuXHRjb2xvcjogVGhlbWVQYWxldHRlO1xuXHRfaXNEaXNhYmxlZDogYm9vbGVhbjtcblx0X29uVG91Y2hlZD86ICgpID0+IHZvaWQ7XG5cdHNlbGVjdEJ5SGVhZGVyOiBib29sZWFuO1xufVxuXG4vKipcbiAqIEBpZ25vcmVcbiAqL1xuZXhwb3J0IGNvbnN0IFNFTEVDVElPTl9QQU5FTF9HUk9VUCA9IG5ldyBJbmplY3Rpb25Ub2tlbjxTZWxlY3Rpb25QYW5lbEl0ZW1Hcm91cD4oJ1NlbGVjdGlvblBhbmVsSXRlbUdyb3VwJyk7XG5cbi8qKlxuICogVXNlIGBidWktc2VsZWN0aW9uLXBhbmVsLWl0ZW1gIHdpdGhpbiBhIGBidWktc2VsZWN0aW9uLXBhbmVsYCB0byBkaXNwbGF5IGFuIG9wdGlvbi5cbiAqL1xuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnYnVpLXNlbGVjdGlvbi1wYW5lbC1pdGVtJyxcblx0dGVtcGxhdGVVcmw6ICcuL3NlbGVjdGlvbi1wYW5lbC1pdGVtLmNvbXBvbmVudC5odG1sJyxcblx0c3R5bGVVcmxzOiBbJy4vc2VsZWN0aW9uLXBhbmVsLWl0ZW0uY29tcG9uZW50LnNjc3MnXSxcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG5cdGhvc3Q6IHtcblx0XHRjbGFzczogJ2J1aS1zZWxlY3Rpb24tcGFuZWwtaXRlbScsXG5cdFx0J1tjbGFzcy5idWktc2VsZWN0aW9uLWNoZWNrZWRdJzogJ2NoZWNrZWQnLFxuXHRcdCdbY2xhc3MuYnVpLWJvcmRlci1hY2NlbnRdJzogYGNoZWNrZWQgJiYgY29sb3IgPT09J2FjY2VudCdgLFxuXHRcdCdbY2xhc3MuYnVpLWJvcmRlci1wcmltYXJ5XSc6IGBjaGVja2VkICYmIGNvbG9yID09PSdwcmltYXJ5J2AsXG5cdFx0J1tjbGFzcy5idWktYm9yZGVyLXdhcm5dJzogYGNoZWNrZWQgJiYgY29sb3IgPT09J3dhcm4nYCxcblx0XHQnW2NsYXNzLmJ1aS1kaXNhYmxlZF0nOiAnZGlzYWJsZWQnLFxuXHRcdCdbY2xhc3MuYnVpLXVuc2VsZWN0YWJsZV0nOiAnIXNlbGVjdGFibGUnXG5cdH1cbn0pXG5leHBvcnQgY2xhc3MgU2VsZWN0aW9uUGFuZWxJdGVtQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCB7XG5cdC8qKiBAaWdub3JlICovXG5cdHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9kaXNhYmxlZDogYm9vbGVhbiB8IHN0cmluZztcblxuXHQvKiogQGlnbm9yZSAqL1xuXHRzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfY2hlY2tlZDogYm9vbGVhbiB8IHN0cmluZztcblxuXHQvKipcblx0ICogVGhpcyB3aWxsIGJlIGRpc3BsYXllZCBhcyB0aGUgcGFuZWwgaGVhZGVyXG5cdCAqL1xuXHRASW5wdXQoKVxuXHR0aXRsZSA9ICcnO1xuXG5cdC8qKlxuXHQgKiBTaG93IHRoZSBoZWFkZXIgaW4gd2l0aCBhIHNoYWRlZCBiYWNrZ3JvdW5kXG5cdCAqL1xuXHRASW5wdXQoKVxuXHRzaGFkZWRIZWFkZXIgPSBmYWxzZTtcblxuXHQvKipcblx0ICogd2hlbiBmYWxzZSB3aWxsIGhpZGUgdGhlIGNoZWNrYm94XG5cdCAqL1xuXHRASW5wdXQoKVxuXHRzZWxlY3RhYmxlID0gdHJ1ZTtcblxuXHQvKiogV2hldGhlciB0aGUgb3B0aW9uIGlzIGRpc2FibGVkLiAqL1xuXHRASW5wdXQoKVxuXHRnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIHRoaXMuX2Rpc2FibGVkIHx8IHRoaXMuX2dyb3VwLl9pc0Rpc2FibGVkO1xuXHR9XG5cdHNldCBkaXNhYmxlZCh2YWx1ZTogYm9vbGVhbikge1xuXHRcdHRoaXMuX3NldERpc2FibGVkKGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSkpO1xuXHR9XG5cblx0LyoqIFRoZSB2YWx1ZSBvZiB0aGlzIG9wdGlvbi4gKi9cblx0QElucHV0KClcblx0Z2V0IHZhbHVlKCk6IGFueSB7XG5cdFx0cmV0dXJuIHRoaXMuX3ZhbHVlO1xuXHR9XG5cdHNldCB2YWx1ZSh2YWx1ZTogYW55KSB7XG5cdFx0aWYgKHRoaXMuX3ZhbHVlICE9PSB2YWx1ZSkge1xuXHRcdFx0dGhpcy5fdmFsdWUgPSB2YWx1ZTtcblx0XHRcdHRoaXMuX2NkLm1hcmtGb3JDaGVjaygpO1xuXHRcdH1cblx0fVxuXG5cdC8qKiBXaGV0aGVyIHRoaXMgb3B0aW9uIGlzIGNoZWNrZWQuICovXG5cdEBJbnB1dCgpXG5cdGdldCBjaGVja2VkKCk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiB0aGlzLl9ncm91cC5fc2VsZWN0aW9uLmluY2x1ZGVzKHRoaXMudmFsdWUpO1xuXHR9XG5cdHNldCBjaGVja2VkKHZhbHVlOiBib29sZWFuKSB7XG5cdFx0aWYgKCF0aGlzLl9ncm91cC5fb25Ub3VjaGVkKSB7XG5cdFx0XHRzZXRUaW1lb3V0KCgpID0+IHRoaXMuX3NldENoZWNrZWQodmFsdWUpLCAwKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0dGhpcy5fc2V0Q2hlY2tlZCh2YWx1ZSk7XG5cdFx0fVxuXHR9XG5cblx0LyoqIFRoZW1lIGNvbG9yIG9mIHRoZSByYWRpbyBidXR0b24uICovXG5cdEBJbnB1dCgpXG5cdGdldCBjb2xvcigpOiBUaGVtZVBhbGV0dGUge1xuXHRcdHJldHVybiB0aGlzLl9jb2xvciB8fCB0aGlzLl9ncm91cC5jb2xvcjtcblx0fVxuXHRzZXQgY29sb3IobmV3VmFsdWU6IFRoZW1lUGFsZXR0ZSkge1xuXHRcdHRoaXMuX2NvbG9yID0gbmV3VmFsdWU7XG5cdH1cblxuXHRnZXQgX3NlbGVjdEJ5SGVhZGVyKCk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiB0aGlzLl9ncm91cC5zZWxlY3RCeUhlYWRlcjtcblx0fVxuXG5cdGVtcHR5OiBib29sZWFuID0gdHJ1ZTtcblxuXHRwcml2YXRlIF9jb2xvcjogVGhlbWVQYWxldHRlO1xuXHRwcml2YXRlIF9kaXNhYmxlZCA9IGZhbHNlO1xuXHRwcml2YXRlIF92YWx1ZTogYW55O1xuXG5cdEBWaWV3Q2hpbGQoJ2NvbnRlbnRCb2R5JywgeyBzdGF0aWM6IHRydWUgfSlcblx0cHJpdmF0ZSBfYm9keUNvbnRlbnQ/OiBFbGVtZW50UmVmPGFueT47XG5cblx0QFZpZXdDaGlsZChNYXRSaXBwbGUpXG5cdHByaXZhdGUgX3JpcHBsZT86IE1hdFJpcHBsZTtcblxuXHRjb25zdHJ1Y3RvcihASW5qZWN0KFNFTEVDVElPTl9QQU5FTF9HUk9VUCkgcHJpdmF0ZSBfZ3JvdXA6IFNlbGVjdGlvblBhbmVsSXRlbUdyb3VwLCBwcml2YXRlIF9jZDogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XG5cblx0LyoqIEBpZ25vcmUgKi9cblx0X21hcmtJbnRlcmFjdGVkKCkge1xuXHRcdGlmICh0aGlzLl9ncm91cC5fb25Ub3VjaGVkKSB7XG5cdFx0XHR0aGlzLl9ncm91cC5fb25Ub3VjaGVkKCk7XG5cdFx0fVxuXHR9XG5cblx0LyoqIEBpZ25vcmUgKi9cblx0X25vdGlmeSgpIHtcblx0XHR0aGlzLl9jZC5tYXJrRm9yQ2hlY2soKTtcblx0fVxuXG5cdC8qKiBUb2dnbGUgc2VsZWN0aW9uIHByb2dyYW1tYXRpY2FsbHkgKi9cblx0dG9nZ2xlKCkge1xuXHRcdHRoaXMuY2hlY2tlZCA9ICF0aGlzLmNoZWNrZWQ7XG5cdH1cblxuXHQvKiogQGlnbm9yZSAqL1xuXHRfY29udGVudENsaWNrZWQoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcblx0XHRpZiAoIXRoaXMuX3NlbGVjdEJ5SGVhZGVyICYmIHRoaXMuc2VsZWN0YWJsZSkge1xuXHRcdFx0dGhpcy5fcmlwcGxlPy5sYXVuY2goZXZlbnQuY2xpZW50WCwgZXZlbnQuY2xpZW50WSk7XG5cdFx0XHR0aGlzLnRvZ2dsZSgpO1xuXHRcdH1cblx0fVxuXG5cdC8qKiBAaWdub3JlICovXG5cdGNvbnRlbnRDaGFuZ2VkKCkge1xuXHRcdGNvbnN0IGVsOiBIVE1MRWxlbWVudCA9IHRoaXMuX2JvZHlDb250ZW50Py5uYXRpdmVFbGVtZW50O1xuXHRcdHRoaXMuZW1wdHkgPSAoZWw/LmNoaWxkRWxlbWVudENvdW50IHx8IDApID09PSAwICYmIChlbD8udGV4dENvbnRlbnQgfHwgJycpID09PSAnJztcblx0fVxuXG5cdC8qKiBAaWdub3JlICovXG5cdG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcblx0XHR0aGlzLmNvbnRlbnRDaGFuZ2VkKCk7XG5cdH1cblxuXHQvKiogU2V0cyB0aGUgZGlzYWJsZWQgc3RhdGUgYW5kIG1hcmtzIGZvciBjaGVjayBpZiBhIGNoYW5nZSBvY2N1cnJlZC4gKi9cblx0cHJpdmF0ZSBfc2V0RGlzYWJsZWQodmFsdWU6IGJvb2xlYW4pIHtcblx0XHRpZiAodGhpcy5fZGlzYWJsZWQgIT09IHZhbHVlKSB7XG5cdFx0XHR0aGlzLl9kaXNhYmxlZCA9IHZhbHVlO1xuXHRcdFx0dGhpcy5fY2QubWFya0ZvckNoZWNrKCk7XG5cdFx0fVxuXHR9XG5cblx0cHJpdmF0ZSBfc2V0Q2hlY2tlZCh2YWx1ZTogYm9vbGVhbikge1xuXHRcdGNvbnN0IG5ld0NoZWNrZWRTdGF0ZSA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG5cdFx0Y29uc3Qgb2xkID0gdGhpcy5fZ3JvdXAuX3NlbGVjdGlvbi5pbmNsdWRlcyh0aGlzLnZhbHVlKTtcblx0XHRpZiAob2xkICE9PSBuZXdDaGVja2VkU3RhdGUpIHtcblx0XHRcdGNvbnN0IGNvbnRhaW5lZCA9IHRoaXMuX2dyb3VwLl9zZWxlY3Rpb24uc29tZSh2ID0+IHYgPT09IHRoaXMuX3ZhbHVlKTtcblx0XHRcdGlmIChuZXdDaGVja2VkU3RhdGUgJiYgdGhpcy5fZ3JvdXAgJiYgIWNvbnRhaW5lZCkge1xuXHRcdFx0XHR0aGlzLl9ncm91cC5fc2VsZWN0aW9uID0gWy4uLnRoaXMuX2dyb3VwLl9zZWxlY3Rpb24sIHRoaXMuX3ZhbHVlXTtcblx0XHRcdH0gZWxzZSBpZiAoIW5ld0NoZWNrZWRTdGF0ZSAmJiB0aGlzLl9ncm91cCAmJiBjb250YWluZWQpIHtcblx0XHRcdFx0Ly8gV2hlbiB1bmNoZWNraW5nIHRoZSBzZWxlY3RlZCBpdGVtLCB1cGRhdGUgdGhlIHNlbGVjdGlvblxuXHRcdFx0XHQvLyBwcm9wZXJ0eSBvbiB0aGUgZ3JvdXAuXG5cdFx0XHRcdHRoaXMuX2dyb3VwLl9zZWxlY3Rpb24gPSB0aGlzLl9ncm91cC5fc2VsZWN0aW9uLmZpbHRlcih2ID0+IHYgIT09IHRoaXMuX3ZhbHVlKTtcblx0XHRcdH1cblx0XHRcdHRoaXMuX2NkLm1hcmtGb3JDaGVjaygpO1xuXHRcdH1cblx0fVxufVxuIiwiPGRpdiBjbGFzcz1cImJ1aS1zZWxlY3Rpb24tcGFuZWwtaXRlbS13cmFwcGVyXCI+XG5cdDxkaXZcblx0XHRtYXRSaXBwbGVcblx0XHRtYXRSaXBwbGVDb2xvcj1cInJnYmEoMTI4LDEyOCwxMjgsLjEpXCJcblx0XHRjbGFzcz1cImJ1aS1yaXBwbGVcIlxuXHRcdCpuZ0lmPVwiIWRpc2FibGVkXCJcblx0XHRbbWF0UmlwcGxlVHJpZ2dlcl09XCJ0b2dnbGVUcmlnZ2VyXCJcblx0XHQjcmlwcGxlPVwibWF0UmlwcGxlXCJcblx0XHRbbWF0UmlwcGxlRGlzYWJsZWRdPVwiIXNlbGVjdGFibGVcIlxuXHQ+PC9kaXY+XG5cdDxkaXZcblx0XHRjbGFzcz1cImJ1aS1zZWxlY3Rpb24tcGFuZWwtaXRlbS1oZWFkZXJcIlxuXHRcdFtuZ0NsYXNzXT1cInsgJ2J1aS1zaGFkZWQnOiBzaGFkZWRIZWFkZXIsICdidWktZW1wdHknOiBlbXB0eSB9XCJcblx0XHQjdG9nZ2xlVHJpZ2dlclxuXHQ+XG5cdFx0PGRpdlxuXHRcdFx0Km5nSWY9XCJzaGFkZWRIZWFkZXJcIlxuXHRcdFx0Y2xhc3M9XCJidWktc2VsZWN0aW9uLXBhbmVsLWl0ZW0taGVhZGVyLXVuZGVybGF5XCJcblx0XHRcdFtuZ0NsYXNzXT1cInsgJ2J1aS1ub3QtZW1wdHknOiAhZW1wdHkgfVwiXG5cdFx0PjwvZGl2PlxuXHRcdDxkaXYgY2xhc3M9XCJidWktc2VsZWN0aW9uLXBhbmVsLWl0ZW0taGVhZGVyLWNvbnRhaW5lclwiPlxuXHRcdFx0PG1hdC1jaGVja2JveFxuXHRcdFx0XHQqbmdJZj1cInNlbGVjdGFibGU7IGVsc2Ugbm9zZWxlY3RhYmxlXCJcblx0XHRcdFx0WyhuZ01vZGVsKV09XCJjaGVja2VkXCJcblx0XHRcdFx0W2NvbG9yXT1cImNvbG9yXCJcblx0XHRcdFx0W2Rpc2FibGVkXT1cImRpc2FibGVkXCJcblx0XHRcdFx0KGNoYW5nZSk9XCJfbWFya0ludGVyYWN0ZWQoKVwiXG5cdFx0XHRcdHN0eWxlPVwiZmxleC1ncm93OiAxXCJcblx0XHRcdD5cblx0XHRcdFx0PGRpdiBjbGFzcz1cImJ1aS1zZWxlY3Rpb24tcGFuZWwtaXRlbS10aXRsZVwiIFtpbm5lckhUTUxdPVwidGl0bGVcIj48L2Rpdj5cblx0XHRcdDwvbWF0LWNoZWNrYm94PlxuXHRcdFx0PG5nLXRlbXBsYXRlICNub3NlbGVjdGFibGU+XG5cdFx0XHRcdDxkaXYgc3R5bGU9XCJmbGV4LWdyb3c6IDFcIiBjbGFzcz1cImJ1aS1zZWxlY3Rpb24tcGFuZWwtaXRlbS10aXRsZVwiIFtpbm5lckhUTUxdPVwidGl0bGVcIj48L2Rpdj5cblx0XHRcdDwvbmctdGVtcGxhdGU+XG5cdFx0XHQ8bmctY29udGVudCBzZWxlY3Q9XCJbYnVpU2VsZWN0aW9uSXRlbUhlYWRpbmdFbmRdXCI+PC9uZy1jb250ZW50PlxuXHRcdDwvZGl2PlxuXHRcdDxuZy1jb250ZW50IHNlbGVjdD1cIltidWlTZWxlY3Rpb25JdGVtU3VidGl0bGVdXCI+PC9uZy1jb250ZW50PlxuXHQ8L2Rpdj5cblx0PGRpdlxuXHRcdCNjb250ZW50Qm9keVxuXHRcdGNsYXNzPVwiYnVpLXNlbGVjdGlvbi1wYW5lbC1pdGVtLWNvbnRlbnRcIlxuXHRcdFtjbGFzcy5idWktc2VsZWN0YWJsZV09XCIhX3NlbGVjdEJ5SGVhZGVyXCJcblx0XHQoY2xpY2spPVwiX2NvbnRlbnRDbGlja2VkKCRldmVudClcIlxuXHRcdChjZGtPYnNlcnZlQ29udGVudCk9XCJjb250ZW50Q2hhbmdlZCgpXCJcblx0PlxuXHRcdDxuZy1jb250ZW50PjwvbmctY29udGVudD5cblx0PC9kaXY+XG5cdDxkaXYgY2xhc3M9XCJidWktc2VsZWN0aW9uLXBhbmVsLWl0ZW0tYm90dG9tXCI+PC9kaXY+XG48L2Rpdj5cbiJdfQ==