@impartner/design-components 3.0.2 → 4.0.1

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 (442) hide show
  1. package/README.md +9 -8
  2. package/fesm2022/impartner-design-components.mjs +1668 -972
  3. package/fesm2022/impartner-design-components.mjs.map +1 -1
  4. package/index.d.ts +3634 -3
  5. package/package.json +9 -12
  6. package/constants/fontawesome-icons.d.ts +0 -6
  7. package/constants/index.d.ts +0 -1
  8. package/esm2022/constants/fontawesome-icons.mjs +0 -3012
  9. package/esm2022/constants/index.mjs +0 -2
  10. package/esm2022/impartner-design-components.mjs +0 -5
  11. package/esm2022/lib/alert/alert.component.mjs +0 -106
  12. package/esm2022/lib/alert/alert.module.mjs +0 -19
  13. package/esm2022/lib/alert/index.mjs +0 -4
  14. package/esm2022/lib/alert/theme/alert-theme.mjs +0 -2
  15. package/esm2022/lib/alert/theme/index.mjs +0 -2
  16. package/esm2022/lib/avatar/avatar.component.mjs +0 -48
  17. package/esm2022/lib/avatar/avatar.module.mjs +0 -19
  18. package/esm2022/lib/avatar/index.mjs +0 -3
  19. package/esm2022/lib/avatar-group/avatar-group.component.mjs +0 -16
  20. package/esm2022/lib/avatar-group/avatar-group.module.mjs +0 -19
  21. package/esm2022/lib/avatar-group/index.mjs +0 -3
  22. package/esm2022/lib/backdrop/backdrop.component.mjs +0 -52
  23. package/esm2022/lib/backdrop/backdrop.module.mjs +0 -19
  24. package/esm2022/lib/backdrop/index.mjs +0 -3
  25. package/esm2022/lib/badge/badge.component.mjs +0 -121
  26. package/esm2022/lib/badge/badge.module.mjs +0 -20
  27. package/esm2022/lib/badge/index.mjs +0 -4
  28. package/esm2022/lib/badge/types/badge-icon.mjs +0 -2
  29. package/esm2022/lib/badge/types/badge-size.mjs +0 -7
  30. package/esm2022/lib/badge/types/index.mjs +0 -2
  31. package/esm2022/lib/branding/branded.directive.mjs +0 -19
  32. package/esm2022/lib/branding/branding.module.mjs +0 -19
  33. package/esm2022/lib/branding/index.mjs +0 -3
  34. package/esm2022/lib/breadcrumb/breadcrumb-item.component.mjs +0 -25
  35. package/esm2022/lib/breadcrumb/breadcrumb.component.mjs +0 -37
  36. package/esm2022/lib/breadcrumb/breadcrumb.module.mjs +0 -19
  37. package/esm2022/lib/breadcrumb/index.mjs +0 -4
  38. package/esm2022/lib/button/button.component.mjs +0 -116
  39. package/esm2022/lib/button/button.module.mjs +0 -21
  40. package/esm2022/lib/button/index.mjs +0 -4
  41. package/esm2022/lib/button/themes/button-theme.mjs +0 -2
  42. package/esm2022/lib/button/themes/index.mjs +0 -2
  43. package/esm2022/lib/button-group/button-group.component.mjs +0 -52
  44. package/esm2022/lib/button-group/button-group.module.mjs +0 -20
  45. package/esm2022/lib/button-group/index.mjs +0 -3
  46. package/esm2022/lib/card-heading/card-heading.component.mjs +0 -30
  47. package/esm2022/lib/card-heading/card-heading.module.mjs +0 -19
  48. package/esm2022/lib/card-heading/index.mjs +0 -3
  49. package/esm2022/lib/data-card/data-card.component.mjs +0 -123
  50. package/esm2022/lib/data-card/data-card.module.mjs +0 -21
  51. package/esm2022/lib/data-card/index.mjs +0 -3
  52. package/esm2022/lib/datetime-picker/components/datepicker-nav/datepicker-nav.component.mjs +0 -105
  53. package/esm2022/lib/datetime-picker/components/datepicker-nav/index.mjs +0 -2
  54. package/esm2022/lib/datetime-picker/components/datepicker-template-host/datepicker-template-host.component.mjs +0 -33
  55. package/esm2022/lib/datetime-picker/components/datepicker-template-host/index.mjs +0 -2
  56. package/esm2022/lib/datetime-picker/components/datetime-picker/datetime-picker.component.mjs +0 -369
  57. package/esm2022/lib/datetime-picker/components/datetime-picker/index.mjs +0 -2
  58. package/esm2022/lib/datetime-picker/components/datetime-picker-input/datetime-picker-input.component.mjs +0 -367
  59. package/esm2022/lib/datetime-picker/components/datetime-picker-input/index.mjs +0 -2
  60. package/esm2022/lib/datetime-picker/components/datetime-picker-input-footer/datetime-picker-input-footer.component.mjs +0 -68
  61. package/esm2022/lib/datetime-picker/components/datetime-picker-input-footer/index.mjs +0 -2
  62. package/esm2022/lib/datetime-picker/components/index.mjs +0 -6
  63. package/esm2022/lib/datetime-picker/constants/datetime-picker-defaults.mjs +0 -12
  64. package/esm2022/lib/datetime-picker/constants/index.mjs +0 -2
  65. package/esm2022/lib/datetime-picker/datetime-picker.module.mjs +0 -22
  66. package/esm2022/lib/datetime-picker/index.mjs +0 -4
  67. package/esm2022/lib/datetime-picker/services/datetime-formatter/datetime-formatter.service.mjs +0 -40
  68. package/esm2022/lib/datetime-picker/services/datetime-formatter/index.mjs +0 -2
  69. package/esm2022/lib/datetime-picker/services/index.mjs +0 -2
  70. package/esm2022/lib/datetime-picker/types/datetime-picker-value.interface.mjs +0 -2
  71. package/esm2022/lib/datetime-picker/types/index.mjs +0 -2
  72. package/esm2022/lib/design-components.module.mjs +0 -132
  73. package/esm2022/lib/dropdown/components/dropdown-item/dropdown-item.component.mjs +0 -22
  74. package/esm2022/lib/dropdown/components/index.mjs +0 -2
  75. package/esm2022/lib/dropdown/dropdown.component.mjs +0 -143
  76. package/esm2022/lib/dropdown/dropdown.module.mjs +0 -21
  77. package/esm2022/lib/dropdown/index.mjs +0 -5
  78. package/esm2022/lib/dropdown/types/dropdown-position.mjs +0 -2
  79. package/esm2022/lib/dropdown/types/index.mjs +0 -2
  80. package/esm2022/lib/file-upload/directives/file-drop.directive.mjs +0 -50
  81. package/esm2022/lib/file-upload/directives/index.mjs +0 -2
  82. package/esm2022/lib/file-upload/file-upload.component.mjs +0 -335
  83. package/esm2022/lib/file-upload/file-upload.module.mjs +0 -38
  84. package/esm2022/lib/file-upload/index.mjs +0 -5
  85. package/esm2022/lib/file-upload/pipes/human-readable-byte-size.pipe.mjs +0 -23
  86. package/esm2022/lib/file-upload/pipes/index.mjs +0 -2
  87. package/esm2022/lib/form-field/component/directives/corner-hint.directive.mjs +0 -15
  88. package/esm2022/lib/form-field/component/directives/error.directive.mjs +0 -27
  89. package/esm2022/lib/form-field/component/directives/form-root.directive.mjs +0 -93
  90. package/esm2022/lib/form-field/component/directives/hint.directive.mjs +0 -25
  91. package/esm2022/lib/form-field/component/directives/index.mjs +0 -25
  92. package/esm2022/lib/form-field/component/directives/label.directive.mjs +0 -15
  93. package/esm2022/lib/form-field/component/directives/prefix.directive.mjs +0 -25
  94. package/esm2022/lib/form-field/component/directives/suffix.directive.mjs +0 -25
  95. package/esm2022/lib/form-field/component/form-field.component.mjs +0 -131
  96. package/esm2022/lib/form-field/component/form-field.module.mjs +0 -24
  97. package/esm2022/lib/form-field/component/index.mjs +0 -4
  98. package/esm2022/lib/form-field/controls/checkbox/checkbox.component.mjs +0 -345
  99. package/esm2022/lib/form-field/controls/checkbox/checkbox.module.mjs +0 -16
  100. package/esm2022/lib/form-field/controls/checkbox/index.mjs +0 -3
  101. package/esm2022/lib/form-field/controls/index.mjs +0 -6
  102. package/esm2022/lib/form-field/controls/input/index.mjs +0 -2
  103. package/esm2022/lib/form-field/controls/input/input.directive.mjs +0 -234
  104. package/esm2022/lib/form-field/controls/radio/index.mjs +0 -6
  105. package/esm2022/lib/form-field/controls/radio/injection-tokens.mjs +0 -4
  106. package/esm2022/lib/form-field/controls/radio/interfaces/index.mjs +0 -4
  107. package/esm2022/lib/form-field/controls/radio/interfaces/radio-button.interface.mjs +0 -2
  108. package/esm2022/lib/form-field/controls/radio/interfaces/radio-change-event.interface.mjs +0 -11
  109. package/esm2022/lib/form-field/controls/radio/interfaces/radio-group.interface.mjs +0 -2
  110. package/esm2022/lib/form-field/controls/radio/radio-button/radio-button.component.mjs +0 -262
  111. package/esm2022/lib/form-field/controls/radio/radio-group/radio-group.directive.mjs +0 -290
  112. package/esm2022/lib/form-field/controls/radio/radio.module.mjs +0 -17
  113. package/esm2022/lib/form-field/controls/select/index.mjs +0 -9
  114. package/esm2022/lib/form-field/controls/select/interfaces/index.mjs +0 -2
  115. package/esm2022/lib/form-field/controls/select/interfaces/select-option.interface.mjs +0 -2
  116. package/esm2022/lib/form-field/controls/select/option/index.mjs +0 -2
  117. package/esm2022/lib/form-field/controls/select/option/select-option.component.mjs +0 -44
  118. package/esm2022/lib/form-field/controls/select/option-display/index.mjs +0 -2
  119. package/esm2022/lib/form-field/controls/select/option-display/select-option-display.component.mjs +0 -162
  120. package/esm2022/lib/form-field/controls/select/option-group/index.mjs +0 -2
  121. package/esm2022/lib/form-field/controls/select/option-group/select-option-group.component.mjs +0 -35
  122. package/esm2022/lib/form-field/controls/select/option-parent.mjs +0 -4
  123. package/esm2022/lib/form-field/controls/select/select-model.mjs +0 -150
  124. package/esm2022/lib/form-field/controls/select/select.component.mjs +0 -725
  125. package/esm2022/lib/form-field/controls/select/select.module.mjs +0 -37
  126. package/esm2022/lib/form-field/controls/select/value-tags-display/index.mjs +0 -2
  127. package/esm2022/lib/form-field/controls/select/value-tags-display/select-value-tags-display.component.mjs +0 -91
  128. package/esm2022/lib/form-field/controls/shared/index.mjs +0 -2
  129. package/esm2022/lib/form-field/controls/shared/toggle/components/index.mjs +0 -2
  130. package/esm2022/lib/form-field/controls/shared/toggle/components/toggle-input/toggle-input.component.mjs +0 -17
  131. package/esm2022/lib/form-field/controls/shared/toggle/index.mjs +0 -4
  132. package/esm2022/lib/form-field/controls/shared/toggle/toggle.component.mjs +0 -112
  133. package/esm2022/lib/form-field/controls/shared/toggle/toggle.module.mjs +0 -18
  134. package/esm2022/lib/form-field/controls/tag-select/index.mjs +0 -2
  135. package/esm2022/lib/form-field/controls/tag-select/tag-select.component.mjs +0 -146
  136. package/esm2022/lib/form-field/form-field-errors.mjs +0 -5
  137. package/esm2022/lib/form-field/impdc-forms.mjs +0 -7
  138. package/esm2022/lib/form-field/impdc-forms.module.mjs +0 -53
  139. package/esm2022/lib/form-field/index.mjs +0 -2
  140. package/esm2022/lib/form-field/services/error-state-matcher.service.mjs +0 -28
  141. package/esm2022/lib/form-field/services/index.mjs +0 -3
  142. package/esm2022/lib/form-field/services/unique-selection-dispatcher.service.mjs +0 -48
  143. package/esm2022/lib/form-field/shared/constructors.type.mjs +0 -2
  144. package/esm2022/lib/form-field/shared/disabled.mixin.mjs +0 -15
  145. package/esm2022/lib/form-field/shared/error-state.mixin.mjs +0 -24
  146. package/esm2022/lib/form-field/shared/form-field-control.mjs +0 -10
  147. package/esm2022/lib/form-field/shared/index.mjs +0 -5
  148. package/esm2022/lib/form-field/shared/tab-index.mixin.mjs +0 -19
  149. package/esm2022/lib/icon/icon.component.mjs +0 -83
  150. package/esm2022/lib/icon/icon.module.mjs +0 -19
  151. package/esm2022/lib/icon/index.mjs +0 -3
  152. package/esm2022/lib/index.mjs +0 -29
  153. package/esm2022/lib/modal/index.mjs +0 -4
  154. package/esm2022/lib/modal/modal.component.mjs +0 -266
  155. package/esm2022/lib/modal/modal.module.mjs +0 -37
  156. package/esm2022/lib/modal/types/index.mjs +0 -3
  157. package/esm2022/lib/modal/types/modal-component-sizes.mjs +0 -9
  158. package/esm2022/lib/modal/types/modal-theme.mjs +0 -12
  159. package/esm2022/lib/pagination/index.mjs +0 -3
  160. package/esm2022/lib/pagination/pagination.component.mjs +0 -176
  161. package/esm2022/lib/pagination/pagination.module.mjs +0 -41
  162. package/esm2022/lib/progress-bar/index.mjs +0 -3
  163. package/esm2022/lib/progress-bar/progress-bar.component.mjs +0 -51
  164. package/esm2022/lib/progress-bar/progress-bar.module.mjs +0 -18
  165. package/esm2022/lib/scrollable/index.mjs +0 -3
  166. package/esm2022/lib/scrollable/scrollable.component.mjs +0 -187
  167. package/esm2022/lib/scrollable/scrollable.module.mjs +0 -22
  168. package/esm2022/lib/select-icon/index.mjs +0 -3
  169. package/esm2022/lib/select-icon/select-icon.component.mjs +0 -308
  170. package/esm2022/lib/select-icon/select-icon.module.mjs +0 -39
  171. package/esm2022/lib/size-detection/directive/element-size.interface.mjs +0 -2
  172. package/esm2022/lib/size-detection/directive/index.mjs +0 -3
  173. package/esm2022/lib/size-detection/directive/size-detector.directive.mjs +0 -43
  174. package/esm2022/lib/size-detection/index.mjs +0 -3
  175. package/esm2022/lib/size-detection/size-detection.module.mjs +0 -18
  176. package/esm2022/lib/spinner/index.mjs +0 -3
  177. package/esm2022/lib/spinner/spinner.component.mjs +0 -24
  178. package/esm2022/lib/spinner/spinner.module.mjs +0 -18
  179. package/esm2022/lib/table/components/bulk-actions/bulk-actions.component.mjs +0 -16
  180. package/esm2022/lib/table/components/column-heading/column-heading.component.mjs +0 -38
  181. package/esm2022/lib/table/components/index.mjs +0 -4
  182. package/esm2022/lib/table/components/row-actions/row-actions.component.mjs +0 -61
  183. package/esm2022/lib/table/constants/index.mjs +0 -3
  184. package/esm2022/lib/table/constants/public-table.constants.mjs +0 -2
  185. package/esm2022/lib/table/constants/table.constants.mjs +0 -23
  186. package/esm2022/lib/table/containers/index.mjs +0 -2
  187. package/esm2022/lib/table/containers/table.component.mjs +0 -474
  188. package/esm2022/lib/table/directives/collapse-monitor.directive.mjs +0 -42
  189. package/esm2022/lib/table/directives/index.mjs +0 -4
  190. package/esm2022/lib/table/directives/table-inject-component.directive.mjs +0 -46
  191. package/esm2022/lib/table/directives/table.directive.mjs +0 -55
  192. package/esm2022/lib/table/enumerations/index.mjs +0 -2
  193. package/esm2022/lib/table/enumerations/table-column-type.mjs +0 -21
  194. package/esm2022/lib/table/helpers/index.mjs +0 -2
  195. package/esm2022/lib/table/helpers/table-theme.helper.mjs +0 -31
  196. package/esm2022/lib/table/index.mjs +0 -8
  197. package/esm2022/lib/table/interfaces/cell-renderer.interface.mjs +0 -2
  198. package/esm2022/lib/table/interfaces/collapsible-row-content-context.interface.mjs +0 -2
  199. package/esm2022/lib/table/interfaces/custom-cell-renderer-components.type.mjs +0 -2
  200. package/esm2022/lib/table/interfaces/index.mjs +0 -13
  201. package/esm2022/lib/table/interfaces/sort-by-payload.interface.mjs +0 -2
  202. package/esm2022/lib/table/interfaces/table-cell-option.interface.mjs +0 -2
  203. package/esm2022/lib/table/interfaces/table-column-defs.type.mjs +0 -2
  204. package/esm2022/lib/table/interfaces/table-event-payload.interface.mjs +0 -2
  205. package/esm2022/lib/table/interfaces/table-row-action-payload.interface.mjs +0 -2
  206. package/esm2022/lib/table/interfaces/table-row-action.interface.mjs +0 -2
  207. package/esm2022/lib/table/interfaces/table-row-collapse-change.interface.mjs +0 -2
  208. package/esm2022/lib/table/interfaces/table-row-item.interface.mjs +0 -2
  209. package/esm2022/lib/table/table.module.mjs +0 -101
  210. package/esm2022/lib/tag/index.mjs +0 -2
  211. package/esm2022/lib/tag/tag.component.mjs +0 -104
  212. package/esm2022/lib/text-highlight/index.mjs +0 -3
  213. package/esm2022/lib/text-highlight/text-highlight.component.mjs +0 -101
  214. package/esm2022/lib/text-highlight/text-highlight.module.mjs +0 -17
  215. package/esm2022/public-api.mjs +0 -9
  216. package/esm2022/services/index.mjs +0 -2
  217. package/esm2022/services/interaction.service.mjs +0 -88
  218. package/esm2022/types/component-size.mjs +0 -12
  219. package/esm2022/types/component-theme.mjs +0 -22
  220. package/esm2022/types/index.mjs +0 -3
  221. package/esm2022/utilities/boolean-props.mjs +0 -7
  222. package/esm2022/utilities/dc.mjs +0 -9
  223. package/esm2022/utilities/index.mjs +0 -6
  224. package/esm2022/utilities/lc.mjs +0 -9
  225. package/esm2022/utilities/number-props.mjs +0 -18
  226. package/esm2022/utilities/sanitize.mjs +0 -7
  227. package/lib/alert/alert.component.d.ts +0 -50
  228. package/lib/alert/alert.module.d.ts +0 -9
  229. package/lib/alert/index.d.ts +0 -3
  230. package/lib/alert/theme/alert-theme.d.ts +0 -1
  231. package/lib/alert/theme/index.d.ts +0 -1
  232. package/lib/avatar/avatar.component.d.ts +0 -28
  233. package/lib/avatar/avatar.module.d.ts +0 -9
  234. package/lib/avatar/index.d.ts +0 -2
  235. package/lib/avatar-group/avatar-group.component.d.ts +0 -10
  236. package/lib/avatar-group/avatar-group.module.d.ts +0 -9
  237. package/lib/avatar-group/index.d.ts +0 -2
  238. package/lib/backdrop/backdrop.component.d.ts +0 -24
  239. package/lib/backdrop/backdrop.module.d.ts +0 -9
  240. package/lib/backdrop/index.d.ts +0 -2
  241. package/lib/badge/badge.component.d.ts +0 -63
  242. package/lib/badge/badge.module.d.ts +0 -10
  243. package/lib/badge/index.d.ts +0 -3
  244. package/lib/badge/types/badge-icon.d.ts +0 -1
  245. package/lib/badge/types/badge-size.d.ts +0 -6
  246. package/lib/badge/types/index.d.ts +0 -2
  247. package/lib/branding/branded.directive.d.ts +0 -6
  248. package/lib/branding/branding.module.d.ts +0 -9
  249. package/lib/branding/index.d.ts +0 -2
  250. package/lib/breadcrumb/breadcrumb-item.component.d.ts +0 -7
  251. package/lib/breadcrumb/breadcrumb.component.d.ts +0 -21
  252. package/lib/breadcrumb/breadcrumb.module.d.ts +0 -9
  253. package/lib/breadcrumb/index.d.ts +0 -3
  254. package/lib/button/button.component.d.ts +0 -47
  255. package/lib/button/button.module.d.ts +0 -11
  256. package/lib/button/index.d.ts +0 -3
  257. package/lib/button/themes/button-theme.d.ts +0 -1
  258. package/lib/button/themes/index.d.ts +0 -1
  259. package/lib/button-group/button-group.component.d.ts +0 -22
  260. package/lib/button-group/button-group.module.d.ts +0 -10
  261. package/lib/button-group/index.d.ts +0 -2
  262. package/lib/card-heading/card-heading.component.d.ts +0 -18
  263. package/lib/card-heading/card-heading.module.d.ts +0 -9
  264. package/lib/card-heading/index.d.ts +0 -2
  265. package/lib/data-card/data-card.component.d.ts +0 -68
  266. package/lib/data-card/data-card.module.d.ts +0 -11
  267. package/lib/data-card/index.d.ts +0 -2
  268. package/lib/datetime-picker/components/datepicker-nav/datepicker-nav.component.d.ts +0 -31
  269. package/lib/datetime-picker/components/datepicker-nav/index.d.ts +0 -1
  270. package/lib/datetime-picker/components/datepicker-template-host/datepicker-template-host.component.d.ts +0 -15
  271. package/lib/datetime-picker/components/datepicker-template-host/index.d.ts +0 -1
  272. package/lib/datetime-picker/components/datetime-picker/datetime-picker.component.d.ts +0 -155
  273. package/lib/datetime-picker/components/datetime-picker/index.d.ts +0 -1
  274. package/lib/datetime-picker/components/datetime-picker-input/datetime-picker-input.component.d.ts +0 -160
  275. package/lib/datetime-picker/components/datetime-picker-input/index.d.ts +0 -1
  276. package/lib/datetime-picker/components/datetime-picker-input-footer/datetime-picker-input-footer.component.d.ts +0 -24
  277. package/lib/datetime-picker/components/datetime-picker-input-footer/index.d.ts +0 -1
  278. package/lib/datetime-picker/components/index.d.ts +0 -5
  279. package/lib/datetime-picker/constants/datetime-picker-defaults.d.ts +0 -4
  280. package/lib/datetime-picker/constants/index.d.ts +0 -1
  281. package/lib/datetime-picker/datetime-picker.module.d.ts +0 -8
  282. package/lib/datetime-picker/index.d.ts +0 -4
  283. package/lib/datetime-picker/services/datetime-formatter/datetime-formatter.service.d.ts +0 -20
  284. package/lib/datetime-picker/services/datetime-formatter/index.d.ts +0 -1
  285. package/lib/datetime-picker/services/index.d.ts +0 -1
  286. package/lib/datetime-picker/types/datetime-picker-value.interface.d.ts +0 -5
  287. package/lib/datetime-picker/types/index.d.ts +0 -1
  288. package/lib/design-components.module.d.ts +0 -24
  289. package/lib/dropdown/components/dropdown-item/dropdown-item.component.d.ts +0 -11
  290. package/lib/dropdown/components/index.d.ts +0 -1
  291. package/lib/dropdown/dropdown.component.d.ts +0 -67
  292. package/lib/dropdown/dropdown.module.d.ts +0 -11
  293. package/lib/dropdown/index.d.ts +0 -4
  294. package/lib/dropdown/types/dropdown-position.d.ts +0 -1
  295. package/lib/dropdown/types/index.d.ts +0 -1
  296. package/lib/file-upload/directives/file-drop.directive.d.ts +0 -11
  297. package/lib/file-upload/directives/index.d.ts +0 -1
  298. package/lib/file-upload/file-upload.component.d.ts +0 -105
  299. package/lib/file-upload/file-upload.module.d.ts +0 -14
  300. package/lib/file-upload/index.d.ts +0 -4
  301. package/lib/file-upload/pipes/human-readable-byte-size.pipe.d.ts +0 -7
  302. package/lib/file-upload/pipes/index.d.ts +0 -1
  303. package/lib/form-field/component/directives/corner-hint.directive.d.ts +0 -5
  304. package/lib/form-field/component/directives/error.directive.d.ts +0 -8
  305. package/lib/form-field/component/directives/form-root.directive.d.ts +0 -26
  306. package/lib/form-field/component/directives/hint.directive.d.ts +0 -6
  307. package/lib/form-field/component/directives/index.d.ts +0 -15
  308. package/lib/form-field/component/directives/label.directive.d.ts +0 -5
  309. package/lib/form-field/component/directives/prefix.directive.d.ts +0 -9
  310. package/lib/form-field/component/directives/suffix.directive.d.ts +0 -9
  311. package/lib/form-field/component/form-field.component.d.ts +0 -37
  312. package/lib/form-field/component/form-field.module.d.ts +0 -14
  313. package/lib/form-field/component/index.d.ts +0 -3
  314. package/lib/form-field/controls/checkbox/checkbox.component.d.ts +0 -137
  315. package/lib/form-field/controls/checkbox/checkbox.module.d.ts +0 -7
  316. package/lib/form-field/controls/checkbox/index.d.ts +0 -2
  317. package/lib/form-field/controls/index.d.ts +0 -5
  318. package/lib/form-field/controls/input/index.d.ts +0 -1
  319. package/lib/form-field/controls/input/input.directive.d.ts +0 -84
  320. package/lib/form-field/controls/radio/index.d.ts +0 -5
  321. package/lib/form-field/controls/radio/injection-tokens.d.ts +0 -4
  322. package/lib/form-field/controls/radio/interfaces/index.d.ts +0 -3
  323. package/lib/form-field/controls/radio/interfaces/radio-button.interface.d.ts +0 -6
  324. package/lib/form-field/controls/radio/interfaces/radio-change-event.interface.d.ts +0 -12
  325. package/lib/form-field/controls/radio/interfaces/radio-group.interface.d.ts +0 -13
  326. package/lib/form-field/controls/radio/radio-button/radio-button.component.d.ts +0 -98
  327. package/lib/form-field/controls/radio/radio-group/radio-group.directive.d.ts +0 -104
  328. package/lib/form-field/controls/radio/radio.module.d.ts +0 -8
  329. package/lib/form-field/controls/select/index.d.ts +0 -9
  330. package/lib/form-field/controls/select/interfaces/index.d.ts +0 -1
  331. package/lib/form-field/controls/select/interfaces/select-option.interface.d.ts +0 -6
  332. package/lib/form-field/controls/select/option/index.d.ts +0 -1
  333. package/lib/form-field/controls/select/option/select-option.component.d.ts +0 -21
  334. package/lib/form-field/controls/select/option-display/index.d.ts +0 -1
  335. package/lib/form-field/controls/select/option-display/select-option-display.component.d.ts +0 -64
  336. package/lib/form-field/controls/select/option-group/index.d.ts +0 -1
  337. package/lib/form-field/controls/select/option-group/select-option-group.component.d.ts +0 -11
  338. package/lib/form-field/controls/select/option-parent.d.ts +0 -16
  339. package/lib/form-field/controls/select/select-model.d.ts +0 -36
  340. package/lib/form-field/controls/select/select.component.d.ts +0 -232
  341. package/lib/form-field/controls/select/select.module.d.ts +0 -10
  342. package/lib/form-field/controls/select/value-tags-display/index.d.ts +0 -1
  343. package/lib/form-field/controls/select/value-tags-display/select-value-tags-display.component.d.ts +0 -46
  344. package/lib/form-field/controls/shared/index.d.ts +0 -1
  345. package/lib/form-field/controls/shared/toggle/components/index.d.ts +0 -1
  346. package/lib/form-field/controls/shared/toggle/components/toggle-input/toggle-input.component.d.ts +0 -6
  347. package/lib/form-field/controls/shared/toggle/index.d.ts +0 -3
  348. package/lib/form-field/controls/shared/toggle/toggle.component.d.ts +0 -29
  349. package/lib/form-field/controls/shared/toggle/toggle.module.d.ts +0 -9
  350. package/lib/form-field/controls/tag-select/index.d.ts +0 -1
  351. package/lib/form-field/controls/tag-select/tag-select.component.d.ts +0 -43
  352. package/lib/form-field/form-field-errors.d.ts +0 -2
  353. package/lib/form-field/impdc-forms.d.ts +0 -6
  354. package/lib/form-field/impdc-forms.module.d.ts +0 -13
  355. package/lib/form-field/index.d.ts +0 -1
  356. package/lib/form-field/services/error-state-matcher.service.d.ts +0 -12
  357. package/lib/form-field/services/index.d.ts +0 -2
  358. package/lib/form-field/services/unique-selection-dispatcher.service.d.ts +0 -29
  359. package/lib/form-field/shared/constructors.type.d.ts +0 -7
  360. package/lib/form-field/shared/disabled.mixin.d.ts +0 -10
  361. package/lib/form-field/shared/error-state.mixin.d.ts +0 -31
  362. package/lib/form-field/shared/form-field-control.d.ts +0 -24
  363. package/lib/form-field/shared/index.d.ts +0 -5
  364. package/lib/form-field/shared/tab-index.mixin.d.ts +0 -13
  365. package/lib/icon/icon.component.d.ts +0 -36
  366. package/lib/icon/icon.module.d.ts +0 -9
  367. package/lib/icon/index.d.ts +0 -2
  368. package/lib/index.d.ts +0 -28
  369. package/lib/modal/index.d.ts +0 -3
  370. package/lib/modal/modal.component.d.ts +0 -116
  371. package/lib/modal/modal.module.d.ts +0 -13
  372. package/lib/modal/types/index.d.ts +0 -2
  373. package/lib/modal/types/modal-component-sizes.d.ts +0 -3
  374. package/lib/modal/types/modal-theme.d.ts +0 -7
  375. package/lib/pagination/index.d.ts +0 -2
  376. package/lib/pagination/pagination.component.d.ts +0 -58
  377. package/lib/pagination/pagination.module.d.ts +0 -14
  378. package/lib/progress-bar/index.d.ts +0 -2
  379. package/lib/progress-bar/progress-bar.component.d.ts +0 -31
  380. package/lib/progress-bar/progress-bar.module.d.ts +0 -8
  381. package/lib/scrollable/index.d.ts +0 -2
  382. package/lib/scrollable/scrollable.component.d.ts +0 -41
  383. package/lib/scrollable/scrollable.module.d.ts +0 -12
  384. package/lib/select-icon/index.d.ts +0 -2
  385. package/lib/select-icon/select-icon.component.d.ts +0 -123
  386. package/lib/select-icon/select-icon.module.d.ts +0 -12
  387. package/lib/size-detection/directive/element-size.interface.d.ts +0 -4
  388. package/lib/size-detection/directive/index.d.ts +0 -2
  389. package/lib/size-detection/directive/size-detector.directive.d.ts +0 -14
  390. package/lib/size-detection/index.d.ts +0 -3
  391. package/lib/size-detection/size-detection.module.d.ts +0 -8
  392. package/lib/spinner/index.d.ts +0 -2
  393. package/lib/spinner/spinner.component.d.ts +0 -13
  394. package/lib/spinner/spinner.module.d.ts +0 -8
  395. package/lib/table/components/bulk-actions/bulk-actions.component.d.ts +0 -10
  396. package/lib/table/components/column-heading/column-heading.component.d.ts +0 -14
  397. package/lib/table/components/index.d.ts +0 -3
  398. package/lib/table/components/row-actions/row-actions.component.d.ts +0 -21
  399. package/lib/table/constants/index.d.ts +0 -2
  400. package/lib/table/constants/public-table.constants.d.ts +0 -1
  401. package/lib/table/constants/table.constants.d.ts +0 -9
  402. package/lib/table/containers/index.d.ts +0 -1
  403. package/lib/table/containers/table.component.d.ts +0 -178
  404. package/lib/table/directives/collapse-monitor.directive.d.ts +0 -12
  405. package/lib/table/directives/index.d.ts +0 -3
  406. package/lib/table/directives/table-inject-component.directive.d.ts +0 -16
  407. package/lib/table/directives/table.directive.d.ts +0 -23
  408. package/lib/table/enumerations/index.d.ts +0 -1
  409. package/lib/table/enumerations/table-column-type.d.ts +0 -19
  410. package/lib/table/helpers/index.d.ts +0 -1
  411. package/lib/table/helpers/table-theme.helper.d.ts +0 -7
  412. package/lib/table/index.d.ts +0 -7
  413. package/lib/table/interfaces/cell-renderer.interface.d.ts +0 -13
  414. package/lib/table/interfaces/collapsible-row-content-context.interface.d.ts +0 -39
  415. package/lib/table/interfaces/custom-cell-renderer-components.type.d.ts +0 -3
  416. package/lib/table/interfaces/index.d.ts +0 -12
  417. package/lib/table/interfaces/sort-by-payload.interface.d.ts +0 -11
  418. package/lib/table/interfaces/table-cell-option.interface.d.ts +0 -4
  419. package/lib/table/interfaces/table-column-defs.type.d.ts +0 -53
  420. package/lib/table/interfaces/table-event-payload.interface.d.ts +0 -13
  421. package/lib/table/interfaces/table-row-action-payload.interface.d.ts +0 -13
  422. package/lib/table/interfaces/table-row-action.interface.d.ts +0 -17
  423. package/lib/table/interfaces/table-row-collapse-change.interface.d.ts +0 -11
  424. package/lib/table/interfaces/table-row-item.interface.d.ts +0 -8
  425. package/lib/table/table.module.d.ts +0 -24
  426. package/lib/tag/index.d.ts +0 -1
  427. package/lib/tag/tag.component.d.ts +0 -54
  428. package/lib/text-highlight/index.d.ts +0 -2
  429. package/lib/text-highlight/text-highlight.component.d.ts +0 -37
  430. package/lib/text-highlight/text-highlight.module.d.ts +0 -8
  431. package/public-api.d.ts +0 -4
  432. package/services/index.d.ts +0 -1
  433. package/services/interaction.service.d.ts +0 -28
  434. package/types/component-size.d.ts +0 -12
  435. package/types/component-theme.d.ts +0 -12
  436. package/types/index.d.ts +0 -2
  437. package/utilities/boolean-props.d.ts +0 -8
  438. package/utilities/dc.d.ts +0 -6
  439. package/utilities/index.d.ts +0 -5
  440. package/utilities/lc.d.ts +0 -6
  441. package/utilities/number-props.d.ts +0 -15
  442. package/utilities/sanitize.d.ts +0 -1
@@ -1,234 +0,0 @@
1
- /* eslint-disable @angular-eslint/no-conflicting-lifecycle */
2
- import { Directive, Inject, Input, Optional, Self } from '@angular/core';
3
- import { Validators } from '@angular/forms';
4
- import { nanoid } from 'nanoid';
5
- import { Subject } from 'rxjs';
6
- import { coerceBooleanPropertyValue } from '../../../../utilities';
7
- import { IMPDC_FORM_ROOT } from '../../component';
8
- import { mixinErrorState } from '../../shared';
9
- import { ImpdcFormFieldControl } from '../../shared/form-field-control';
10
- import * as i0 from "@angular/core";
11
- import * as i1 from "@angular/forms";
12
- import * as i2 from "../../services";
13
- const IMPDC_INPUT_INVALID_TYPES = [
14
- 'button',
15
- 'checkbox',
16
- 'file',
17
- 'hidden',
18
- 'image',
19
- 'radio',
20
- 'range',
21
- 'reset',
22
- 'submit'
23
- ];
24
- /** @docs-private */
25
- export function getInputUnsupportedTypeError(type) {
26
- return Error(`Input type "${type}" isn't supported by impdcInput.`);
27
- }
28
- const _InputDirectiveBase = mixinErrorState(class {
29
- constructor(_defaultErrorStateMatcher, _formRoot, _parentForm, _parentFormGroup, ngControl) {
30
- this._defaultErrorStateMatcher = _defaultErrorStateMatcher;
31
- this._formRoot = _formRoot;
32
- this._parentForm = _parentForm;
33
- this._parentFormGroup = _parentFormGroup;
34
- this.ngControl = ngControl;
35
- this.stateChanges = new Subject();
36
- }
37
- });
38
- /**
39
- * The `InputDirective` (`<input impdcInput`, `<textarea impdcInput` or `<select impdcInput`) is a directive for text inputs.
40
- * With this directive, the input, textarea, and select can be used within a `FormFieldComponent` (`<impdc-form-field`).
41
- * To use, import `ImpdcFormsModule` or another module that imports and exports that module from `@impartner/design-components`.
42
- */
43
- export class InputDirective extends _InputDirectiveBase {
44
- get disabled() {
45
- return this._disabled;
46
- }
47
- set disabled(value) {
48
- this._disabled = coerceBooleanPropertyValue(value);
49
- if (this.focused) {
50
- this.focused = false;
51
- this.stateChanges.next();
52
- }
53
- }
54
- get id() {
55
- return this._id;
56
- }
57
- set id(value) {
58
- this._id = value || this._uid;
59
- }
60
- /**
61
- * Supports most standard `<input [type]>` attribute values. Does not support `button`, `checkbox`,
62
- * `file`, `hidden`, `image`, `radio`, `range`, `reset`, or `button`, and does not apply to
63
- * `<textarea>` or `<select>` elements.
64
- *
65
- * @default text
66
- */
67
- get type() {
68
- return this._type;
69
- }
70
- set type(value) {
71
- if (!this._typeIsValid(value)) {
72
- throw getInputUnsupportedTypeError(value);
73
- }
74
- this._type = value || 'text';
75
- // Sync with native input element.
76
- if (!this._isTextarea) {
77
- this._elementRef.nativeElement.type = this._type;
78
- }
79
- }
80
- /**
81
- * Used to set requiredness of control in a template-based manner;
82
- * not necessary when using the Angular reactive forms API and `required` validator.
83
- */
84
- get required() {
85
- return (this._required ??
86
- this.ngControl?.control?.hasValidator(Validators.required) ??
87
- false);
88
- }
89
- set required(value) {
90
- this._required = coerceBooleanPropertyValue(value);
91
- this.stateChanges.next();
92
- }
93
- /**
94
- * Used to put the control in a non-interactive readonly state; only supports `<input>` and
95
- * `<textarea>` elements.
96
- *
97
- * To see the difference between `readonly` and `disabled`, refer to [MDN's documentation](https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/readonly).
98
- */
99
- get readonly() {
100
- return this._readonly;
101
- }
102
- set readonly(value) {
103
- this._readonly = coerceBooleanPropertyValue(value);
104
- }
105
- get value() {
106
- return this._inputValueAccessor.value;
107
- }
108
- set value(value) {
109
- if (value !== this.value) {
110
- this._inputValueAccessor.value = value;
111
- this.stateChanges.next();
112
- }
113
- }
114
- constructor(_elementRef, ngControl, _formRoot, _parentForm, _parentFormGroup, _defaultErrorStateMatcher) {
115
- super(_defaultErrorStateMatcher, _formRoot, _parentForm, _parentFormGroup, ngControl);
116
- this._elementRef = _elementRef;
117
- this._uid = `impdc-input-${nanoid()}`;
118
- this.focused = false;
119
- this.controlType = 'impdc-input';
120
- this.supportsAffixes = true;
121
- this._disabled = false;
122
- this._type = 'text';
123
- this._readonly = false;
124
- const { nativeElement } = this._elementRef;
125
- const nodeName = nativeElement.nodeName.toLowerCase();
126
- this._inputValueAccessor = nativeElement;
127
- this.id = this.id;
128
- this._isSelect = nodeName === 'select';
129
- this._isTextarea = nodeName === 'textarea';
130
- if (this._isSelect) {
131
- this.controlType = nativeElement.multiple
132
- ? 'impdc-native-select-multiple'
133
- : 'impdc-native-select';
134
- }
135
- }
136
- /** @ignore */
137
- ngDoCheck() {
138
- if (this.ngControl) {
139
- this.updateErrorState();
140
- if (this.ngControl.disabled !== null &&
141
- this.ngControl.disabled !== this.disabled) {
142
- this.disabled = this.ngControl.disabled;
143
- this.stateChanges.next();
144
- }
145
- }
146
- }
147
- /** @ignore */
148
- ngOnChanges() {
149
- this.stateChanges.next();
150
- }
151
- /** @ignore */
152
- ngOnDestroy() {
153
- this.stateChanges.complete();
154
- }
155
- _focusChanged(isFocused) {
156
- if (isFocused !== this.focused) {
157
- this.focused = isFocused;
158
- this.stateChanges.next();
159
- }
160
- }
161
- _typeIsValid(inputType) {
162
- return IMPDC_INPUT_INVALID_TYPES.indexOf(inputType) === -1;
163
- }
164
- _onInput() {
165
- // This is a noop function and is used to let Angular know whenever the value changes.
166
- // Angular will run a new change detection each time the `input` event has been dispatched.
167
- // It's necessary that Angular recognizes the value change, because when Angular forms
168
- // aren't used, the placeholder won't recognize the value changes and will not disappear.
169
- // Listening to the input event wouldn't be necessary when the input is using the
170
- // FormsModule or ReactiveFormsModule, because Angular forms also listens to input events.
171
- }
172
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: InputDirective, deps: [{ token: i0.ElementRef }, { token: i1.NgControl, optional: true, self: true }, { token: IMPDC_FORM_ROOT, optional: true }, { token: i1.NgForm, optional: true }, { token: i1.FormGroupDirective, optional: true }, { token: i2.ErrorStateMatcher }], target: i0.ɵɵFactoryTarget.Directive }); }
173
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.0", type: InputDirective, isStandalone: true, selector: "input[impdcInput], textarea[impdcInput], select[impdcNativeSelect]", inputs: { disabled: "disabled", id: "id", type: "type", required: "required", readonly: "readonly", errorStateMatcher: "errorStateMatcher", value: "value" }, host: { listeners: { "focus": "_focusChanged(true)", "blur": "_focusChanged(false)", "input": "_onInput()" }, properties: { "id": "id", "disabled": "disabled", "required": "required", "attr.id": "id", "attr.readonly": "readonly && !_isSelect || null", "attr.aria-required": "required.toString()", "attr.aria-disabled": "disabled.toString()", "attr.aria-invalid": "errorState", "class.form-control": "!_isSelect", "class.form-control-color": "type === \"color\"", "class.form-select": "_isSelect", "class.impdc-form-field-control": "true", "class.is-invalid": "errorState", "class.impdc-input--invalid": "errorState", "class.impdc-input--disabled": "disabled", "class.impdc-input--required": "required" }, classAttribute: "impdc-input" }, providers: [{ provide: ImpdcFormFieldControl, useExisting: InputDirective }], exportAs: ["impdcInput"], usesInheritance: true, usesOnChanges: true, ngImport: i0 }); }
174
- }
175
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: InputDirective, decorators: [{
176
- type: Directive,
177
- args: [{
178
- selector: 'input[impdcInput], textarea[impdcInput], select[impdcNativeSelect]',
179
- exportAs: 'impdcInput',
180
- standalone: true,
181
- // eslint-disable-next-line @angular-eslint/no-host-metadata-property
182
- host: {
183
- class: 'impdc-input',
184
- '[id]': 'id',
185
- '[disabled]': 'disabled',
186
- '[required]': 'required',
187
- '[attr.id]': 'id',
188
- '[attr.readonly]': 'readonly && !_isSelect || null',
189
- '[attr.aria-required]': 'required.toString()',
190
- '[attr.aria-disabled]': 'disabled.toString()',
191
- '[attr.aria-invalid]': 'errorState',
192
- '[class.form-control]': '!_isSelect',
193
- '[class.form-control-color]': 'type === "color"',
194
- '[class.form-select]': '_isSelect',
195
- '[class.impdc-form-field-control]': 'true',
196
- '[class.is-invalid]': 'errorState',
197
- '[class.impdc-input--invalid]': 'errorState',
198
- '[class.impdc-input--disabled]': 'disabled',
199
- '[class.impdc-input--required]': 'required',
200
- '(focus)': '_focusChanged(true)',
201
- '(blur)': '_focusChanged(false)',
202
- '(input)': '_onInput()'
203
- },
204
- providers: [{ provide: ImpdcFormFieldControl, useExisting: InputDirective }]
205
- }]
206
- }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.NgControl, decorators: [{
207
- type: Optional
208
- }, {
209
- type: Self
210
- }] }, { type: undefined, decorators: [{
211
- type: Optional
212
- }, {
213
- type: Inject,
214
- args: [IMPDC_FORM_ROOT]
215
- }] }, { type: i1.NgForm, decorators: [{
216
- type: Optional
217
- }] }, { type: i1.FormGroupDirective, decorators: [{
218
- type: Optional
219
- }] }, { type: i2.ErrorStateMatcher }], propDecorators: { disabled: [{
220
- type: Input
221
- }], id: [{
222
- type: Input
223
- }], type: [{
224
- type: Input
225
- }], required: [{
226
- type: Input
227
- }], readonly: [{
228
- type: Input
229
- }], errorStateMatcher: [{
230
- type: Input
231
- }], value: [{
232
- type: Input
233
- }] } });
234
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzaWduLWNvbXBvbmVudHMvc3JjL2xpYi9mb3JtLWZpZWxkL2NvbnRyb2xzL2lucHV0L2lucHV0LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw2REFBNkQ7QUFDN0QsT0FBTyxFQUNMLFNBQVMsRUFHVCxNQUFNLEVBQ04sS0FBSyxFQUdMLFFBQVEsRUFDUixJQUFJLEVBQ0wsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUlMLFVBQVUsRUFDWCxNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDaEMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBRUwsMEJBQTBCLEVBQzNCLE1BQU0sdUJBQXVCLENBQUM7QUFDL0IsT0FBTyxFQUFpQixlQUFlLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVqRSxPQUFPLEVBR0wsZUFBZSxFQUNoQixNQUFNLGNBQWMsQ0FBQztBQUN0QixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQzs7OztBQUV4RSxNQUFNLHlCQUF5QixHQUFHO0lBQ2hDLFFBQVE7SUFDUixVQUFVO0lBQ1YsTUFBTTtJQUNOLFFBQVE7SUFDUixPQUFPO0lBQ1AsT0FBTztJQUNQLE9BQU87SUFDUCxPQUFPO0lBQ1AsUUFBUTtDQUNULENBQUM7QUFFRixvQkFBb0I7QUFDcEIsTUFBTSxVQUFVLDRCQUE0QixDQUFDLElBQVk7SUFDdkQsT0FBTyxLQUFLLENBQUMsZUFBZSxJQUFJLGtDQUFrQyxDQUFDLENBQUM7QUFDdEUsQ0FBQztBQUVELE1BQU0sbUJBQW1CLEdBQUcsZUFBZSxDQUN6QztJQUdFLFlBQ1MseUJBQTRDLEVBQzVDLFNBQXdCLEVBQ3hCLFdBQW1CLEVB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YW5ndWxhci1lc2xpbnQvbm8tY29uZmxpY3RpbmctbGlmZWN5Y2xlICovXG5pbXBvcnQge1xuICBEaXJlY3RpdmUsXG4gIERvQ2hlY2ssXG4gIEVsZW1lbnRSZWYsXG4gIEluamVjdCxcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25EZXN0cm95LFxuICBPcHRpb25hbCxcbiAgU2VsZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEZvcm1Hcm91cERpcmVjdGl2ZSxcbiAgTmdDb250cm9sLFxuICBOZ0Zvcm0sXG4gIFZhbGlkYXRvcnNcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgbmFub2lkIH0gZnJvbSAnbmFub2lkJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG4gIEJvb2xlYW5JbnB1dCxcbiAgY29lcmNlQm9vbGVhblByb3BlcnR5VmFsdWVcbn0gZnJvbSAnLi4vLi4vLi4vLi4vdXRpbGl0aWVzJztcbmltcG9ydCB7IEltcGRjRm9ybVJvb3QsIElNUERDX0ZPUk1fUk9PVCB9IGZyb20gJy4uLy4uL2NvbXBvbmVudCc7XG5pbXBvcnQgeyBFcnJvclN0YXRlTWF0Y2hlciB9IGZyb20gJy4uLy4uL3NlcnZpY2VzJztcbmltcG9ydCB7XG4gIElDYW5VcGRhdGVFcnJvclN0YXRlLFxuICBJSGFzRXJyb3JTdGF0ZSxcbiAgbWl4aW5FcnJvclN0YXRlXG59IGZyb20gJy4uLy4uL3NoYXJlZCc7XG5pbXBvcnQgeyBJbXBkY0Zvcm1GaWVsZENvbnRyb2wgfSBmcm9tICcuLi8uLi9zaGFyZWQvZm9ybS1maWVsZC1jb250cm9sJztcblxuY29uc3QgSU1QRENfSU5QVVRfSU5WQUxJRF9UWVBFUyA9IFtcbiAgJ2J1dHRvbicsXG4gICdjaGVja2JveCcsXG4gICdmaWxlJyxcbiAgJ2hpZGRlbicsXG4gICdpbWFnZScsXG4gICdyYWRpbycsXG4gICdyYW5nZScsXG4gICdyZXNldCcsXG4gICdzdWJtaXQnXG5dO1xuXG4vKiogQGRvY3MtcHJpdmF0ZSAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldElucHV0VW5zdXBwb3J0ZWRUeXBlRXJyb3IodHlwZTogc3RyaW5nKTogRXJyb3Ige1xuICByZXR1cm4gRXJyb3IoYElucHV0IHR5cGUgXCIke3R5cGV9XCIgaXNuJ3Qgc3VwcG9ydGVkIGJ5IGltcGRjSW5wdXQuYCk7XG59XG5cbmNvbnN0IF9JbnB1dERpcmVjdGl2ZUJhc2UgPSBtaXhpbkVycm9yU3RhdGUoXG4gIGNsYXNzIHtcbiAgICBwdWJsaWMgcmVhZG9ubHkgc3RhdGVDaGFuZ2VzID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgcHVibGljIF9kZWZhdWx0RXJyb3JTdGF0ZU1hdGNoZXI6IEVycm9yU3RhdGVNYXRjaGVyLFxuICAgICAgcHVibGljIF9mb3JtUm9vdDogSW1wZGNGb3JtUm9vdCxcbiAgICAgIHB1YmxpYyBfcGFyZW50Rm9ybTogTmdGb3JtLFxuICAgICAgcHVibGljIF9wYXJlbnRGb3JtR3JvdXA6IEZvcm1Hcm91cERpcmVjdGl2ZSxcbiAgICAgIHB1YmxpYyBuZ0NvbnRyb2w6IE5nQ29udHJvbCB8IG51bGxcbiAgICApIHt9XG4gIH1cbik7XG5cbi8qKlxuICogVGhlIGBJbnB1dERpcmVjdGl2ZWAgKGA8aW5wdXQgaW1wZGNJbnB1dGAsIGA8dGV4dGFyZWEgaW1wZGNJbnB1dGAgb3IgYDxzZWxlY3QgaW1wZGNJbnB1dGApIGlzIGEgZGlyZWN0aXZlIGZvciB0ZXh0IGlucHV0cy5cbiAqIFdpdGggdGhpcyBkaXJlY3RpdmUsIHRoZSBpbnB1dCwgdGV4dGFyZWEsIGFuZCBzZWxlY3QgY2FuIGJlIHVzZWQgd2l0aGluIGEgYEZvcm1GaWVsZENvbXBvbmVudGAgKGA8aW1wZGMtZm9ybS1maWVsZGApLlxuICogVG8gdXNlLCBpbXBvcnQgYEltcGRjRm9ybXNNb2R1bGVgIG9yIGFub3RoZXIgbW9kdWxlIHRoYXQgaW1wb3J0cyBhbmQgZXhwb3J0cyB0aGF0IG1vZHVsZSBmcm9tIGBAaW1wYXJ0bmVyL2Rlc2lnbi1jb21wb25lbnRzYC5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOlxuICAgICdpbnB1dFtpbXBkY0lucHV0XSwgdGV4dGFyZWFbaW1wZGNJbnB1dF0sIHNlbGVjdFtpbXBkY05hdGl2ZVNlbGVjdF0nLFxuICBleHBvcnRBczogJ2ltcGRjSW5wdXQnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWhvc3QtbWV0YWRhdGEtcHJvcGVydHlcbiAgaG9zdDoge1xuICAgIGNsYXNzOiAnaW1wZGMtaW5wdXQnLFxuICAgICdbaWRdJzogJ2lkJyxcbiAgICAnW2Rpc2FibGVkXSc6ICdkaXNhYmxlZCcsXG4gICAgJ1tyZXF1aXJlZF0nOiAncmVxdWlyZWQnLFxuICAgICdbYXR0ci5pZF0nOiAnaWQnLFxuICAgICdbYXR0ci5yZWFkb25seV0nOiAncmVhZG9ubHkgJiYgIV9pc1NlbGVjdCB8fCBudWxsJyxcbiAgICAnW2F0dHIuYXJpYS1yZXF1aXJlZF0nOiAncmVxdWlyZWQudG9TdHJpbmcoKScsXG4gICAgJ1thdHRyLmFyaWEtZGlzYWJsZWRdJzogJ2Rpc2FibGVkLnRvU3RyaW5nKCknLFxuICAgICdbYXR0ci5hcmlhLWludmFsaWRdJzogJ2Vycm9yU3RhdGUnLFxuICAgICdbY2xhc3MuZm9ybS1jb250cm9sXSc6ICchX2lzU2VsZWN0JyxcbiAgICAnW2NsYXNzLmZvcm0tY29udHJvbC1jb2xvcl0nOiAndHlwZSA9PT0gXCJjb2xvclwiJyxcbiAgICAnW2NsYXNzLmZvcm0tc2VsZWN0XSc6ICdfaXNTZWxlY3QnLFxuICAgICdbY2xhc3MuaW1wZGMtZm9ybS1maWVsZC1jb250cm9sXSc6ICd0cnVlJyxcbiAgICAnW2NsYXNzLmlzLWludmFsaWRdJzogJ2Vycm9yU3RhdGUnLFxuICAgICdbY2xhc3MuaW1wZGMtaW5wdXQtLWludmFsaWRdJzogJ2Vycm9yU3RhdGUnLFxuICAgICdbY2xhc3MuaW1wZGMtaW5wdXQtLWRpc2FibGVkXSc6ICdkaXNhYmxlZCcsXG4gICAgJ1tjbGFzcy5pbXBkYy1pbnB1dC0tcmVxdWlyZWRdJzogJ3JlcXVpcmVkJyxcbiAgICAnKGZvY3VzKSc6ICdfZm9jdXNDaGFuZ2VkKHRydWUpJyxcbiAgICAnKGJsdXIpJzogJ19mb2N1c0NoYW5nZWQoZmFsc2UpJyxcbiAgICAnKGlucHV0KSc6ICdfb25JbnB1dCgpJ1xuICB9LFxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IEltcGRjRm9ybUZpZWxkQ29udHJvbCwgdXNlRXhpc3Rpbmc6IElucHV0RGlyZWN0aXZlIH1dXG59KVxuZXhwb3J0IGNsYXNzIElucHV0RGlyZWN0aXZlXG4gIGV4dGVuZHMgX0lucHV0RGlyZWN0aXZlQmFzZVxuICBpbXBsZW1lbnRzXG4gICAgSW1wZGNGb3JtRmllbGRDb250cm9sPGFueT4sXG4gICAgSUNhblVwZGF0ZUVycm9yU3RhdGUsXG4gICAgSUhhc0Vycm9yU3RhdGUsXG4gICAgT25DaGFuZ2VzLFxuICAgIE9uRGVzdHJveSxcbiAgICBEb0NoZWNrXG57XG4gIHByaXZhdGUgX2lucHV0VmFsdWVBY2Nlc3NvcjogeyB2YWx1ZTogYW55IH07XG5cbiAgcHJvdGVjdGVkIF91aWQgPSBgaW1wZGMtaW5wdXQtJHtuYW5vaWQoKX1gO1xuICBwcm90ZWN0ZWQgX2lzU2VsZWN0OiBib29sZWFuO1xuICBwcm90ZWN0ZWQgX2lzVGV4dGFyZWE6IGJvb2xlYW47XG5cbiAgcHVibGljIGZvY3VzZWQgPSBmYWxzZTtcblxuICBwdWJsaWMgcmVhZG9ubHkgY29udHJvbFR5cGU/OiBzdHJpbmcgPSAnaW1wZGMtaW5wdXQnO1xuICBwdWJsaWMgcmVhZG9ubHkgc3VwcG9ydHNBZmZpeGVzOiBib29sZWFuID0gdHJ1ZTtcblxuICBASW5wdXQoKVxuICBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2Rpc2FibGVkO1xuICB9XG4gIHNldCBkaXNhYmxlZCh2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgdGhpcy5fZGlzYWJsZWQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHlWYWx1ZSh2YWx1ZSk7XG5cbiAgICBpZiAodGhpcy5mb2N1c2VkKSB7XG4gICAgICB0aGlzLmZvY3VzZWQgPSBmYWxzZTtcbiAgICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKTtcbiAgICB9XG4gIH1cbiAgcHJvdGVjdGVkIF9kaXNhYmxlZCA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIGdldCBpZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9pZDtcbiAgfVxuICBzZXQgaWQodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuX2lkID0gdmFsdWUgfHwgdGhpcy5fdWlkO1xuICB9XG4gIHByb3RlY3RlZCBfaWQhOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFN1cHBvcnRzIG1vc3Qgc3RhbmRhcmQgYDxpbnB1dCBbdHlwZV0+YCBhdHRyaWJ1dGUgdmFsdWVzLiBEb2VzIG5vdCBzdXBwb3J0IGBidXR0b25gLCBgY2hlY2tib3hgLFxuICAgKiBgZmlsZWAsIGBoaWRkZW5gLCBgaW1hZ2VgLCBgcmFkaW9gLCBgcmFuZ2VgLCBgcmVzZXRgLCBvciBgYnV0dG9uYCwgYW5kIGRvZXMgbm90IGFwcGx5IHRvXG4gICAqIGA8dGV4dGFyZWE+YCBvciBgPHNlbGVjdD5gIGVsZW1lbnRzLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0ZXh0XG4gICAqL1xuICBASW5wdXQoKVxuICBnZXQgdHlwZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl90eXBlO1xuICB9XG4gIHNldCB0eXBlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICBpZiAoIXRoaXMuX3R5cGVJc1ZhbGlkKHZhbHVlKSkge1xuICAgICAgdGhyb3cgZ2V0SW5wdXRVbnN1cHBvcnRlZFR5cGVFcnJvcih2YWx1ZSk7XG4gICAgfVxuXG4gICAgdGhpcy5fdHlwZSA9IHZhbHVlIHx8ICd0ZXh0JztcblxuICAgIC8vIFN5bmMgd2l0aCBuYXRpdmUgaW5wdXQgZWxlbWVudC5cbiAgICBpZiAoIXRoaXMuX2lzVGV4dGFyZWEpIHtcbiAgICAgICh0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTElucHV0RWxlbWVudCkudHlwZSA9IHRoaXMuX3R5cGU7XG4gICAgfVxuICB9XG4gIHByb3RlY3RlZCBfdHlwZSA9ICd0ZXh0JztcblxuICAvKipcbiAgICogVXNlZCB0byBzZXQgcmVxdWlyZWRuZXNzIG9mIGNvbnRyb2wgaW4gYSB0ZW1wbGF0ZS1iYXNlZCBtYW5uZXI7XG4gICAqIG5vdCBuZWNlc3Nhcnkgd2hlbiB1c2luZyB0aGUgQW5ndWxhciByZWFjdGl2ZSBmb3JtcyBBUEkgYW5kIGByZXF1aXJlZGAgdmFsaWRhdG9yLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGdldCByZXF1aXJlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5fcmVxdWlyZWQgPz9cbiAgICAgIHRoaXMubmdDb250cm9sPy5jb250cm9sPy5oYXNWYWxpZGF0b3IoVmFsaWRhdG9ycy5yZXF1aXJlZCkgPz9cbiAgICAgIGZhbHNlXG4gICAgKTtcbiAgfVxuICBwdWJsaWMgc2V0IHJlcXVpcmVkKHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICB0aGlzLl9yZXF1aXJlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eVZhbHVlKHZhbHVlKTtcbiAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XG4gIH1cbiAgcHJpdmF0ZSBfcmVxdWlyZWQ6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFVzZWQgdG8gcHV0IHRoZSBjb250cm9sIGluIGEgbm9uLWludGVyYWN0aXZlIHJlYWRvbmx5IHN0YXRlOyBvbmx5IHN1cHBvcnRzIGA8aW5wdXQ+YCBhbmRcbiAgICogYDx0ZXh0YXJlYT5gIGVsZW1lbnRzLlxuICAgKlxuICAgKiBUbyBzZWUgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiBgcmVhZG9ubHlgIGFuZCBgZGlzYWJsZWRgLCByZWZlciB0byBbTUROJ3MgZG9jdW1lbnRhdGlvbl0oaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSFRNTC9BdHRyaWJ1dGVzL3JlYWRvbmx5KS5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBnZXQgcmVhZG9ubHkoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX3JlYWRvbmx5O1xuICB9XG4gIHB1YmxpYyBzZXQgcmVhZG9ubHkodmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgIHRoaXMuX3JlYWRvbmx5ID0gY29lcmNlQm9vbGVhblByb3BlcnR5VmFsdWUodmFsdWUpO1xuICB9XG4gIHByaXZhdGUgX3JlYWRvbmx5ID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgcHVibGljIG92ZXJyaWRlIGVycm9yU3RhdGVNYXRjaGVyITogRXJyb3JTdGF0ZU1hdGNoZXI7XG5cbiAgQElucHV0KClcbiAgZ2V0IHZhbHVlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX2lucHV0VmFsdWVBY2Nlc3Nvci52YWx1ZTtcbiAgfVxuICBzZXQgdmFsdWUodmFsdWU6IGFueSkge1xuICAgIGlmICh2YWx1ZSAhPT0gdGhpcy52YWx1ZSkge1xuICAgICAgdGhpcy5faW5wdXRWYWx1ZUFjY2Vzc29yLnZhbHVlID0gdmFsdWU7XG4gICAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XG4gICAgfVxuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmPFxuICAgICAgSFRNTElucHV0RWxlbWVudCB8IEhUTUxUZXh0QXJlYUVsZW1lbnQgfCBIVE1MU2VsZWN0RWxlbWVudFxuICAgID4sXG4gICAgQE9wdGlvbmFsKCkgQFNlbGYoKSBuZ0NvbnRyb2w6IE5nQ29udHJvbCxcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KElNUERDX0ZPUk1fUk9PVCkgX2Zvcm1Sb290OiBJbXBkY0Zvcm1Sb290LFxuICAgIEBPcHRpb25hbCgpIF9wYXJlbnRGb3JtOiBOZ0Zvcm0sXG4gICAgQE9wdGlvbmFsKCkgX3BhcmVudEZvcm1Hcm91cDogRm9ybUdyb3VwRGlyZWN0aXZlLFxuICAgIF9kZWZhdWx0RXJyb3JTdGF0ZU1hdGNoZXI6IEVycm9yU3RhdGVNYXRjaGVyXG4gICkge1xuICAgIHN1cGVyKFxuICAgICAgX2RlZmF1bHRFcnJvclN0YXRlTWF0Y2hlcixcbiAgICAgIF9mb3JtUm9vdCxcbiAgICAgIF9wYXJlbnRGb3JtLFxuICAgICAgX3BhcmVudEZvcm1Hcm91cCxcbiAgICAgIG5nQ29udHJvbFxuICAgICk7XG5cbiAgICBjb25zdCB7IG5hdGl2ZUVsZW1lbnQgfSA9IHRoaXMuX2VsZW1lbnRSZWY7XG4gICAgY29uc3Qgbm9kZU5hbWUgPSBuYXRpdmVFbGVtZW50Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7XG5cbiAgICB0aGlzLl9pbnB1dFZhbHVlQWNjZXNzb3IgPSBuYXRpdmVFbGVtZW50O1xuICAgIHRoaXMuaWQgPSB0aGlzLmlkO1xuICAgIHRoaXMuX2lzU2VsZWN0ID0gbm9kZU5hbWUgPT09ICdzZWxlY3QnO1xuICAgIHRoaXMuX2lzVGV4dGFyZWEgPSBub2RlTmFtZSA9PT0gJ3RleHRhcmVhJztcblxuICAgIGlmICh0aGlzLl9pc1NlbGVjdCkge1xuICAgICAgdGhpcy5jb250cm9sVHlwZSA9IChuYXRpdmVFbGVtZW50IGFzIEhUTUxTZWxlY3RFbGVtZW50KS5tdWx0aXBsZVxuICAgICAgICA/ICdpbXBkYy1uYXRpdmUtc2VsZWN0LW11bHRpcGxlJ1xuICAgICAgICA6ICdpbXBkYy1uYXRpdmUtc2VsZWN0JztcbiAgICB9XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwdWJsaWMgbmdEb0NoZWNrKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLm5nQ29udHJvbCkge1xuICAgICAgdGhpcy51cGRhdGVFcnJvclN0YXRlKCk7XG5cbiAgICAgIGlmIChcbiAgICAgICAgdGhpcy5uZ0NvbnRyb2wuZGlzYWJsZWQgIT09IG51bGwgJiZcbiAgICAgICAgdGhpcy5uZ0NvbnRyb2wuZGlzYWJsZWQgIT09IHRoaXMuZGlzYWJsZWRcbiAgICAgICkge1xuICAgICAgICB0aGlzLmRpc2FibGVkID0gdGhpcy5uZ0NvbnRyb2wuZGlzYWJsZWQ7XG4gICAgICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwdWJsaWMgbmdPbkNoYW5nZXMoKTogdm9pZCB7XG4gICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuc3RhdGVDaGFuZ2VzLmNvbXBsZXRlKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgX2ZvY3VzQ2hhbmdlZChpc0ZvY3VzZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBpZiAoaXNGb2N1c2VkICE9PSB0aGlzLmZvY3VzZWQpIHtcbiAgICAgIHRoaXMuZm9jdXNlZCA9IGlzRm9jdXNlZDtcbiAgICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgX3R5cGVJc1ZhbGlkKGlucHV0VHlwZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIElNUERDX0lOUFVUX0lOVkFMSURfVFlQRVMuaW5kZXhPZihpbnB1dFR5cGUpID09PSAtMTtcbiAgfVxuXG4gIHByb3RlY3RlZCBfb25JbnB1dCgpIHtcbiAgICAvLyBUaGlzIGlzIGEgbm9vcCBmdW5jdGlvbiBhbmQgaXMgdXNlZCB0byBsZXQgQW5ndWxhciBrbm93IHdoZW5ldmVyIHRoZSB2YWx1ZSBjaGFuZ2VzLlxuICAgIC8vIEFuZ3VsYXIgd2lsbCBydW4gYSBuZXcgY2hhbmdlIGRldGVjdGlvbiBlYWNoIHRpbWUgdGhlIGBpbnB1dGAgZXZlbnQgaGFzIGJlZW4gZGlzcGF0Y2hlZC5cbiAgICAvLyBJdCdzIG5lY2Vzc2FyeSB0aGF0IEFuZ3VsYXIgcmVjb2duaXplcyB0aGUgdmFsdWUgY2hhbmdlLCBiZWNhdXNlIHdoZW4gQW5ndWxhciBmb3Jtc1xuICAgIC8vIGFyZW4ndCB1c2VkLCB0aGUgcGxhY2Vob2xkZXIgd29uJ3QgcmVjb2duaXplIHRoZSB2YWx1ZSBjaGFuZ2VzIGFuZCB3aWxsIG5vdCBkaXNhcHBlYXIuXG4gICAgLy8gTGlzdGVuaW5nIHRvIHRoZSBpbnB1dCBldmVudCB3b3VsZG4ndCBiZSBuZWNlc3Nhcnkgd2hlbiB0aGUgaW5wdXQgaXMgdXNpbmcgdGhlXG4gICAgLy8gRm9ybXNNb2R1bGUgb3IgUmVhY3RpdmVGb3Jtc01vZHVsZSwgYmVjYXVzZSBBbmd1bGFyIGZvcm1zIGFsc28gbGlzdGVucyB0byBpbnB1dCBldmVudHMuXG4gIH1cbn1cbiJdfQ==
@@ -1,6 +0,0 @@
1
- export { RadioChangeEvent } from './interfaces';
2
- export { RadioButtonComponent } from './radio-button/radio-button.component';
3
- export { RadioGroupDirective } from './radio-group/radio-group.directive';
4
- export { IMPDC_RADIO_GROUP, IMPDC_RADIO_BUTTON } from './injection-tokens';
5
- export { RadioModule } from './radio.module';
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tY29tcG9uZW50cy9zcmMvbGliL2Zvcm0tZmllbGQvY29udHJvbHMvcmFkaW8vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUE2QixNQUFNLGNBQWMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUMxRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMzRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBSYWRpb0NoYW5nZUV2ZW50LCBJUmFkaW9CdXR0b24sIElSYWRpb0dyb3VwIH0gZnJvbSAnLi9pbnRlcmZhY2VzJztcbmV4cG9ydCB7IFJhZGlvQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi9yYWRpby1idXR0b24vcmFkaW8tYnV0dG9uLmNvbXBvbmVudCc7XG5leHBvcnQgeyBSYWRpb0dyb3VwRGlyZWN0aXZlIH0gZnJvbSAnLi9yYWRpby1ncm91cC9yYWRpby1ncm91cC5kaXJlY3RpdmUnO1xuZXhwb3J0IHsgSU1QRENfUkFESU9fR1JPVVAsIElNUERDX1JBRElPX0JVVFRPTiB9IGZyb20gJy4vaW5qZWN0aW9uLXRva2Vucyc7XG5leHBvcnQgeyBSYWRpb01vZHVsZSB9IGZyb20gJy4vcmFkaW8ubW9kdWxlJztcbiJdfQ==
@@ -1,4 +0,0 @@
1
- import { InjectionToken } from '@angular/core';
2
- export const IMPDC_RADIO_GROUP = new InjectionToken('ImpdcRadioGroup');
3
- export const IMPDC_RADIO_BUTTON = new InjectionToken('ImpdcRadioButton');
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5qZWN0aW9uLXRva2Vucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbi1jb21wb25lbnRzL3NyYy9saWIvZm9ybS1maWVsZC9jb250cm9scy9yYWRpby9pbmplY3Rpb24tdG9rZW5zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHL0MsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxjQUFjLENBQ2pELGlCQUFpQixDQUNsQixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxjQUFjLENBQ2xELGtCQUFrQixDQUNuQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElSYWRpb0J1dHRvbiwgSVJhZGlvR3JvdXAgfSBmcm9tICcuL2ludGVyZmFjZXMnO1xuXG5leHBvcnQgY29uc3QgSU1QRENfUkFESU9fR1JPVVAgPSBuZXcgSW5qZWN0aW9uVG9rZW48SVJhZGlvR3JvdXA+KFxuICAnSW1wZGNSYWRpb0dyb3VwJ1xuKTtcblxuZXhwb3J0IGNvbnN0IElNUERDX1JBRElPX0JVVFRPTiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxJUmFkaW9CdXR0b24+KFxuICAnSW1wZGNSYWRpb0J1dHRvbidcbik7XG4iXX0=
@@ -1,4 +0,0 @@
1
- export * from './radio-change-event.interface';
2
- export * from './radio-button.interface';
3
- export * from './radio-group.interface';
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tY29tcG9uZW50cy9zcmMvbGliL2Zvcm0tZmllbGQvY29udHJvbHMvcmFkaW8vaW50ZXJmYWNlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYyx5QkFBeUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vcmFkaW8tY2hhbmdlLWV2ZW50LmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL3JhZGlvLWJ1dHRvbi5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9yYWRpby1ncm91cC5pbnRlcmZhY2UnO1xuIl19
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8tYnV0dG9uLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbi1jb21wb25lbnRzL3NyYy9saWIvZm9ybS1maWVsZC9jb250cm9scy9yYWRpby9pbnRlcmZhY2VzL3JhZGlvLWJ1dHRvbi5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgSVJhZGlvQnV0dG9uIHtcbiAgY2hlY2tlZDogYm9vbGVhbjtcbiAgbmFtZTogc3RyaW5nO1xuICB2YWx1ZTogYW55O1xuXG4gIG1hcmtGb3JDaGVjaygpOiB2b2lkO1xufVxuIl19
@@ -1,11 +0,0 @@
1
- export class RadioChangeEvent {
2
- constructor(
3
- /** The specific radio button that changed. */
4
- source,
5
- /** The selected value. */
6
- value) {
7
- this.source = source;
8
- this.value = value;
9
- }
10
- }
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8tY2hhbmdlLWV2ZW50LmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbi1jb21wb25lbnRzL3NyYy9saWIvZm9ybS1maWVsZC9jb250cm9scy9yYWRpby9pbnRlcmZhY2VzL3JhZGlvLWNoYW5nZS1ldmVudC5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxPQUFPLGdCQUFnQjtJQUMzQjtJQUNFLDhDQUE4QztJQUM5QixNQUFvQjtJQUNwQywwQkFBMEI7SUFDVixLQUFVO1FBRlYsV0FBTSxHQUFOLE1BQU0sQ0FBYztRQUVwQixVQUFLLEdBQUwsS0FBSyxDQUFLO0lBQ3pCLENBQUM7Q0FDTCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElSYWRpb0J1dHRvbiB9IGZyb20gJy4vcmFkaW8tYnV0dG9uLmludGVyZmFjZSc7XG5cbmV4cG9ydCBjbGFzcyBSYWRpb0NoYW5nZUV2ZW50IHtcbiAgY29uc3RydWN0b3IoXG4gICAgLyoqIFRoZSBzcGVjaWZpYyByYWRpbyBidXR0b24gdGhhdCBjaGFuZ2VkLiAqL1xuICAgIHB1YmxpYyByZWFkb25seSBzb3VyY2U6IElSYWRpb0J1dHRvbixcbiAgICAvKiogVGhlIHNlbGVjdGVkIHZhbHVlLiAqL1xuICAgIHB1YmxpYyByZWFkb25seSB2YWx1ZTogYW55XG4gICkge31cbn1cbiJdfQ==
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8tZ3JvdXAuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzaWduLWNvbXBvbmVudHMvc3JjL2xpYi9mb3JtLWZpZWxkL2NvbnRyb2xzL3JhZGlvL2ludGVyZmFjZXMvcmFkaW8tZ3JvdXAuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJUmFkaW9CdXR0b24gfSBmcm9tICcuL3JhZGlvLWJ1dHRvbi5pbnRlcmZhY2UnO1xuXG5leHBvcnQgaW50ZXJmYWNlIElSYWRpb0dyb3VwIHtcbiAgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW47XG4gIGdldCBlcnJvclN0YXRlKCk6IGJvb2xlYW47XG4gIGdldCBpbmxpbmUoKTogYm9vbGVhbjtcbiAgZ2V0IG5hbWUoKTogc3RyaW5nO1xuICBnZXQgcmVxdWlyZWQoKTogYm9vbGVhbjtcbiAgZ2V0IHZhbHVlKCk6IGFueTtcbiAgc2VsZWN0ZWQ6IElSYWRpb0J1dHRvbiB8IG51bGw7XG5cbiAgZW1pdENoYW5nZXNFdmVudCgpOiB2b2lkO1xuICBvbkNoYW5nZUZuKHZhbHVlOiBhbnkpOiB2b2lkO1xuICB0b3VjaCgpOiB2b2lkO1xufVxuIl19
@@ -1,262 +0,0 @@
1
- import { CommonModule } from '@angular/common';
2
- import { Attribute, ChangeDetectionStrategy, Component, ElementRef, EventEmitter, Inject, Input, Optional, Output, ViewChild } from '@angular/core';
3
- import { nanoid } from 'nanoid';
4
- import { coerceBooleanPropertyValue, coerceNumberPropertyValue } from '../../../../../utilities';
5
- import { mixinTabIndex } from '../../../shared/tab-index.mixin';
6
- import { ToggleModule } from '../../shared';
7
- import { IMPDC_RADIO_BUTTON, IMPDC_RADIO_GROUP } from '../injection-tokens';
8
- import * as i0 from "@angular/core";
9
- import * as i1 from "../../../services/unique-selection-dispatcher.service";
10
- import * as i2 from "../../shared/toggle/toggle.component";
11
- import * as i3 from "../../shared/toggle/components/toggle-input/toggle-input.component";
12
- class RadioButtonComponentBase {
13
- constructor() { }
14
- }
15
- const _RadioButtonComponentMixinBase = mixinTabIndex(RadioButtonComponentBase);
16
- export class RadioButtonComponent extends _RadioButtonComponentMixinBase {
17
- /**
18
- * Whether or not the radio input is checked/selected.
19
- */
20
- get checked() {
21
- return this._checked;
22
- }
23
- set checked(value) {
24
- const newCheckedValue = coerceBooleanPropertyValue(value);
25
- if (this._checked !== newCheckedValue) {
26
- this._checked = newCheckedValue;
27
- if (newCheckedValue &&
28
- this._radioGroup &&
29
- this._radioGroup.value !== this.value) {
30
- this._radioGroup.selected = this;
31
- }
32
- else if (!newCheckedValue &&
33
- this._radioGroup &&
34
- this._radioGroup.value === this.value) {
35
- this._radioGroup.selected = null;
36
- }
37
- if (newCheckedValue) {
38
- this._radioDispatcher.notify(this.id, this.name);
39
- }
40
- this._changeDetector.markForCheck();
41
- }
42
- }
43
- /**
44
- * The specific value represented by the radio button.
45
- */
46
- get value() {
47
- return this._value;
48
- }
49
- set value(value) {
50
- if (this._value !== value) {
51
- this._value = value;
52
- if (this._radioGroup) {
53
- if (!this.checked) {
54
- this.checked = this._radioGroup.value === value;
55
- }
56
- if (this.checked) {
57
- this._radioGroup.selected = this;
58
- }
59
- }
60
- }
61
- }
62
- /**
63
- * Whether or not the radio button displays inline; Inherited from the parent `RadioGroupDirective` when available.
64
- */
65
- get inline() {
66
- return (this._inline || (this._radioGroup && this._radioGroup.inline) || false);
67
- }
68
- set inline(value) {
69
- this._inline = coerceBooleanPropertyValue(value);
70
- }
71
- /**
72
- * Used to enable or disable the radio button, but will always return `true` when the parent
73
- * `RadioGroupDirective` is already disabled.
74
- */
75
- get disabled() {
76
- return (this._disabled || (this._radioGroup != null && this._radioGroup.disabled));
77
- }
78
- set disabled(value) {
79
- const newDisabledState = coerceBooleanPropertyValue(value);
80
- if (this._disabled !== newDisabledState) {
81
- this._disabled = newDisabledState;
82
- this._changeDetector.markForCheck();
83
- }
84
- }
85
- /** @ignore */
86
- get required() {
87
- return (this._required || (this._radioGroup != null && this._radioGroup.required));
88
- }
89
- set required(value) {
90
- this._required = coerceBooleanPropertyValue(value);
91
- }
92
- get _errorState() {
93
- return this._radioGroup ? this._radioGroup.errorState : false;
94
- }
95
- constructor(_changeDetector, _radioDispatcher, tabIndex, _radioGroup) {
96
- super();
97
- this._changeDetector = _changeDetector;
98
- this._radioDispatcher = _radioDispatcher;
99
- this._radioGroup = _radioGroup;
100
- this._uid = `impdc-radio-button-${nanoid()}`;
101
- this._removeUniqueSelectionListener = () => { };
102
- this.id = this._uid;
103
- this._checked = false;
104
- this._value = null;
105
- this._disabled = false;
106
- this._required = false;
107
- /**
108
- * The primary label text for the radio button.
109
- */
110
- this.label = '';
111
- /**
112
- * Text to provide additional description or context for the radio button. Does
113
- * not display if `inline` is `true`.
114
- */
115
- this.description = '';
116
- /**
117
- * Event emitted when the radio button becomes selected/checked.
118
- */
119
- this.change = new EventEmitter();
120
- if (tabIndex) {
121
- this.tabIndex = coerceNumberPropertyValue(tabIndex, 0);
122
- }
123
- }
124
- /** @ignore */
125
- ngOnInit() {
126
- if (this._radioGroup) {
127
- this.checked = this._radioGroup.value === this._value;
128
- if (this.checked) {
129
- this._radioGroup.selected = this;
130
- }
131
- this.name = this._radioGroup.name;
132
- }
133
- this._removeUniqueSelectionListener = this._radioDispatcher.listen((id, name) => {
134
- if (id !== this.id && name === this.name) {
135
- this.checked = false;
136
- }
137
- });
138
- }
139
- /** @ignore */
140
- ngDoCheck() {
141
- this._updateTabIndex();
142
- }
143
- /** @ignore */
144
- ngAfterViewInit() {
145
- this._updateTabIndex();
146
- }
147
- /** @ignore */
148
- ngOnDestroy() {
149
- this._removeUniqueSelectionListener();
150
- }
151
- /** @ignore */
152
- markForCheck() {
153
- this._changeDetector.markForCheck();
154
- }
155
- _emitChangesEvent() {
156
- this.change.emit({ source: this, value: this._value });
157
- }
158
- _onBlur() {
159
- if (this._radioGroup) {
160
- this._radioGroup.touch();
161
- }
162
- }
163
- _onInputChange(event) {
164
- event.stopPropagation();
165
- if (!this.checked && !this.disabled) {
166
- const groupValueChanged = this._radioGroup && this.value !== this._radioGroup.value;
167
- this.checked = true;
168
- this._emitChangesEvent();
169
- if (this._radioGroup) {
170
- this._radioGroup.onChangeFn(this.value);
171
- if (groupValueChanged) {
172
- this._radioGroup.emitChangesEvent();
173
- }
174
- }
175
- }
176
- }
177
- _updateTabIndex() {
178
- const radioGroup = this._radioGroup;
179
- let tabIndexValue;
180
- if (!radioGroup || !radioGroup.selected || this.disabled) {
181
- tabIndexValue = this.tabIndex;
182
- }
183
- else {
184
- tabIndexValue = radioGroup.selected === this ? this.tabIndex : -1;
185
- }
186
- if (tabIndexValue !== this._previousTabIndex) {
187
- const inputElt = this._inputElement?.nativeElement;
188
- if (inputElt) {
189
- inputElt.setAttribute('tabindex', tabIndexValue + '');
190
- this._previousTabIndex = tabIndexValue;
191
- }
192
- }
193
- }
194
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: RadioButtonComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.UniqueSelectionDispatcher }, { token: 'tabindex', attribute: true }, { token: IMPDC_RADIO_GROUP, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
195
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.0", type: RadioButtonComponent, isStandalone: true, selector: "impdc-radio-button", inputs: { tabIndex: "tabIndex", id: "id", name: "name", ariaLabel: ["aria-label", "ariaLabel"], ariaLabelledby: ["aria-labelledby", "ariaLabelledby"], ariaDescribedby: ["aria-describedby", "ariaDescribedby"], checked: "checked", value: "value", inline: "inline", disabled: "disabled", required: "required", label: "label", description: "description" }, outputs: { change: "change" }, host: { properties: { "attr.id": "id", "attr.tabindex": "null", "attr.aria-label": "null", "attr.aria-labelledby": "null", "attr.aria-describedby": "null", "class.impdc-radio-button--required": "required", "class.impdc-radio-button--invalid": "_errorState", "class.impdc-radio-button--disabled": "disabled", "class.impdc-radio-button--inline": "inline" }, classAttribute: "impdc-radio-button" }, providers: [
196
- {
197
- provide: IMPDC_RADIO_BUTTON,
198
- useExisting: RadioButtonComponent
199
- }
200
- ], viewQueries: [{ propertyName: "_inputElement", first: true, predicate: ["nativeInput"], descendants: true, read: ElementRef }], exportAs: ["impdcRadioButton"], usesInheritance: true, ngImport: i0, template: "<impdc-toggle [label]=\"label\" [description]=\"description\" [inline]=\"inline\">\n <input\n #nativeInput\n impdc-toggle-input\n type=\"radio\"\n class=\"impdc-radio-button__native-control\"\n [class.is-invalid]=\"_errorState\"\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n [attr.name]=\"name\"\n [attr.value]=\"value\"\n [required]=\"required\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledby\"\n [attr.aria-describedby]=\"ariaDescribedby\"\n (change)=\"_onInputChange($event)\"\n (blur)=\"_onBlur()\" />\n</impdc-toggle>\n", styles: [":host{display:block;opacity:var(--impartner-hex-input-opacity, 1)}:host.impdc-radio-button--inline{display:inline-block}:host.impdc-radio-button--inline:not(:last-of-type){margin-right:4rem}:host:not(.impdc-radio-button--inline):not(:last-of-type){margin-bottom:1.6rem}:host.impdc-radio-button--disabled{--impartner-hex-input-opacity: .5}:host.impdc-radio-button--invalid ::ng-deep .form-check-label{color:var(--impd-color-red-600)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: ToggleModule }, { kind: "component", type: i2.ToggleComponent, selector: "impdc-toggle", inputs: ["isSwitch", "label", "description", "inline", "switchIcons", "layout"] }, { kind: "component", type: i3.ToggleInputComponent, selector: "input[impdc-toggle-input]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
201
- }
202
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: RadioButtonComponent, decorators: [{
203
- type: Component,
204
- args: [{ selector: 'impdc-radio-button', standalone: true, imports: [CommonModule, ToggleModule], host: {
205
- class: 'impdc-radio-button',
206
- '[attr.id]': 'id',
207
- '[attr.tabindex]': 'null',
208
- '[attr.aria-label]': 'null',
209
- '[attr.aria-labelledby]': 'null',
210
- '[attr.aria-describedby]': 'null',
211
- '[class.impdc-radio-button--required]': 'required',
212
- '[class.impdc-radio-button--invalid]': '_errorState',
213
- '[class.impdc-radio-button--disabled]': 'disabled',
214
- '[class.impdc-radio-button--inline]': 'inline'
215
- }, inputs: ['tabIndex'], exportAs: 'impdcRadioButton', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
216
- {
217
- provide: IMPDC_RADIO_BUTTON,
218
- useExisting: RadioButtonComponent
219
- }
220
- ], template: "<impdc-toggle [label]=\"label\" [description]=\"description\" [inline]=\"inline\">\n <input\n #nativeInput\n impdc-toggle-input\n type=\"radio\"\n class=\"impdc-radio-button__native-control\"\n [class.is-invalid]=\"_errorState\"\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n [attr.name]=\"name\"\n [attr.value]=\"value\"\n [required]=\"required\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledby\"\n [attr.aria-describedby]=\"ariaDescribedby\"\n (change)=\"_onInputChange($event)\"\n (blur)=\"_onBlur()\" />\n</impdc-toggle>\n", styles: [":host{display:block;opacity:var(--impartner-hex-input-opacity, 1)}:host.impdc-radio-button--inline{display:inline-block}:host.impdc-radio-button--inline:not(:last-of-type){margin-right:4rem}:host:not(.impdc-radio-button--inline):not(:last-of-type){margin-bottom:1.6rem}:host.impdc-radio-button--disabled{--impartner-hex-input-opacity: .5}:host.impdc-radio-button--invalid ::ng-deep .form-check-label{color:var(--impd-color-red-600)}\n"] }]
221
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1.UniqueSelectionDispatcher }, { type: undefined, decorators: [{
222
- type: Attribute,
223
- args: ['tabindex']
224
- }] }, { type: undefined, decorators: [{
225
- type: Inject,
226
- args: [IMPDC_RADIO_GROUP]
227
- }, {
228
- type: Optional
229
- }] }], propDecorators: { _inputElement: [{
230
- type: ViewChild,
231
- args: ['nativeInput', { read: ElementRef }]
232
- }], id: [{
233
- type: Input
234
- }], name: [{
235
- type: Input
236
- }], ariaLabel: [{
237
- type: Input,
238
- args: ['aria-label']
239
- }], ariaLabelledby: [{
240
- type: Input,
241
- args: ['aria-labelledby']
242
- }], ariaDescribedby: [{
243
- type: Input,
244
- args: ['aria-describedby']
245
- }], checked: [{
246
- type: Input
247
- }], value: [{
248
- type: Input
249
- }], inline: [{
250
- type: Input
251
- }], disabled: [{
252
- type: Input
253
- }], required: [{
254
- type: Input
255
- }], label: [{
256
- type: Input
257
- }], description: [{
258
- type: Input
259
- }], change: [{
260
- type: Output
261
- }] } });
262
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8tYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbi1jb21wb25lbnRzL3NyYy9saWIvZm9ybS1maWVsZC9jb250cm9scy9yYWRpby9yYWRpby1idXR0b24vcmFkaW8tYnV0dG9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbi1jb21wb25lbnRzL3NyYy9saWIvZm9ybS1maWVsZC9jb250cm9scy9yYWRpby9yYWRpby1idXR0b24vcmFkaW8tYnV0dG9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBRUwsU0FBUyxFQUNULHVCQUF1QixFQUV2QixTQUFTLEVBRVQsVUFBVSxFQUNWLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUdMLFFBQVEsRUFDUixNQUFNLEVBQ04sU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDaEMsT0FBTyxFQUVMLDBCQUEwQixFQUMxQix5QkFBeUIsRUFDMUIsTUFBTSwwQkFBMEIsQ0FBQztBQUVsQyxPQUFPLEVBQWUsYUFBYSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDN0UsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUM1QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7QUFHNUUsTUFBZSx3QkFBd0I7SUFFckMsZ0JBQWUsQ0FBQztDQUNqQjtBQUVELE1BQU0sOEJBQThCLEdBQUcsYUFBYSxDQUFDLHdCQUF3QixDQUFDLENBQUM7QUFnQy9FLE1BQU0sT0FBTyxvQkFDWCxTQUFRLDhC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a0JBQWtCLG1CQUNYLHVCQUF1QixDQUFDLE1BQU0sYUFDcEM7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGtCQUFrQjs0QkFDM0IsV0FBVyxzQkFBc0I7eUJBQ2xDO3FCQUNGOzswQkFtTEUsU0FBUzsyQkFBQyxVQUFVOzswQkFDcEIsTUFBTTsyQkFBQyxpQkFBaUI7OzBCQUFHLFFBQVE7eUNBbks5QixhQUFhO3NCQURwQixTQUFTO3VCQUFDLGFBQWEsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7Z0JBSXZDLEVBQUU7c0JBRFIsS0FBSztnQkFPQyxJQUFJO3NCQURWLEtBQUs7Z0JBT0MsU0FBUztzQkFEZixLQUFLO3VCQUFDLFlBQVk7Z0JBT1osY0FBYztzQkFEcEIsS0FBSzt1QkFBQyxpQkFBaUI7Z0JBT2pCLGVBQWU7c0JBRHJCLEtBQUs7dUJBQUMsa0JBQWtCO2dCQU9kLE9BQU87c0JBRGpCLEtBQUs7Z0JBcUNLLEtBQUs7c0JBRGYsS0FBSztnQkF5QkssTUFBTTtzQkFEaEIsS0FBSztnQkFnQkssUUFBUTtzQkFEbEIsS0FBSztnQkFrQkssUUFBUTtzQkFEbEIsS0FBSztnQkFlQyxLQUFLO3NCQURYLEtBQUs7Z0JBUUMsV0FBVztzQkFEakIsS0FBSztnQkFRVSxNQUFNO3NCQUZyQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIEF0dHJpYnV0ZSxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIERvQ2hlY2ssXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5qZWN0LFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE9wdGlvbmFsLFxuICBPdXRwdXQsXG4gIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IG5hbm9pZCB9IGZyb20gJ25hbm9pZCc7XG5pbXBvcnQge1xuICBCb29sZWFuSW5wdXQsXG4gIGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eVZhbHVlLFxuICBjb2VyY2VOdW1iZXJQcm9wZXJ0eVZhbHVlXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uL3V0aWxpdGllcyc7XG5pbXBvcnQgeyBVbmlxdWVTZWxlY3Rpb25EaXNwYXRjaGVyIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvdW5pcXVlLXNlbGVjdGlvbi1kaXNwYXRjaGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgSGFzVGFiSW5kZXgsIG1peGluVGFiSW5kZXggfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvdGFiLWluZGV4Lm1peGluJztcbmltcG9ydCB7IFRvZ2dsZU1vZHVsZSB9IGZyb20gJy4uLy4uL3NoYXJlZCc7XG5pbXBvcnQgeyBJTVBEQ19SQURJT19CVVRUT04sIElNUERDX1JBRElPX0dST1VQIH0gZnJvbSAnLi4vaW5qZWN0aW9uLXRva2Vucyc7XG5pbXBvcnQgeyBSYWRpb0NoYW5nZUV2ZW50LCBJUmFkaW9CdXR0b24sIElSYWRpb0dyb3VwIH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5cbmFic3RyYWN0IGNsYXNzIFJhZGlvQnV0dG9uQ29tcG9uZW50QmFzZSB7XG4gIGFic3RyYWN0IGRpc2FibGVkOiBib29sZWFuO1xuICBjb25zdHJ1Y3RvcigpIHt9XG59XG5cbmNvbnN0IF9SYWRpb0J1dHRvbkNvbXBvbmVudE1peGluQmFzZSA9IG1peGluVGFiSW5kZXgoUmFkaW9CdXR0b25Db21wb25lbnRCYXNlKTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaW1wZGMtcmFkaW8tYnV0dG9uJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgVG9nZ2xlTW9kdWxlXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3JhZGlvLWJ1dHRvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3JhZGlvLWJ1dHRvbi5jb21wb25lbnQuc2NzcyddLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWhvc3QtbWV0YWRhdGEtcHJvcGVydHlcbiAgaG9zdDoge1xuICAgIGNsYXNzOiAnaW1wZGMtcmFkaW8tYnV0dG9uJyxcbiAgICAnW2F0dHIuaWRdJzogJ2lkJyxcbiAgICAnW2F0dHIudGFiaW5kZXhdJzogJ251bGwnLFxuICAgICdbYXR0ci5hcmlhLWxhYmVsXSc6ICdudWxsJyxcbiAgICAnW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XSc6ICdudWxsJyxcbiAgICAnW2F0dHIuYXJpYS1kZXNjcmliZWRieV0nOiAnbnVsbCcsXG4gICAgJ1tjbGFzcy5pbXBkYy1yYWRpby1idXR0b24tLXJlcXVpcmVkXSc6ICdyZXF1aXJlZCcsXG4gICAgJ1tjbGFzcy5pbXBkYy1yYWRpby1idXR0b24tLWludmFsaWRdJzogJ19lcnJvclN0YXRlJyxcbiAgICAnW2NsYXNzLmltcGRjLXJhZGlvLWJ1dHRvbi0tZGlzYWJsZWRdJzogJ2Rpc2FibGVkJyxcbiAgICAnW2NsYXNzLmltcGRjLXJhZGlvLWJ1dHRvbi0taW5saW5lXSc6ICdpbmxpbmUnXG4gIH0sXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWyd0YWJJbmRleCddLFxuICBleHBvcnRBczogJ2ltcGRjUmFkaW9CdXR0b24nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogSU1QRENfUkFESU9fQlVUVE9OLFxuICAgICAgdXNlRXhpc3Rpbmc6IFJhZGlvQnV0dG9uQ29tcG9uZW50XG4gICAgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIFJhZGlvQnV0dG9uQ29tcG9uZW50XG4gIGV4dGVuZHMgX1JhZGlvQnV0dG9uQ29tcG9uZW50TWl4aW5CYXNlXG4gIGltcGxlbWVudHNcbiAgICBJUmFkaW9CdXR0b24sXG4gICAgSGFzVGFiSW5kZXgsXG4gICAgT25Jbml0LFxuICAgIE9uRGVzdHJveSxcbiAgICBEb0NoZWNrLFxuICAgIEFmdGVyVmlld0luaXRcbntcbiAgcHJpdmF0ZSByZWFkb25seSBfdWlkOiBzdHJpbmcgPSBgaW1wZGMtcmFkaW8tYnV0dG9uLSR7bmFub2lkKCl9YDtcbiAgcHJpdmF0ZSBfcmVtb3ZlVW5pcXVlU2VsZWN0aW9uTGlzdGVuZXI6ICgpID0+IHZvaWQgPSAoKSA9PiB7fTtcbiAgcHJpdmF0ZSBfcHJldmlvdXNUYWJJbmRleD86IG51bWJlcjtcblxuICBAVmlld0NoaWxkKCduYXRpdmVJbnB1dCcsIHsgcmVhZDogRWxlbWVudFJlZiB9KVxuICBwcml2YXRlIF9pbnB1dEVsZW1lbnQhOiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBpZDogc3RyaW5nID0gdGhpcy5fdWlkO1xuXG4gIC8qKlxuICAgKiBUaGUgdW5pcXVlIG5hbWUgZm9yIGEgZ3JvdXAgb2YgcmFkaW8gb3B0aW9uczsgSW5oZXJpdGVkIGZyb20gdGhlIHBhcmVudCBgUmFkaW9Hcm91cERpcmVjdGl2ZWAgd2hlbiBhdmFpbGFibGUuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgbmFtZSE6IHN0cmluZztcblxuICAvKipcbiAgICogUHJvcGVydHkgZm9yIHNldHRpbmcgQVJJQSBcImxhYmVsXCIgYXR0cmlidXRlLlxuICAgKi9cbiAgQElucHV0KCdhcmlhLWxhYmVsJylcbiAgcHVibGljIGFyaWFMYWJlbD86IHN0cmluZztcblxuICAvKipcbiAgICogUHJvcGVydHkgZm9yIHNldHRpbmcgQVJJQSBcImxhYmVsbGVkIGJ5XCIgYXR0cmlidXRlLlxuICAgKi9cbiAgQElucHV0KCdhcmlhLWxhYmVsbGVkYnknKVxuICBwdWJsaWMgYXJpYUxhYmVsbGVkYnk/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFByb3BlcnR5IGZvciBzZXR0aW5nIEFSSUEgXCJkZXNjcmliZWQgYnlcIiBhdHRyaWJ1dGUuXG4gICAqL1xuICBASW5wdXQoJ2FyaWEtZGVzY3JpYmVkYnknKVxuICBwdWJsaWMgYXJpYURlc2NyaWJlZGJ5Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIG9yIG5vdCB0aGUgcmFkaW8gaW5wdXQgaXMgY2hlY2tlZC9zZWxlY3RlZC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBnZXQgY2hlY2tlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fY2hlY2tlZDtcbiAgfVxuICBwdWJsaWMgc2V0IGNoZWNrZWQodmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgIGNvbnN0IG5ld0NoZWNrZWRWYWx1ZSA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eVZhbHVlKHZhbHVlKTtcblxuICAgIGlmICh0aGlzLl9jaGVja2VkICE9PSBuZXdDaGVja2VkVmFsdWUpIHtcbiAgICAgIHRoaXMuX2NoZWNrZWQgPSBuZXdDaGVja2VkVmFsdWU7XG5cbiAgICAgIGlmIChcbiAgICAgICAgbmV3Q2hlY2tlZFZhbHVlICYmXG4gICAgICAgIHRoaXMuX3JhZGlvR3JvdXAgJiZcbiAgICAgICAgdGhpcy5fcmFkaW9Hcm91cC52YWx1ZSAhPT0gdGhpcy52YWx1ZVxuICAgICAgKSB7XG4gICAgICAgIHRoaXMuX3JhZGlvR3JvdXAuc2VsZWN0ZWQgPSB0aGlzO1xuICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgIW5ld0NoZWNrZWRWYWx1ZSAmJlxuICAgICAgICB0aGlzLl9yYWRpb0dyb3VwICYmXG4gICAgICAgIHRoaXMuX3JhZGlvR3JvdXAudmFsdWUgPT09IHRoaXMudmFsdWVcbiAgICAgICkge1xuICAgICAgICB0aGlzLl9yYWRpb0dyb3VwLnNlbGVjdGVkID0gbnVsbDtcbiAgICAgIH1cblxuICAgICAgaWYgKG5ld0NoZWNrZWRWYWx1ZSkge1xuICAgICAgICB0aGlzLl9yYWRpb0Rpc3BhdGNoZXIubm90aWZ5KHRoaXMuaWQsIHRoaXMubmFtZSk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cbiAgfVxuICBwcm90ZWN0ZWQgX2NoZWNrZWQgPSBmYWxzZTtcblxuICAvKipcbiAgICogVGhlIHNwZWNpZmljIHZhbHVlIHJlcHJlc2VudGVkIGJ5IHRoZSByYWRpbyBidXR0b24uXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgZ2V0IHZhbHVlKCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xuICB9XG4gIHB1YmxpYyBzZXQgdmFsdWUodmFsdWU6IGFueSkge1xuICAgIGlmICh0aGlzLl92YWx1ZSAhPT0gdmFsdWUpIHtcbiAgICAgIHRoaXMuX3ZhbHVlID0gdmFsdWU7XG5cbiAgICAgIGlmICh0aGlzLl9yYWRpb0dyb3VwKSB7XG4gICAgICAgIGlmICghdGhpcy5jaGVja2VkKSB7XG4gICAgICAgICAgdGhpcy5jaGVja2VkID0gdGhpcy5fcmFkaW9Hcm91cC52YWx1ZSA9PT0gdmFsdWU7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5jaGVja2VkKSB7XG4gICAgICAgICAgdGhpcy5fcmFkaW9Hcm91cC5zZWxlY3RlZCA9IHRoaXM7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcHJvdGVjdGVkIF92YWx1ZTogYW55ID0gbnVsbDtcblxuICAvKipcbiAgICogV2hldGhlciBvciBub3QgdGhlIHJhZGlvIGJ1dHRvbiBkaXNwbGF5cyBpbmxpbmU7IEluaGVyaXRlZCBmcm9tIHRoZSBwYXJlbnQgYFJhZGlvR3JvdXBEaXJlY3RpdmVgIHdoZW4gYXZhaWxhYmxlLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGdldCBpbmxpbmUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMuX2lubGluZSB8fCAodGhpcy5fcmFkaW9Hcm91cCAmJiB0aGlzLl9yYWRpb0dyb3VwLmlubGluZSkgfHwgZmFsc2VcbiAgICApO1xuICB9XG4gIHB1YmxpYyBzZXQgaW5saW5lKHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICB0aGlzLl9pbmxpbmUgPSBjb2VyY2VCb29sZWFuUHJvcGVydHlWYWx1ZSh2YWx1ZSk7XG4gIH1cbiAgcHJvdGVjdGVkIF9pbmxpbmU/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBVc2VkIHRvIGVuYWJsZSBvciBkaXNhYmxlIHRoZSByYWRpbyBidXR0b24sIGJ1dCB3aWxsIGFsd2F5cyByZXR1cm4gYHRydWVgIHdoZW4gdGhlIHBhcmVudFxuICAgKiBgUmFkaW9Hcm91cERpcmVjdGl2ZWAgaXMgYWxyZWFkeSBkaXNhYmxlZC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMuX2Rpc2FibGVkIHx8ICh0aGlzLl9yYWRpb0dyb3VwICE9IG51bGwgJiYgdGhpcy5fcmFkaW9Hcm91cC5kaXNhYmxlZClcbiAgICApO1xuICB9XG4gIHB1YmxpYyBzZXQgZGlzYWJsZWQodmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgIGNvbnN0IG5ld0Rpc2FibGVkU3RhdGUgPSBjb2VyY2VCb29sZWFuUHJvcGVydHlWYWx1ZSh2YWx1ZSk7XG5cbiAgICBpZiAodGhpcy5fZGlzYWJsZWQgIT09IG5ld0Rpc2FibGVkU3RhdGUpIHtcbiAgICAgIHRoaXMuX2Rpc2FibGVkID0gbmV3RGlzYWJsZWRTdGF0ZTtcbiAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cbiAgfVxuICBwcm90ZWN0ZWQgX2Rpc2FibGVkID0gZmFsc2U7XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGdldCByZXF1aXJlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5fcmVxdWlyZWQgfHwgKHRoaXMuX3JhZGlvR3JvdXAgIT0gbnVsbCAmJiB0aGlzLl9yYWRpb0dyb3VwLnJlcXVpcmVkKVxuICAgICk7XG4gIH1cbiAgcHVibGljIHNldCByZXF1aXJlZCh2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgdGhpcy5fcmVxdWlyZWQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHlWYWx1ZSh2YWx1ZSk7XG4gIH1cbiAgcHJvdGVjdGVkIF9yZXF1aXJlZCA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBUaGUgcHJpbWFyeSBsYWJlbCB0ZXh0IGZvciB0aGUgcmFkaW8gYnV0dG9uLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGxhYmVsID0gJyc7XG5cbiAgLyoqXG4gICAqIFRleHQgdG8gcHJvdmlkZSBhZGRpdGlvbmFsIGRlc2NyaXB0aW9uIG9yIGNvbnRleHQgZm9yIHRoZSByYWRpbyBidXR0b24uIERvZXNcbiAgICogbm90IGRpc3BsYXkgaWYgYGlubGluZWAgaXMgYHRydWVgLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGRlc2NyaXB0aW9uID0gJyc7XG5cbiAgLyoqXG4gICAqIEV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgcmFkaW8gYnV0dG9uIGJlY29tZXMgc2VsZWN0ZWQvY2hlY2tlZC5cbiAgICovXG4gIEBPdXRwdXQoKVxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLW91dHB1dC1uYXRpdmVcbiAgcHVibGljIHJlYWRvbmx5IGNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8UmFkaW9DaGFuZ2VFdmVudD4oKTtcblxuICBwcm90ZWN0ZWQgZ2V0IF9lcnJvclN0YXRlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9yYWRpb0dyb3VwID8gdGhpcy5fcmFkaW9Hcm91cC5lcnJvclN0YXRlIDogZmFsc2U7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9jaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSBfcmFkaW9EaXNwYXRjaGVyOiBVbmlxdWVTZWxlY3Rpb25EaXNwYXRjaGVyLFxuICAgIEBBdHRyaWJ1dGUoJ3RhYmluZGV4JykgdGFiSW5kZXg/OiBzdHJpbmcsXG4gICAgQEluamVjdChJTVBEQ19SQURJT19HUk9VUCkgQE9wdGlvbmFsKCkgcmVhZG9ubHkgX3JhZGlvR3JvdXA/OiBJUmFkaW9Hcm91cFxuICApIHtcbiAgICBzdXBlcigpO1xuXG4gICAgaWYgKHRhYkluZGV4KSB7XG4gICAgICB0aGlzLnRhYkluZGV4ID0gY29lcmNlTnVtYmVyUHJvcGVydHlWYWx1ZSh0YWJJbmRleCwgMCk7XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9yYWRpb0dyb3VwKSB7XG4gICAgICB0aGlzLmNoZWNrZWQgPSB0aGlzLl9yYWRpb0dyb3VwLnZhbHVlID09PSB0aGlzLl92YWx1ZTtcblxuICAgICAgaWYgKHRoaXMuY2hlY2tlZCkge1xuICAgICAgICB0aGlzLl9yYWRpb0dyb3VwLnNlbGVjdGVkID0gdGhpcztcbiAgICAgIH1cblxuICAgICAgdGhpcy5uYW1lID0gdGhpcy5fcmFkaW9Hcm91cC5uYW1lO1xuICAgIH1cblxuICAgIHRoaXMuX3JlbW92ZVVuaXF1ZVNlbGVjdGlvbkxpc3RlbmVyID0gdGhpcy5fcmFkaW9EaXNwYXRjaGVyLmxpc3RlbihcbiAgICAgIChpZCwgbmFtZSkgPT4ge1xuICAgICAgICBpZiAoaWQgIT09IHRoaXMuaWQgJiYgbmFtZSA9PT0gdGhpcy5uYW1lKSB7XG4gICAgICAgICAgdGhpcy5jaGVja2VkID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICApO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHVibGljIG5nRG9DaGVjaygpOiB2b2lkIHtcbiAgICB0aGlzLl91cGRhdGVUYWJJbmRleCgpO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLl91cGRhdGVUYWJJbmRleCgpO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX3JlbW92ZVVuaXF1ZVNlbGVjdGlvbkxpc3RlbmVyKCk7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwdWJsaWMgbWFya0ZvckNoZWNrKCk6IHZvaWQge1xuICAgIHRoaXMuX2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHJvdGVjdGVkIF9lbWl0Q2hhbmdlc0V2ZW50KCk6IHZvaWQge1xuICAgIHRoaXMuY2hhbmdlLmVtaXQoeyBzb3VyY2U6IHRoaXMsIHZhbHVlOiB0aGlzLl92YWx1ZSB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBfb25CbHVyKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9yYWRpb0dyb3VwKSB7XG4gICAgICB0aGlzLl9yYWRpb0dyb3VwLnRvdWNoKCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIF9vbklucHV0Q2hhbmdlKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgaWYgKCF0aGlzLmNoZWNrZWQgJiYgIXRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIGNvbnN0IGdyb3VwVmFsdWVDaGFuZ2VkID1cbiAgICAgICAgdGhpcy5fcmFkaW9Hcm91cCAmJiB0aGlzLnZhbHVlICE9PSB0aGlzLl9yYWRpb0dyb3VwLnZhbHVlO1xuICAgICAgdGhpcy5jaGVja2VkID0gdHJ1ZTtcbiAgICAgIHRoaXMuX2VtaXRDaGFuZ2VzRXZlbnQoKTtcblxuICAgICAgaWYgKHRoaXMuX3JhZGlvR3JvdXApIHtcbiAgICAgICAgdGhpcy5fcmFkaW9Hcm91cC5vbkNoYW5nZUZuKHRoaXMudmFsdWUpO1xuXG4gICAgICAgIGlmIChncm91cFZhbHVlQ2hhbmdlZCkge1xuICAgICAgICAgIHRoaXMuX3JhZGlvR3JvdXAuZW1pdENoYW5nZXNFdmVudCgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIF91cGRhdGVUYWJJbmRleCgpOiB2b2lkIHtcbiAgICBjb25zdCByYWRpb0dyb3VwID0gdGhpcy5fcmFkaW9Hcm91cDtcbiAgICBsZXQgdGFiSW5kZXhWYWx1ZTogbnVtYmVyO1xuXG4gICAgaWYgKCFyYWRpb0dyb3VwIHx8ICFyYWRpb0dyb3VwLnNlbGVjdGVkIHx8IHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHRhYkluZGV4VmFsdWUgPSB0aGlzLnRhYkluZGV4O1xuICAgIH0gZWxzZSB7XG4gICAgICB0YWJJbmRleFZhbHVlID0gcmFkaW9Hcm91cC5zZWxlY3RlZCA9PT0gdGhpcyA/IHRoaXMudGFiSW5kZXggOiAtMTtcbiAgICB9XG5cbiAgICBpZiAodGFiSW5kZXhWYWx1ZSAhPT0gdGhpcy5fcHJldmlvdXNUYWJJbmRleCkge1xuICAgICAgY29uc3QgaW5wdXRFbHQ6IEhUTUxJbnB1dEVsZW1lbnQgfCB1bmRlZmluZWQgPVxuICAgICAgICB0aGlzLl9pbnB1dEVsZW1lbnQ/Lm5hdGl2ZUVsZW1lbnQ7XG5cbiAgICAgIGlmIChpbnB1dEVsdCkge1xuICAgICAgICBpbnB1dEVsdC5zZXRBdHRyaWJ1dGUoJ3RhYmluZGV4JywgdGFiSW5kZXhWYWx1ZSArICcnKTtcbiAgICAgICAgdGhpcy5fcHJldmlvdXNUYWJJbmRleCA9IHRhYkluZGV4VmFsdWU7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCI8aW1wZGMtdG9nZ2xlIFtsYWJlbF09XCJsYWJlbFwiIFtkZXNjcmlwdGlvbl09XCJkZXNjcmlwdGlvblwiIFtpbmxpbmVdPVwiaW5saW5lXCI+XG4gIDxpbnB1dFxuICAgICNuYXRpdmVJbnB1dFxuICAgIGltcGRjLXRvZ2dsZS1pbnB1dFxuICAgIHR5cGU9XCJyYWRpb1wiXG4gICAgY2xhc3M9XCJpbXBkYy1yYWRpby1idXR0b25fX25hdGl2ZS1jb250cm9sXCJcbiAgICBbY2xhc3MuaXMtaW52YWxpZF09XCJfZXJyb3JTdGF0ZVwiXG4gICAgW2NoZWNrZWRdPVwiY2hlY2tlZFwiXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICBbYXR0ci5uYW1lXT1cIm5hbWVcIlxuICAgIFthdHRyLnZhbHVlXT1cInZhbHVlXCJcbiAgICBbcmVxdWlyZWRdPVwicmVxdWlyZWRcIlxuICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiYXJpYUxhYmVsXCJcbiAgICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiYXJpYUxhYmVsbGVkYnlcIlxuICAgIFthdHRyLmFyaWEtZGVzY3JpYmVkYnldPVwiYXJpYURlc2NyaWJlZGJ5XCJcbiAgICAoY2hhbmdlKT1cIl9vbklucHV0Q2hhbmdlKCRldmVudClcIlxuICAgIChibHVyKT1cIl9vbkJsdXIoKVwiIC8+XG48L2ltcGRjLXRvZ2dsZT5cbiJdfQ==