@impartner/design-components 1.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 (315) hide show
  1. package/LICENSE.txt +11 -0
  2. package/README.md +22 -0
  3. package/constants/fontawesome-icons.d.ts +6 -0
  4. package/constants/index.d.ts +1 -0
  5. package/esm2020/constants/fontawesome-icons.mjs +3012 -0
  6. package/esm2020/constants/index.mjs +2 -0
  7. package/esm2020/impartner-design-components.mjs +5 -0
  8. package/esm2020/lib/alert/alert.component.mjs +57 -0
  9. package/esm2020/lib/alert/alert.module.mjs +18 -0
  10. package/esm2020/lib/alert/index.mjs +4 -0
  11. package/esm2020/lib/alert/theme/alert-theme.mjs +2 -0
  12. package/esm2020/lib/alert/theme/index.mjs +2 -0
  13. package/esm2020/lib/avatar/avatar.component.mjs +47 -0
  14. package/esm2020/lib/avatar/avatar.module.mjs +18 -0
  15. package/esm2020/lib/avatar/index.mjs +3 -0
  16. package/esm2020/lib/avatar-group/avatar-group.component.mjs +16 -0
  17. package/esm2020/lib/avatar-group/avatar-group.module.mjs +19 -0
  18. package/esm2020/lib/avatar-group/index.mjs +3 -0
  19. package/esm2020/lib/backdrop/backdrop.component.mjs +34 -0
  20. package/esm2020/lib/backdrop/backdrop.module.mjs +19 -0
  21. package/esm2020/lib/backdrop/index.mjs +3 -0
  22. package/esm2020/lib/badge/badge.component.mjs +98 -0
  23. package/esm2020/lib/badge/badge.module.mjs +19 -0
  24. package/esm2020/lib/badge/index.mjs +4 -0
  25. package/esm2020/lib/badge/types/badge-icon.mjs +2 -0
  26. package/esm2020/lib/badge/types/badge-size.mjs +7 -0
  27. package/esm2020/lib/badge/types/index.mjs +2 -0
  28. package/esm2020/lib/branding/branded.directive.mjs +19 -0
  29. package/esm2020/lib/branding/branding.module.mjs +19 -0
  30. package/esm2020/lib/branding/index.mjs +3 -0
  31. package/esm2020/lib/breadcrumb/breadcrumb-item.component.mjs +25 -0
  32. package/esm2020/lib/breadcrumb/breadcrumb.component.mjs +33 -0
  33. package/esm2020/lib/breadcrumb/breadcrumb.module.mjs +19 -0
  34. package/esm2020/lib/breadcrumb/index.mjs +4 -0
  35. package/esm2020/lib/button/button.component.mjs +116 -0
  36. package/esm2020/lib/button/button.module.mjs +21 -0
  37. package/esm2020/lib/button/index.mjs +4 -0
  38. package/esm2020/lib/button/themes/button-theme.mjs +2 -0
  39. package/esm2020/lib/button/themes/index.mjs +2 -0
  40. package/esm2020/lib/button-group/button-group.component.mjs +52 -0
  41. package/esm2020/lib/button-group/button-group.module.mjs +20 -0
  42. package/esm2020/lib/button-group/index.mjs +3 -0
  43. package/esm2020/lib/card-heading/card-heading.component.mjs +30 -0
  44. package/esm2020/lib/card-heading/card-heading.module.mjs +19 -0
  45. package/esm2020/lib/card-heading/index.mjs +3 -0
  46. package/esm2020/lib/design-components.module.mjs +119 -0
  47. package/esm2020/lib/dropdown/components/dropdown-item/dropdown-item.component.mjs +22 -0
  48. package/esm2020/lib/dropdown/components/index.mjs +2 -0
  49. package/esm2020/lib/dropdown/dropdown.component.mjs +140 -0
  50. package/esm2020/lib/dropdown/dropdown.module.mjs +21 -0
  51. package/esm2020/lib/dropdown/index.mjs +5 -0
  52. package/esm2020/lib/dropdown/types/dropdown-position.mjs +2 -0
  53. package/esm2020/lib/dropdown/types/index.mjs +2 -0
  54. package/esm2020/lib/file-upload/directives/file-drop.directive.mjs +50 -0
  55. package/esm2020/lib/file-upload/directives/index.mjs +2 -0
  56. package/esm2020/lib/file-upload/file-upload.component.mjs +334 -0
  57. package/esm2020/lib/file-upload/file-upload.module.mjs +29 -0
  58. package/esm2020/lib/file-upload/index.mjs +5 -0
  59. package/esm2020/lib/file-upload/pipes/human-readable-byte-size.pipe.mjs +23 -0
  60. package/esm2020/lib/file-upload/pipes/index.mjs +2 -0
  61. package/esm2020/lib/form-field/controls/checkbox/checkbox.component.mjs +337 -0
  62. package/esm2020/lib/form-field/controls/checkbox/checkbox.module.mjs +19 -0
  63. package/esm2020/lib/form-field/controls/checkbox/index.mjs +3 -0
  64. package/esm2020/lib/form-field/controls/index.mjs +5 -0
  65. package/esm2020/lib/form-field/controls/input/index.mjs +2 -0
  66. package/esm2020/lib/form-field/controls/input/input.directive.mjs +233 -0
  67. package/esm2020/lib/form-field/controls/radio/index.mjs +6 -0
  68. package/esm2020/lib/form-field/controls/radio/injection-tokens.mjs +4 -0
  69. package/esm2020/lib/form-field/controls/radio/interfaces/index.mjs +4 -0
  70. package/esm2020/lib/form-field/controls/radio/interfaces/radio-button.interface.mjs +2 -0
  71. package/esm2020/lib/form-field/controls/radio/interfaces/radio-change-event.interface.mjs +11 -0
  72. package/esm2020/lib/form-field/controls/radio/interfaces/radio-group.interface.mjs +2 -0
  73. package/esm2020/lib/form-field/controls/radio/radio-button/radio-button.component.mjs +260 -0
  74. package/esm2020/lib/form-field/controls/radio/radio-group/radio-group.directive.mjs +288 -0
  75. package/esm2020/lib/form-field/controls/radio/radio.module.mjs +20 -0
  76. package/esm2020/lib/form-field/controls/select/index.mjs +6 -0
  77. package/esm2020/lib/form-field/controls/select/option/index.mjs +2 -0
  78. package/esm2020/lib/form-field/controls/select/option/select-option.component.mjs +138 -0
  79. package/esm2020/lib/form-field/controls/select/option-parent.mjs +3 -0
  80. package/esm2020/lib/form-field/controls/select/select-model.mjs +149 -0
  81. package/esm2020/lib/form-field/controls/select/select.component.mjs +522 -0
  82. package/esm2020/lib/form-field/controls/select/select.module.mjs +20 -0
  83. package/esm2020/lib/form-field/controls/shared/index.mjs +2 -0
  84. package/esm2020/lib/form-field/controls/shared/toggle/components/index.mjs +2 -0
  85. package/esm2020/lib/form-field/controls/shared/toggle/components/toggle-input/toggle-input.component.mjs +17 -0
  86. package/esm2020/lib/form-field/controls/shared/toggle/index.mjs +4 -0
  87. package/esm2020/lib/form-field/controls/shared/toggle/toggle.component.mjs +96 -0
  88. package/esm2020/lib/form-field/controls/shared/toggle/toggle.module.mjs +20 -0
  89. package/esm2020/lib/form-field/directives/corner-hint.directive.mjs +14 -0
  90. package/esm2020/lib/form-field/directives/error.directive.mjs +26 -0
  91. package/esm2020/lib/form-field/directives/form-root.directive.mjs +91 -0
  92. package/esm2020/lib/form-field/directives/hint.directive.mjs +24 -0
  93. package/esm2020/lib/form-field/directives/index.mjs +8 -0
  94. package/esm2020/lib/form-field/directives/label.directive.mjs +14 -0
  95. package/esm2020/lib/form-field/directives/prefix.directive.mjs +24 -0
  96. package/esm2020/lib/form-field/directives/suffix.directive.mjs +24 -0
  97. package/esm2020/lib/form-field/form-field-errors.mjs +5 -0
  98. package/esm2020/lib/form-field/form-field.component.mjs +132 -0
  99. package/esm2020/lib/form-field/impdc-forms.mjs +8 -0
  100. package/esm2020/lib/form-field/impdc-forms.module.mjs +68 -0
  101. package/esm2020/lib/form-field/index.mjs +2 -0
  102. package/esm2020/lib/form-field/services/error-state-matcher.service.mjs +28 -0
  103. package/esm2020/lib/form-field/services/index.mjs +3 -0
  104. package/esm2020/lib/form-field/services/unique-selection-dispatcher.service.mjs +48 -0
  105. package/esm2020/lib/form-field/shared/constructors.type.mjs +2 -0
  106. package/esm2020/lib/form-field/shared/disabled.mixin.mjs +15 -0
  107. package/esm2020/lib/form-field/shared/error-state.mixin.mjs +24 -0
  108. package/esm2020/lib/form-field/shared/form-field-control.mjs +10 -0
  109. package/esm2020/lib/form-field/shared/index.mjs +5 -0
  110. package/esm2020/lib/form-field/shared/tab-index.mixin.mjs +19 -0
  111. package/esm2020/lib/icon/icon.component.mjs +70 -0
  112. package/esm2020/lib/icon/icon.module.mjs +19 -0
  113. package/esm2020/lib/icon/index.mjs +3 -0
  114. package/esm2020/lib/index.mjs +26 -0
  115. package/esm2020/lib/modal/index.mjs +4 -0
  116. package/esm2020/lib/modal/modal.component.mjs +141 -0
  117. package/esm2020/lib/modal/modal.module.mjs +37 -0
  118. package/esm2020/lib/modal/types/index.mjs +3 -0
  119. package/esm2020/lib/modal/types/modal-component-sizes.mjs +9 -0
  120. package/esm2020/lib/modal/types/modal-theme.mjs +12 -0
  121. package/esm2020/lib/pagination/index.mjs +3 -0
  122. package/esm2020/lib/pagination/pagination.component.mjs +134 -0
  123. package/esm2020/lib/pagination/pagination.module.mjs +21 -0
  124. package/esm2020/lib/progress-bar/index.mjs +3 -0
  125. package/esm2020/lib/progress-bar/progress-bar.component.mjs +35 -0
  126. package/esm2020/lib/progress-bar/progress-bar.module.mjs +18 -0
  127. package/esm2020/lib/scrollable/index.mjs +3 -0
  128. package/esm2020/lib/scrollable/scrollable.component.mjs +193 -0
  129. package/esm2020/lib/scrollable/scrollable.module.mjs +21 -0
  130. package/esm2020/lib/select-icon/index.mjs +3 -0
  131. package/esm2020/lib/select-icon/select-icon.component.mjs +307 -0
  132. package/esm2020/lib/select-icon/select-icon.module.mjs +35 -0
  133. package/esm2020/lib/size-detection/directive/element-size.interface.mjs +2 -0
  134. package/esm2020/lib/size-detection/directive/index.mjs +3 -0
  135. package/esm2020/lib/size-detection/directive/size-detector.directive.mjs +43 -0
  136. package/esm2020/lib/size-detection/index.mjs +3 -0
  137. package/esm2020/lib/size-detection/size-detection.module.mjs +18 -0
  138. package/esm2020/lib/spinner/index.mjs +3 -0
  139. package/esm2020/lib/spinner/spinner.component.mjs +24 -0
  140. package/esm2020/lib/spinner/spinner.module.mjs +18 -0
  141. package/esm2020/lib/table/index.mjs +3 -0
  142. package/esm2020/lib/table/table.component.mjs +33 -0
  143. package/esm2020/lib/table/table.module.mjs +19 -0
  144. package/esm2020/lib/text-highlight/index.mjs +3 -0
  145. package/esm2020/lib/text-highlight/text-highlight.component.mjs +81 -0
  146. package/esm2020/lib/text-highlight/text-highlight.module.mjs +19 -0
  147. package/esm2020/public-api.mjs +9 -0
  148. package/esm2020/services/index.mjs +2 -0
  149. package/esm2020/services/interaction.service.mjs +54 -0
  150. package/esm2020/types/component-size.mjs +12 -0
  151. package/esm2020/types/component-theme.mjs +22 -0
  152. package/esm2020/types/index.mjs +3 -0
  153. package/esm2020/utilities/boolean-props.mjs +7 -0
  154. package/esm2020/utilities/dc.mjs +9 -0
  155. package/esm2020/utilities/index.mjs +6 -0
  156. package/esm2020/utilities/lc.mjs +9 -0
  157. package/esm2020/utilities/number-props.mjs +18 -0
  158. package/esm2020/utilities/sanitize.mjs +7 -0
  159. package/fesm2015/impartner-design-components.mjs +8295 -0
  160. package/fesm2015/impartner-design-components.mjs.map +1 -0
  161. package/fesm2020/impartner-design-components.mjs +8264 -0
  162. package/fesm2020/impartner-design-components.mjs.map +1 -0
  163. package/index.d.ts +5 -0
  164. package/lib/alert/alert.component.d.ts +29 -0
  165. package/lib/alert/alert.module.d.ts +8 -0
  166. package/lib/alert/index.d.ts +3 -0
  167. package/lib/alert/theme/alert-theme.d.ts +1 -0
  168. package/lib/alert/theme/index.d.ts +1 -0
  169. package/lib/avatar/avatar.component.d.ts +28 -0
  170. package/lib/avatar/avatar.module.d.ts +8 -0
  171. package/lib/avatar/index.d.ts +2 -0
  172. package/lib/avatar-group/avatar-group.component.d.ts +10 -0
  173. package/lib/avatar-group/avatar-group.module.d.ts +9 -0
  174. package/lib/avatar-group/index.d.ts +2 -0
  175. package/lib/backdrop/backdrop.component.d.ts +19 -0
  176. package/lib/backdrop/backdrop.module.d.ts +9 -0
  177. package/lib/backdrop/index.d.ts +2 -0
  178. package/lib/badge/badge.component.d.ts +48 -0
  179. package/lib/badge/badge.module.d.ts +9 -0
  180. package/lib/badge/index.d.ts +3 -0
  181. package/lib/badge/types/badge-icon.d.ts +1 -0
  182. package/lib/badge/types/badge-size.d.ts +6 -0
  183. package/lib/badge/types/index.d.ts +2 -0
  184. package/lib/branding/branded.directive.d.ts +6 -0
  185. package/lib/branding/branding.module.d.ts +9 -0
  186. package/lib/branding/index.d.ts +2 -0
  187. package/lib/breadcrumb/breadcrumb-item.component.d.ts +7 -0
  188. package/lib/breadcrumb/breadcrumb.component.d.ts +18 -0
  189. package/lib/breadcrumb/breadcrumb.module.d.ts +9 -0
  190. package/lib/breadcrumb/index.d.ts +3 -0
  191. package/lib/button/button.component.d.ts +47 -0
  192. package/lib/button/button.module.d.ts +11 -0
  193. package/lib/button/index.d.ts +3 -0
  194. package/lib/button/themes/button-theme.d.ts +1 -0
  195. package/lib/button/themes/index.d.ts +1 -0
  196. package/lib/button-group/button-group.component.d.ts +22 -0
  197. package/lib/button-group/button-group.module.d.ts +10 -0
  198. package/lib/button-group/index.d.ts +2 -0
  199. package/lib/card-heading/card-heading.component.d.ts +18 -0
  200. package/lib/card-heading/card-heading.module.d.ts +9 -0
  201. package/lib/card-heading/index.d.ts +2 -0
  202. package/lib/design-components.module.d.ts +22 -0
  203. package/lib/dropdown/components/dropdown-item/dropdown-item.component.d.ts +11 -0
  204. package/lib/dropdown/components/index.d.ts +1 -0
  205. package/lib/dropdown/dropdown.component.d.ts +65 -0
  206. package/lib/dropdown/dropdown.module.d.ts +11 -0
  207. package/lib/dropdown/index.d.ts +4 -0
  208. package/lib/dropdown/types/dropdown-position.d.ts +1 -0
  209. package/lib/dropdown/types/index.d.ts +1 -0
  210. package/lib/file-upload/directives/file-drop.directive.d.ts +11 -0
  211. package/lib/file-upload/directives/index.d.ts +1 -0
  212. package/lib/file-upload/file-upload.component.d.ts +105 -0
  213. package/lib/file-upload/file-upload.module.d.ts +13 -0
  214. package/lib/file-upload/index.d.ts +4 -0
  215. package/lib/file-upload/pipes/human-readable-byte-size.pipe.d.ts +7 -0
  216. package/lib/file-upload/pipes/index.d.ts +1 -0
  217. package/lib/form-field/controls/checkbox/checkbox.component.d.ts +133 -0
  218. package/lib/form-field/controls/checkbox/checkbox.module.d.ts +9 -0
  219. package/lib/form-field/controls/checkbox/index.d.ts +2 -0
  220. package/lib/form-field/controls/index.d.ts +4 -0
  221. package/lib/form-field/controls/input/index.d.ts +1 -0
  222. package/lib/form-field/controls/input/input.directive.d.ts +84 -0
  223. package/lib/form-field/controls/radio/index.d.ts +5 -0
  224. package/lib/form-field/controls/radio/injection-tokens.d.ts +4 -0
  225. package/lib/form-field/controls/radio/interfaces/index.d.ts +3 -0
  226. package/lib/form-field/controls/radio/interfaces/radio-button.interface.d.ts +6 -0
  227. package/lib/form-field/controls/radio/interfaces/radio-change-event.interface.d.ts +12 -0
  228. package/lib/form-field/controls/radio/interfaces/radio-group.interface.d.ts +13 -0
  229. package/lib/form-field/controls/radio/radio-button/radio-button.component.d.ts +98 -0
  230. package/lib/form-field/controls/radio/radio-group/radio-group.directive.d.ts +104 -0
  231. package/lib/form-field/controls/radio/radio.module.d.ts +10 -0
  232. package/lib/form-field/controls/select/index.d.ts +5 -0
  233. package/lib/form-field/controls/select/option/index.d.ts +1 -0
  234. package/lib/form-field/controls/select/option/select-option.component.d.ts +60 -0
  235. package/lib/form-field/controls/select/option-parent.d.ts +5 -0
  236. package/lib/form-field/controls/select/select-model.d.ts +36 -0
  237. package/lib/form-field/controls/select/select.component.d.ts +170 -0
  238. package/lib/form-field/controls/select/select.module.d.ts +10 -0
  239. package/lib/form-field/controls/shared/index.d.ts +1 -0
  240. package/lib/form-field/controls/shared/toggle/components/index.d.ts +1 -0
  241. package/lib/form-field/controls/shared/toggle/components/toggle-input/toggle-input.component.d.ts +6 -0
  242. package/lib/form-field/controls/shared/toggle/index.d.ts +3 -0
  243. package/lib/form-field/controls/shared/toggle/toggle.component.d.ts +26 -0
  244. package/lib/form-field/controls/shared/toggle/toggle.module.d.ts +10 -0
  245. package/lib/form-field/directives/corner-hint.directive.d.ts +5 -0
  246. package/lib/form-field/directives/error.directive.d.ts +8 -0
  247. package/lib/form-field/directives/form-root.directive.d.ts +26 -0
  248. package/lib/form-field/directives/hint.directive.d.ts +6 -0
  249. package/lib/form-field/directives/index.d.ts +7 -0
  250. package/lib/form-field/directives/label.directive.d.ts +5 -0
  251. package/lib/form-field/directives/prefix.directive.d.ts +9 -0
  252. package/lib/form-field/directives/suffix.directive.d.ts +9 -0
  253. package/lib/form-field/form-field-errors.d.ts +2 -0
  254. package/lib/form-field/form-field.component.d.ts +39 -0
  255. package/lib/form-field/impdc-forms.d.ts +7 -0
  256. package/lib/form-field/impdc-forms.module.d.ts +19 -0
  257. package/lib/form-field/index.d.ts +1 -0
  258. package/lib/form-field/services/error-state-matcher.service.d.ts +12 -0
  259. package/lib/form-field/services/index.d.ts +2 -0
  260. package/lib/form-field/services/unique-selection-dispatcher.service.d.ts +29 -0
  261. package/lib/form-field/shared/constructors.type.d.ts +7 -0
  262. package/lib/form-field/shared/disabled.mixin.d.ts +10 -0
  263. package/lib/form-field/shared/error-state.mixin.d.ts +31 -0
  264. package/lib/form-field/shared/form-field-control.d.ts +24 -0
  265. package/lib/form-field/shared/index.d.ts +5 -0
  266. package/lib/form-field/shared/tab-index.mixin.d.ts +13 -0
  267. package/lib/icon/icon.component.d.ts +30 -0
  268. package/lib/icon/icon.module.d.ts +9 -0
  269. package/lib/icon/index.d.ts +2 -0
  270. package/lib/index.d.ts +25 -0
  271. package/lib/modal/index.d.ts +3 -0
  272. package/lib/modal/modal.component.d.ts +80 -0
  273. package/lib/modal/modal.module.d.ts +13 -0
  274. package/lib/modal/types/index.d.ts +2 -0
  275. package/lib/modal/types/modal-component-sizes.d.ts +3 -0
  276. package/lib/modal/types/modal-theme.d.ts +7 -0
  277. package/lib/pagination/index.d.ts +2 -0
  278. package/lib/pagination/pagination.component.d.ts +41 -0
  279. package/lib/pagination/pagination.module.d.ts +11 -0
  280. package/lib/progress-bar/index.d.ts +2 -0
  281. package/lib/progress-bar/progress-bar.component.d.ts +22 -0
  282. package/lib/progress-bar/progress-bar.module.d.ts +8 -0
  283. package/lib/scrollable/index.d.ts +2 -0
  284. package/lib/scrollable/scrollable.component.d.ts +39 -0
  285. package/lib/scrollable/scrollable.module.d.ts +11 -0
  286. package/lib/select-icon/index.d.ts +2 -0
  287. package/lib/select-icon/select-icon.component.d.ts +123 -0
  288. package/lib/select-icon/select-icon.module.d.ts +11 -0
  289. package/lib/size-detection/directive/element-size.interface.d.ts +4 -0
  290. package/lib/size-detection/directive/index.d.ts +2 -0
  291. package/lib/size-detection/directive/size-detector.directive.d.ts +14 -0
  292. package/lib/size-detection/index.d.ts +3 -0
  293. package/lib/size-detection/size-detection.module.d.ts +8 -0
  294. package/lib/spinner/index.d.ts +2 -0
  295. package/lib/spinner/spinner.component.d.ts +13 -0
  296. package/lib/spinner/spinner.module.d.ts +8 -0
  297. package/lib/table/index.d.ts +2 -0
  298. package/lib/table/table.component.d.ts +15 -0
  299. package/lib/table/table.module.d.ts +9 -0
  300. package/lib/text-highlight/index.d.ts +2 -0
  301. package/lib/text-highlight/text-highlight.component.d.ts +31 -0
  302. package/lib/text-highlight/text-highlight.module.d.ts +9 -0
  303. package/package.json +51 -0
  304. package/public-api.d.ts +4 -0
  305. package/services/index.d.ts +1 -0
  306. package/services/interaction.service.d.ts +14 -0
  307. package/types/component-size.d.ts +12 -0
  308. package/types/component-theme.d.ts +12 -0
  309. package/types/index.d.ts +2 -0
  310. package/utilities/boolean-props.d.ts +8 -0
  311. package/utilities/dc.d.ts +6 -0
  312. package/utilities/index.d.ts +5 -0
  313. package/utilities/lc.d.ts +6 -0
  314. package/utilities/number-props.d.ts +15 -0
  315. package/utilities/sanitize.d.ts +1 -0
@@ -0,0 +1,132 @@
1
+ import { ChangeDetectionStrategy, Component, ContentChild, ContentChildren, InjectionToken, ViewChild } from '@angular/core';
2
+ import { nanoid } from 'nanoid';
3
+ import { merge, Subject, takeUntil } from 'rxjs';
4
+ import { IMPDC_ERROR } from './directives/error.directive';
5
+ import { IMPDC_PREFIX } from './directives/prefix.directive';
6
+ import { IMPDC_SUFFIX } from './directives/suffix.directive';
7
+ import { getImpdcFormFieldMissingControlError } from './form-field-errors';
8
+ import { ImpdcFormFieldControl } from './shared/form-field-control';
9
+ import * as i0 from "@angular/core";
10
+ import * as i1 from "@angular/common";
11
+ export const IMPDC_FORM_FIELD = new InjectionToken('FormFieldComponent');
12
+ export class FormFieldComponent {
13
+ constructor(_elementRef, _changeDetectorRef) {
14
+ this._elementRef = _elementRef;
15
+ this._changeDetectorRef = _changeDetectorRef;
16
+ this._destroyedSubject = new Subject();
17
+ this._hasTextPrefix = false;
18
+ this._hasTextSuffix = false;
19
+ this._isFocused = null;
20
+ this._labelId = `impdc-form-field-label-${nanoid()}`;
21
+ }
22
+ get _control() {
23
+ return this._explicitFormFieldControl || this._formFieldControl;
24
+ }
25
+ set _control(value) {
26
+ this._explicitFormFieldControl = value;
27
+ }
28
+ ngAfterViewInit() {
29
+ this._updateFocusState();
30
+ this._changeDetectorRef.detectChanges();
31
+ }
32
+ ngAfterContentInit() {
33
+ this._assertFormFieldControl();
34
+ this._initializeControl();
35
+ this._initializePrefixAndSuffix();
36
+ }
37
+ ngAfterContentChecked() {
38
+ this._assertFormFieldControl();
39
+ }
40
+ _showErrors() {
41
+ return !!(this._errorChildren &&
42
+ this._errorChildren.length > 0 &&
43
+ this._control.errorState);
44
+ }
45
+ _shouldForwardControlState(prop) {
46
+ const ngControl = this._control ? this._control.ngControl : null;
47
+ return ngControl && ngControl[prop];
48
+ }
49
+ _initializeControl() {
50
+ const control = this._control;
51
+ if (control.controlType) {
52
+ this._elementRef.nativeElement.classList.add(`impdc-form-field-type-${control.controlType}`);
53
+ }
54
+ control.stateChanges
55
+ .pipe(takeUntil(this._destroyedSubject))
56
+ .subscribe(() => {
57
+ this._updateFocusState();
58
+ this._changeDetectorRef.markForCheck();
59
+ });
60
+ if (control.ngControl && control.ngControl.valueChanges) {
61
+ control.ngControl.valueChanges
62
+ .pipe(takeUntil(this._destroyedSubject))
63
+ .subscribe(() => {
64
+ this._changeDetectorRef.markForCheck();
65
+ });
66
+ }
67
+ }
68
+ _assertFormFieldControl() {
69
+ if (!this._control) {
70
+ throw getImpdcFormFieldMissingControlError();
71
+ }
72
+ }
73
+ _updateFocusState() {
74
+ if (this._control.focused && !this._isFocused) {
75
+ this._isFocused = true;
76
+ }
77
+ else if (!this._control.focused &&
78
+ (this._isFocused || this._isFocused === null)) {
79
+ this._isFocused = false;
80
+ }
81
+ this._inputArea.nativeElement.classList.toggle('impdc-form-field-control--focused', this._control.focused);
82
+ }
83
+ _checkPrefixAndSuffixTypes() {
84
+ this._hasTextPrefix = !!this._prefixChildren.find(p => p.isText);
85
+ this._hasTextSuffix = !!this._suffixChildren.find(s => s.isText);
86
+ }
87
+ /** Initializes the prefix and suffix containers. */
88
+ _initializePrefixAndSuffix() {
89
+ this._checkPrefixAndSuffixTypes();
90
+ // Mark the form field as dirty whenever the prefix or suffix children change. This
91
+ // is necessary because we conditionally display the prefix/suffix containers based
92
+ // on whether there is projected content.
93
+ merge(this._prefixChildren.changes, this._suffixChildren.changes).subscribe(() => {
94
+ this._checkPrefixAndSuffixTypes();
95
+ this._changeDetectorRef.markForCheck();
96
+ });
97
+ }
98
+ }
99
+ FormFieldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: FormFieldComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
100
+ FormFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: FormFieldComponent, selector: "impdc-form-field", host: { properties: { "class.impdc-form-field-focused": "_control.focused", "class.impdc-form-field-invalid": "_control.errorState", "class.impdc-form-field-disabled": "_control.disabled", "class.ng-untouched": "_shouldForwardControlState(\"untouched\")", "class.ng-touched": "_shouldForwardControlState(\"touched\")", "class.ng-pristine": "_shouldForwardControlState(\"pristine\")", "class.ng-dirty": "_shouldForwardControlState(\"dirty\")", "class.ng-valid": "_shouldForwardControlState(\"valid\")", "class.ng-invalid": "_shouldForwardControlState(\"invalid\")", "class.ng-pending": "_shouldForwardControlState(\"pending\")" }, classAttribute: "impdc-form-field" }, providers: [{ provide: IMPDC_FORM_FIELD, useExisting: FormFieldComponent }], queries: [{ propertyName: "_formFieldControl", first: true, predicate: ImpdcFormFieldControl, descendants: true }, { propertyName: "_prefixChildren", predicate: IMPDC_PREFIX, descendants: true }, { propertyName: "_suffixChildren", predicate: IMPDC_SUFFIX, descendants: true }, { propertyName: "_errorChildren", predicate: IMPDC_ERROR, descendants: true }], viewQueries: [{ propertyName: "_inputArea", first: true, predicate: ["inputArea"], descendants: true }], exportAs: ["impdcFormField"], ngImport: i0, template: "<ng-template #labelTemplate>\n <label\n class=\"form-label\"\n [id]=\"_labelId\"\n [attr.for]=\"_formFieldControl.id\"\n [attr.aria-owns]=\"_formFieldControl.id\">\n <ng-content select=\"impdc-label\"></ng-content>\n </label>\n</ng-template>\n\n<ng-template #cornerHintTemplate>\n <div class=\"flex-shrink-1 text-gray-400 fw-medium text-end\">\n <ng-content select=\"impdc-corner-hint\"></ng-content>\n </div>\n</ng-template>\n\n<div class=\"d-flex justify-content-between gap-4\">\n <ng-template [ngTemplateOutlet]=\"labelTemplate\"></ng-template>\n <ng-template [ngTemplateOutlet]=\"cornerHintTemplate\"></ng-template>\n</div>\n\n<div\n #inputArea\n class=\"impdc-form-field-wrapper\"\n [class.input-group]=\"_control.supportsAffixes\"\n [class.impdc-form-field--text]=\"_control.supportsAffixes\"\n [class.impdc-form-field--focused]=\"_control.focused\"\n [class.impdc-form-field--disabled]=\"_control.disabled\"\n [class.impdc-form-field--invalid]=\"_control.errorState\"\n [class.impdc-form-field--text--has-text-prefix]=\"_hasTextPrefix\"\n [class.impdc-form-field--text--has-text-suffix]=\"_hasTextSuffix\">\n <ng-container *ngIf=\"_control.supportsAffixes\">\n <ng-content select=\"[impdcPrefix]\"></ng-content>\n <ng-content select=\"[impdcTextPrefix]\"></ng-content>\n </ng-container>\n\n <ng-content></ng-content>\n\n <ng-container *ngIf=\"_control.supportsAffixes\">\n <ng-content select=\"[impdcTextSuffix]\"></ng-content>\n <ng-content select=\"[impdcSuffix]\"></ng-content>\n </ng-container>\n</div>\n\n<div\n class=\"impdc-form-field-feedback\"\n [class.impdc-form-field-feedback--disabled]=\"false\">\n <div class=\"impdc-form-field-hint-wrapper\">\n <ng-content select=\"impdc-hint\"></ng-content>\n </div>\n <div *ngIf=\"_showErrors()\" class=\"impdc-form-field-error-wrapper\">\n <ng-content select=\"impdc-error, [impdc-error]\"></ng-content>\n </div>\n</div>\n", styles: [":host{font-size:var(--impd-font-size-sm, 1.4rem)}.impdc-form-field-wrapper{--impdc-form-field-focus-color: var(--impd-color-motion-blue-500)}.impdc-form-field-wrapper.impdc-form-field--disabled{--impartner-hex-input-opacity: .5;--impartner-hex-input-group-bg: var(--impd-color-gray-100)}.impdc-form-field-wrapper.impdc-form-field--text{background-color:var(--impartner-hex-input-group-bg, var(--impd-color-white));border:1px solid var(--impartner-hex-gray-400);border-radius:var(--impd-border-radius-md);overflow-x:hidden}.impdc-form-field-wrapper.impdc-form-field--text.impdc-form-field--focused{border-color:var(--impdc-form-field-focus-color)}.impdc-form-field-wrapper.impdc-form-field--text.impdc-form-field--invalid{--impdc-form-field-focus-color: var(--impd-color-red-600);border-color:var(--impd-color-red-600)}.impdc-form-field-wrapper.impdc-form-field--text ::ng-deep>input::-webkit-outer-spin-button,.impdc-form-field-wrapper.impdc-form-field--text ::ng-deep>input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.impdc-form-field-wrapper.impdc-form-field--text ::ng-deep>input[type=number]{-moz-appearance:textfield}.impdc-form-field-wrapper.impdc-form-field--text>::ng-deep .form-control,.impdc-form-field-wrapper.impdc-form-field--text>::ng-deep .form-select,.impdc-form-field-wrapper.impdc-form-field--text>::ng-deep .btn,.impdc-form-field-wrapper.impdc-form-field--text>::ng-deep .input-group-text,.impdc-form-field-wrapper.impdc-form-field--text>::ng-deep .impdc-form-field-control{border-radius:0;border-top:none;border-bottom:none}.impdc-form-field-wrapper.impdc-form-field--text>::ng-deep .form-control:first-child,.impdc-form-field-wrapper.impdc-form-field--text>::ng-deep .form-select:first-child,.impdc-form-field-wrapper.impdc-form-field--text>::ng-deep .btn:first-child,.impdc-form-field-wrapper.impdc-form-field--text>::ng-deep .input-group-text:first-child,.impdc-form-field-wrapper.impdc-form-field--text>::ng-deep .impdc-form-field-control:first-child{border-left:none}.impdc-form-field-wrapper.impdc-form-field--text>::ng-deep .form-control:last-child,.impdc-form-field-wrapper.impdc-form-field--text>::ng-deep .form-select:last-child,.impdc-form-field-wrapper.impdc-form-field--text>::ng-deep .btn:last-child,.impdc-form-field-wrapper.impdc-form-field--text>::ng-deep .input-group-text:last-child,.impdc-form-field-wrapper.impdc-form-field--text>::ng-deep .impdc-form-field-control:last-child{border-right:none}.impdc-form-field-wrapper.impdc-form-field--text>::ng-deep .form-control:focus,.impdc-form-field-wrapper.impdc-form-field--text>::ng-deep .form-select:focus,.impdc-form-field-wrapper.impdc-form-field--text>::ng-deep .btn:focus,.impdc-form-field-wrapper.impdc-form-field--text>::ng-deep .input-group-text:focus,.impdc-form-field-wrapper.impdc-form-field--text>::ng-deep .impdc-form-field-control:focus{box-shadow:none}.impdc-form-field-wrapper.impdc-form-field--text.impdc-form-field--text--has-text-suffix>::ng-deep [impdcTextSuffix],.impdc-form-field-wrapper.impdc-form-field--text.impdc-form-field--text--has-text-prefix>::ng-deep [impdcTextPrefix]{opacity:var(--impartner-hex-input-opacity, 1);color:var(--impd-color-gray-500);display:flex;align-items:center;padding:.8rem .2rem;font-size:1.4rem;text-align:center;white-space:nowrap}.impdc-form-field-wrapper.impdc-form-field--text.impdc-form-field--text--has-text-prefix>::ng-deep [impdcTextPrefix]{padding-left:1.2rem}.impdc-form-field-wrapper.impdc-form-field--text.impdc-form-field--text--has-text-prefix>::ng-deep .impdc-form-field-control{border-left:none}.impdc-form-field-wrapper.impdc-form-field--text.impdc-form-field--text--has-text-suffix>::ng-deep [impdcTextSuffix]{padding-right:1.2rem}.impdc-form-field-wrapper.impdc-form-field--text.impdc-form-field--text--has-text-suffix>::ng-deep .impdc-form-field-control{border-right:none}.impdc-form-field-wrapper.impdc-form-field--text>::ng-deep .input-group-text.inset{background-color:unset;padding-left:8px;padding-right:8px;border:none}.impdc-form-field-feedback{font-size:1.4rem;margin-top:.4rem}.impdc-form-field--disabled+.impdc-form-field-feedback{opacity:.5}.impdc-form-field-feedback .impdc-form-field-error-wrapper{color:var(--impd-color-red-600)}.impdc-form-field-feedback .impdc-form-field-hint-wrapper{color:var(--impd-color-gray-500)}.impdc-form-field-feedback .impdc-form-field-error-wrapper ::ng-deep>*,.impdc-form-field-feedback .impdc-form-field-hint-wrapper ::ng-deep>*{display:block}.impdc-form-field-feedback .impdc-form-field-error-wrapper ::ng-deep>*+*,.impdc-form-field-feedback .impdc-form-field-hint-wrapper ::ng-deep>*+*{margin-top:.4rem}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
101
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: FormFieldComponent, decorators: [{
102
+ type: Component,
103
+ args: [{ selector: 'impdc-form-field', exportAs: 'impdcFormField', host: {
104
+ class: 'impdc-form-field',
105
+ '[class.impdc-form-field-focused]': '_control.focused',
106
+ '[class.impdc-form-field-invalid]': '_control.errorState',
107
+ '[class.impdc-form-field-disabled]': '_control.disabled',
108
+ '[class.ng-untouched]': '_shouldForwardControlState("untouched")',
109
+ '[class.ng-touched]': '_shouldForwardControlState("touched")',
110
+ '[class.ng-pristine]': '_shouldForwardControlState("pristine")',
111
+ '[class.ng-dirty]': '_shouldForwardControlState("dirty")',
112
+ '[class.ng-valid]': '_shouldForwardControlState("valid")',
113
+ '[class.ng-invalid]': '_shouldForwardControlState("invalid")',
114
+ '[class.ng-pending]': '_shouldForwardControlState("pending")'
115
+ }, changeDetection: ChangeDetectionStrategy.OnPush, providers: [{ provide: IMPDC_FORM_FIELD, useExisting: FormFieldComponent }], template: "<ng-template #labelTemplate>\n <label\n class=\"form-label\"\n [id]=\"_labelId\"\n [attr.for]=\"_formFieldControl.id\"\n [attr.aria-owns]=\"_formFieldControl.id\">\n <ng-content select=\"impdc-label\"></ng-content>\n </label>\n</ng-template>\n\n<ng-template #cornerHintTemplate>\n <div class=\"flex-shrink-1 text-gray-400 fw-medium text-end\">\n <ng-content select=\"impdc-corner-hint\"></ng-content>\n </div>\n</ng-template>\n\n<div class=\"d-flex justify-content-between gap-4\">\n <ng-template [ngTemplateOutlet]=\"labelTemplate\"></ng-template>\n <ng-template [ngTemplateOutlet]=\"cornerHintTemplate\"></ng-template>\n</div>\n\n<div\n #inputArea\n class=\"impdc-form-field-wrapper\"\n [class.input-group]=\"_control.supportsAffixes\"\n [class.impdc-form-field--text]=\"_control.supportsAffixes\"\n [class.impdc-form-field--focused]=\"_control.focused\"\n [class.impdc-form-field--disabled]=\"_control.disabled\"\n [class.impdc-form-field--invalid]=\"_control.errorState\"\n [class.impdc-form-field--text--has-text-prefix]=\"_hasTextPrefix\"\n [class.impdc-form-field--text--has-text-suffix]=\"_hasTextSuffix\">\n <ng-container *ngIf=\"_control.supportsAffixes\">\n <ng-content select=\"[impdcPrefix]\"></ng-content>\n <ng-content select=\"[impdcTextPrefix]\"></ng-content>\n </ng-container>\n\n <ng-content></ng-content>\n\n <ng-container *ngIf=\"_control.supportsAffixes\">\n <ng-content select=\"[impdcTextSuffix]\"></ng-content>\n <ng-content select=\"[impdcSuffix]\"></ng-content>\n </ng-container>\n</div>\n\n<div\n class=\"impdc-form-field-feedback\"\n [class.impdc-form-field-feedback--disabled]=\"false\">\n <div class=\"impdc-form-field-hint-wrapper\">\n <ng-content select=\"impdc-hint\"></ng-content>\n </div>\n <div *ngIf=\"_showErrors()\" class=\"impdc-form-field-error-wrapper\">\n <ng-content select=\"impdc-error, [impdc-error]\"></ng-content>\n </div>\n</div>\n", styles: [":host{font-size:var(--impd-font-size-sm, 1.4rem)}.impdc-form-field-wrapper{--impdc-form-field-focus-color: var(--impd-color-motion-blue-500)}.impdc-form-field-wrapper.impdc-form-field--disabled{--impartner-hex-input-opacity: .5;--impartner-hex-input-group-bg: var(--impd-color-gray-100)}.impdc-form-field-wrapper.impdc-form-field--text{background-color:var(--impartner-hex-input-group-bg, var(--impd-color-white));border:1px solid var(--impartner-hex-gray-400);border-radius:var(--impd-border-radius-md);overflow-x:hidden}.impdc-form-field-wrapper.impdc-form-field--text.impdc-form-field--focused{border-color:var(--impdc-form-field-focus-color)}.impdc-form-field-wrapper.impdc-form-field--text.impdc-form-field--invalid{--impdc-form-field-focus-color: var(--impd-color-red-600);border-color:var(--impd-color-red-600)}.impdc-form-field-wrapper.impdc-form-field--text ::ng-deep>input::-webkit-outer-spin-button,.impdc-form-field-wrapper.impdc-form-field--text ::ng-deep>input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.impdc-form-field-wrapper.impdc-form-field--text ::ng-deep>input[type=number]{-moz-appearance:textfield}.impdc-form-field-wrapper.impdc-form-field--text>::ng-deep .form-control,.impdc-form-field-wrapper.impdc-form-field--text>::ng-deep .form-select,.impdc-form-field-wrapper.impdc-form-field--text>::ng-deep .btn,.impdc-form-field-wrapper.impdc-form-field--text>::ng-deep .input-group-text,.impdc-form-field-wrapper.impdc-form-field--text>::ng-deep .impdc-form-field-control{border-radius:0;border-top:none;border-bottom:none}.impdc-form-field-wrapper.impdc-form-field--text>::ng-deep .form-control:first-child,.impdc-form-field-wrapper.impdc-form-field--text>::ng-deep .form-select:first-child,.impdc-form-field-wrapper.impdc-form-field--text>::ng-deep .btn:first-child,.impdc-form-field-wrapper.impdc-form-field--text>::ng-deep .input-group-text:first-child,.impdc-form-field-wrapper.impdc-form-field--text>::ng-deep .impdc-form-field-control:first-child{border-left:none}.impdc-form-field-wrapper.impdc-form-field--text>::ng-deep .form-control:last-child,.impdc-form-field-wrapper.impdc-form-field--text>::ng-deep .form-select:last-child,.impdc-form-field-wrapper.impdc-form-field--text>::ng-deep .btn:last-child,.impdc-form-field-wrapper.impdc-form-field--text>::ng-deep .input-group-text:last-child,.impdc-form-field-wrapper.impdc-form-field--text>::ng-deep .impdc-form-field-control:last-child{border-right:none}.impdc-form-field-wrapper.impdc-form-field--text>::ng-deep .form-control:focus,.impdc-form-field-wrapper.impdc-form-field--text>::ng-deep .form-select:focus,.impdc-form-field-wrapper.impdc-form-field--text>::ng-deep .btn:focus,.impdc-form-field-wrapper.impdc-form-field--text>::ng-deep .input-group-text:focus,.impdc-form-field-wrapper.impdc-form-field--text>::ng-deep .impdc-form-field-control:focus{box-shadow:none}.impdc-form-field-wrapper.impdc-form-field--text.impdc-form-field--text--has-text-suffix>::ng-deep [impdcTextSuffix],.impdc-form-field-wrapper.impdc-form-field--text.impdc-form-field--text--has-text-prefix>::ng-deep [impdcTextPrefix]{opacity:var(--impartner-hex-input-opacity, 1);color:var(--impd-color-gray-500);display:flex;align-items:center;padding:.8rem .2rem;font-size:1.4rem;text-align:center;white-space:nowrap}.impdc-form-field-wrapper.impdc-form-field--text.impdc-form-field--text--has-text-prefix>::ng-deep [impdcTextPrefix]{padding-left:1.2rem}.impdc-form-field-wrapper.impdc-form-field--text.impdc-form-field--text--has-text-prefix>::ng-deep .impdc-form-field-control{border-left:none}.impdc-form-field-wrapper.impdc-form-field--text.impdc-form-field--text--has-text-suffix>::ng-deep [impdcTextSuffix]{padding-right:1.2rem}.impdc-form-field-wrapper.impdc-form-field--text.impdc-form-field--text--has-text-suffix>::ng-deep .impdc-form-field-control{border-right:none}.impdc-form-field-wrapper.impdc-form-field--text>::ng-deep .input-group-text.inset{background-color:unset;padding-left:8px;padding-right:8px;border:none}.impdc-form-field-feedback{font-size:1.4rem;margin-top:.4rem}.impdc-form-field--disabled+.impdc-form-field-feedback{opacity:.5}.impdc-form-field-feedback .impdc-form-field-error-wrapper{color:var(--impd-color-red-600)}.impdc-form-field-feedback .impdc-form-field-hint-wrapper{color:var(--impd-color-gray-500)}.impdc-form-field-feedback .impdc-form-field-error-wrapper ::ng-deep>*,.impdc-form-field-feedback .impdc-form-field-hint-wrapper ::ng-deep>*{display:block}.impdc-form-field-feedback .impdc-form-field-error-wrapper ::ng-deep>*+*,.impdc-form-field-feedback .impdc-form-field-hint-wrapper ::ng-deep>*+*{margin-top:.4rem}\n"] }]
116
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { _inputArea: [{
117
+ type: ViewChild,
118
+ args: ['inputArea']
119
+ }], _formFieldControl: [{
120
+ type: ContentChild,
121
+ args: [ImpdcFormFieldControl]
122
+ }], _prefixChildren: [{
123
+ type: ContentChildren,
124
+ args: [IMPDC_PREFIX, { descendants: true }]
125
+ }], _suffixChildren: [{
126
+ type: ContentChildren,
127
+ args: [IMPDC_SUFFIX, { descendants: true }]
128
+ }], _errorChildren: [{
129
+ type: ContentChildren,
130
+ args: [IMPDC_ERROR, { descendants: true }]
131
+ }] } });
132
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tY29tcG9uZW50cy9zcmMvbGliL2Zvcm0tZmllbGQvZm9ybS1maWVsZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tY29tcG9uZW50cy9zcmMvbGliL2Zvcm0tZmllbGQvZm9ybS1maWVsZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBSUwsdUJBQXVCLEVBRXZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osZUFBZSxFQUVmLGNBQWMsRUFFZCxTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUNoQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDakQsT0FBTyxFQUFrQixXQUFXLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMzRSxPQUFPLEVBQUUsWUFBWSxFQUFtQixNQUFNLCtCQUErQixDQUFDO0FBQzlFLE9BQU8sRUFBRSxZQUFZLEVBQW1CLE1BQU0sK0JBQStCLENBQUM7QUFDOUUsT0FBTyxFQUFFLG9DQUFvQyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDM0UsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7OztBQUVwRSxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLGNBQWMsQ0FDaEQsb0JBQW9CLENBQ3JCLENBQUM7QUF3QkYsTUFBTSxPQUFPLGtCQUFrQjtJQStCN0IsWUFDbUIsV0FBdUIsRUFDdkIsa0JBQXFDO1FBRHJDLGdCQUFXLEdBQVgsV0FBVyxDQUFZO1FBQ3ZCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBbUI7UUFqQnZDLHNCQUFpQixHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFDL0MsbUJBQWMsR0FBRyxLQUFLLENBQUM7UUFDdkIsbUJBQWMsR0FBRyxLQUFLLENBQUM7UUFDekIsZUFBVSxHQUFtQixJQUFJLENBQUM7UUFHdkIsYUFBUSxHQUFHLDBCQUEwQixNQUFNLEVBQUUsRUFBRSxDQUFDO0lBWWhFLENBQUM7SUFWSixJQUFjLFFBQVE7UUFDcEIsT0FBTyxJQUFJLENBQUMseUJBQXlCLElBQUksSUFBSSxDQUFDLGlCQUFpQixDQUFDO0lBQ2xFLENBQUM7SUFDRCxJQUFjLFFBQVEsQ0FBQyxLQUFLO1FBQzFCLElBQUksQ0FBQyx5QkFBeUIsR0FBRyxLQUFLLENBQUM7SUFDekMsQ0FBQztJQU9NLGVBQWU7UUFDcEIsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzFDLENBQUM7SUFFTSxrQkFBa0I7UUFDdkIsSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUM7UUFDL0IsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFDMUIsSUFBSSxDQUFDLDBCQUEwQixFQUFFLENBQUM7SUFDcEMsQ0FBQztJQUVNLHFCQUFxQjtRQUMxQixJQUFJLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0lBRVMsV0FBVztRQUNuQixPQUFPLENBQUMsQ0FBQyxDQUNQLElBQUksQ0FBQyxjQUFjO1lBQ25CLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxHQUFHLENBQUM7WUFDOUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQ3pCLENBQUM7SUFDSixDQUFDO0lBRVMsMEJBQTBCLENBQ2xDLElBQW9DO1FBRXBDLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFFakUsT0FBTyxTQUFTLElBQUksU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFTyxrQkFBa0I7UUFDeEIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUU5QixJQUFJLE9BQU8sQ0FBQyxXQUFXLEVBQUU7WUFDdkIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FDMUMseUJBQXlCLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FDL0MsQ0FBQztTQUNIO1FBRUQsT0FBTyxDQUFDLFlBQVk7YUFDakIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQzthQUN2QyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDekIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3pDLENBQUMsQ0FBQyxDQUFDO1FBRUwsSUFBSSxPQUFPLENBQUMsU0FBUyxJQUFJLE9BQU8sQ0FBQyxTQUFTLENBQUMsWUFBWSxFQUFFO1lBQ3ZELE9BQU8sQ0FBQyxTQUFTLENBQUMsWUFBWTtpQkFDM0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztpQkFDdkMsU0FBUyxDQUFDLEdBQUcsRUFBRTtnQkFDZCxJQUFJLENBQUMsa0JBQWtCLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDekMsQ0FBQyxDQUFDLENBQUM7U0FDTjtJQUNILENBQUM7SUFFTyx1QkFBdUI7UUFDN0IsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDbEIsTUFBTSxvQ0FBb0MsRUFBRSxDQUFDO1NBQzlDO0lBQ0gsQ0FBQztJQUVPLGlCQUFpQjtRQUN2QixJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUM3QyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztTQUN4QjthQUFNLElBQ0wsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU87WUFDdEIsQ0FBQyxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxVQUFVLEtBQUssSUFBSSxDQUFDLEVBQzdDO1lBQ0EsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7U0FDekI7UUFFRCxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUM1QyxtQ0FBbUMsRUFDbkMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQ3RCLENBQUM7SUFDSixDQUFDO0lBRU8sMEJBQTBCO1FBQ2hDLElBQUksQ0FBQyxjQUFjLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2pFLElBQUksQ0FBQyxjQUFjLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ25FLENBQUM7SUFFRCxvREFBb0Q7SUFDNUMsMEJBQTBCO1FBQ2hDLElBQUksQ0FBQywwQkFBMEIsRUFBRSxDQUFDO1FBQ2xDLG1GQUFtRjtRQUNuRixtRkFBbUY7UUFDbkYseUNBQXlDO1FBQ3pDLEtBQUssQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsQ0FDekUsR0FBRyxFQUFFO1lBQ0gsSUFBSSxDQUFDLDBCQUEwQixFQUFFLENBQUM7WUFDbEMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3pDLENBQUMsQ0FDRixDQUFDO0lBQ0osQ0FBQzs7Z0hBbklVLGtCQUFrQjtvR0FBbEIsa0JBQWtCLHVzQkFGbEIsQ0FBQyxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLEVBQUUsa0JBQWtCLEVBQUUsQ0FBQyx5RUFRN0QscUJBQXFCLHFFQUdsQixZQUFZLHFFQUVaLFlBQVksb0VBRVosV0FBVyx1TEM5RDlCLDA1REFzREE7NEZETGEsa0JBQWtCO2tCQXRCOUIsU0FBUzsrQkFDRSxrQkFBa0IsWUFDbEIsZ0JBQWdCLFFBSXBCO3dCQUNKLEtBQUssRUFBRSxrQkFBa0I7d0JBQ3pCLGtDQUFrQyxFQUFFLGtCQUFrQjt3QkFDdEQsa0NBQWtDLEVBQUUscUJBQXFCO3dCQUN6RCxtQ0FBbUMsRUFBRSxtQkFBbUI7d0JBQ3hELHNCQUFzQixFQUFFLHlDQUF5Qzt3QkFDakUsb0JBQW9CLEVBQUUsdUNBQXVDO3dCQUM3RCxxQkFBcUIsRUFBRSx3Q0FBd0M7d0JBQy9ELGtCQUFrQixFQUFFLHFDQUFxQzt3QkFDekQsa0JBQWtCLEVBQUUscUNBQXFDO3dCQUN6RCxvQkFBb0IsRUFBRSx1Q0FBdUM7d0JBQzdELG9CQUFvQixFQUFFLHVDQUF1QztxQkFDOUQsbUJBQ2dCLHVCQUF1QixDQUFDLE1BQU0sYUFDcEMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLG9CQUFvQixFQUFFLENBQUM7aUlBTWpFLFVBQVU7c0JBRG5CLFNBQVM7dUJBQUMsV0FBVztnQkFJWixpQkFBaUI7c0JBRDFCLFlBQVk7dUJBQUMscUJBQXFCO2dCQUl6QixlQUFlO3NCQUR4QixlQUFlO3VCQUFDLFlBQVksRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUU7Z0JBRzFDLGVBQWU7c0JBRHhCLGVBQWU7dUJBQUMsWUFBWSxFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRTtnQkFHMUMsY0FBYztzQkFEdkIsZUFBZTt1QkFBQyxXQUFXLEVBQUUsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJDb250ZW50Q2hlY2tlZCxcbiAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZCxcbiAgQ29udGVudENoaWxkcmVuLFxuICBFbGVtZW50UmVmLFxuICBJbmplY3Rpb25Ub2tlbixcbiAgUXVlcnlMaXN0LFxuICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2xEaXJlY3RpdmUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBuYW5vaWQgfSBmcm9tICduYW5vaWQnO1xuaW1wb3J0IHsgbWVyZ2UsIFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRXJyb3JEaXJlY3RpdmUsIElNUERDX0VSUk9SIH0gZnJvbSAnLi9kaXJlY3RpdmVzL2Vycm9yLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBJTVBEQ19QUkVGSVgsIFByZWZpeERpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9wcmVmaXguZGlyZWN0aXZlJztcbmltcG9ydCB7IElNUERDX1NVRkZJWCwgU3VmZml4RGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL3N1ZmZpeC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgZ2V0SW1wZGNGb3JtRmllbGRNaXNzaW5nQ29udHJvbEVycm9yIH0gZnJvbSAnLi9mb3JtLWZpZWxkLWVycm9ycyc7XG5pbXBvcnQgeyBJbXBkY0Zvcm1GaWVsZENvbnRyb2wgfSBmcm9tICcuL3NoYXJlZC9mb3JtLWZpZWxkLWNvbnRyb2wnO1xuXG5leHBvcnQgY29uc3QgSU1QRENfRk9STV9GSUVMRCA9IG5ldyBJbmplY3Rpb25Ub2tlbjxGb3JtRmllbGRDb21wb25lbnQ+KFxuICAnRm9ybUZpZWxkQ29tcG9uZW50J1xuKTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaW1wZGMtZm9ybS1maWVsZCcsXG4gIGV4cG9ydEFzOiAnaW1wZGNGb3JtRmllbGQnLFxuICB0ZW1wbGF0ZVVybDogJy4vZm9ybS1maWVsZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Zvcm0tZmllbGQuY29tcG9uZW50LnNjc3MnXSxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1ob3N0LW1ldGFkYXRhLXByb3BlcnR5XG4gIGhvc3Q6IHtcbiAgICBjbGFzczogJ2ltcGRjLWZvcm0tZmllbGQnLFxuICAgICdbY2xhc3MuaW1wZGMtZm9ybS1maWVsZC1mb2N1c2VkXSc6ICdfY29udHJvbC5mb2N1c2VkJyxcbiAgICAnW2NsYXNzLmltcGRjLWZvcm0tZmllbGQtaW52YWxpZF0nOiAnX2NvbnRyb2wuZXJyb3JTdGF0ZScsXG4gICAgJ1tjbGFzcy5pbXBkYy1mb3JtLWZpZWxkLWRpc2FibGVkXSc6ICdfY29udHJvbC5kaXNhYmxlZCcsXG4gICAgJ1tjbGFzcy5uZy11bnRvdWNoZWRdJzogJ19zaG91bGRGb3J3YXJkQ29udHJvbFN0YXRlKFwidW50b3VjaGVkXCIpJyxcbiAgICAnW2NsYXNzLm5nLXRvdWNoZWRdJzogJ19zaG91bGRGb3J3YXJkQ29udHJvbFN0YXRlKFwidG91Y2hlZFwiKScsXG4gICAgJ1tjbGFzcy5uZy1wcmlzdGluZV0nOiAnX3Nob3VsZEZvcndhcmRDb250cm9sU3RhdGUoXCJwcmlzdGluZVwiKScsXG4gICAgJ1tjbGFzcy5uZy1kaXJ0eV0nOiAnX3Nob3VsZEZvcndhcmRDb250cm9sU3RhdGUoXCJkaXJ0eVwiKScsXG4gICAgJ1tjbGFzcy5uZy12YWxpZF0nOiAnX3Nob3VsZEZvcndhcmRDb250cm9sU3RhdGUoXCJ2YWxpZFwiKScsXG4gICAgJ1tjbGFzcy5uZy1pbnZhbGlkXSc6ICdfc2hvdWxkRm9yd2FyZENvbnRyb2xTdGF0ZShcImludmFsaWRcIiknLFxuICAgICdbY2xhc3MubmctcGVuZGluZ10nOiAnX3Nob3VsZEZvcndhcmRDb250cm9sU3RhdGUoXCJwZW5kaW5nXCIpJ1xuICB9LFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBJTVBEQ19GT1JNX0ZJRUxELCB1c2VFeGlzdGluZzogRm9ybUZpZWxkQ29tcG9uZW50IH1dXG59KVxuZXhwb3J0IGNsYXNzIEZvcm1GaWVsZENvbXBvbmVudFxuICBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIEFmdGVyQ29udGVudEluaXQsIEFmdGVyQ29udGVudENoZWNrZWRcbntcbiAgQFZpZXdDaGlsZCgnaW5wdXRBcmVhJylcbiAgcHJvdGVjdGVkIF9pbnB1dEFyZWEhOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICBAQ29udGVudENoaWxkKEltcGRjRm9ybUZpZWxkQ29udHJvbClcbiAgcHJvdGVjdGVkIF9mb3JtRmllbGRDb250cm9sITogSW1wZGNGb3JtRmllbGRDb250cm9sPHVua25vd24+O1xuXG4gIEBDb250ZW50Q2hpbGRyZW4oSU1QRENfUFJFRklYLCB7IGRlc2NlbmRhbnRzOiB0cnVlIH0pXG4gIHByb3RlY3RlZCBfcHJlZml4Q2hpbGRyZW4hOiBRdWVyeUxpc3Q8UHJlZml4RGlyZWN0aXZlPjtcbiAgQENvbnRlbnRDaGlsZHJlbihJTVBEQ19TVUZGSVgsIHsgZGVzY2VuZGFudHM6IHRydWUgfSlcbiAgcHJvdGVjdGVkIF9zdWZmaXhDaGlsZHJlbiE6IFF1ZXJ5TGlzdDxTdWZmaXhEaXJlY3RpdmU+O1xuICBAQ29udGVudENoaWxkcmVuKElNUERDX0VSUk9SLCB7IGRlc2NlbmRhbnRzOiB0cnVlIH0pXG4gIHByb3RlY3RlZCBfZXJyb3JDaGlsZHJlbj86IFF1ZXJ5TGlzdDxFcnJvckRpcmVjdGl2ZT47XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfZGVzdHJveWVkU3ViamVjdCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIHByb3RlY3RlZCBfaGFzVGV4dFByZWZpeCA9IGZhbHNlO1xuICBwcm90ZWN0ZWQgX2hhc1RleHRTdWZmaXggPSBmYWxzZTtcbiAgcHJpdmF0ZSBfaXNGb2N1c2VkOiBib29sZWFuIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgX2V4cGxpY2l0Rm9ybUZpZWxkQ29udHJvbDogSW1wZGNGb3JtRmllbGRDb250cm9sPHVua25vd24+IHwgdW5kZWZpbmVkO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBfbGFiZWxJZCA9IGBpbXBkYy1mb3JtLWZpZWxkLWxhYmVsLSR7bmFub2lkKCl9YDtcblxuICBwcm90ZWN0ZWQgZ2V0IF9jb250cm9sKCk6IEltcGRjRm9ybUZpZWxkQ29udHJvbDx1bmtub3duPiB7XG4gICAgcmV0dXJuIHRoaXMuX2V4cGxpY2l0Rm9ybUZpZWxkQ29udHJvbCB8fCB0aGlzLl9mb3JtRmllbGRDb250cm9sO1xuICB9XG4gIHByb3RlY3RlZCBzZXQgX2NvbnRyb2wodmFsdWUpIHtcbiAgICB0aGlzLl9leHBsaWNpdEZvcm1GaWVsZENvbnRyb2wgPSB2YWx1ZTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgcHJpdmF0ZSByZWFkb25seSBfY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmXG4gICkge31cblxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuX3VwZGF0ZUZvY3VzU3RhdGUoKTtcbiAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuX2Fzc2VydEZvcm1GaWVsZENvbnRyb2woKTtcbiAgICB0aGlzLl9pbml0aWFsaXplQ29udHJvbCgpO1xuICAgIHRoaXMuX2luaXRpYWxpemVQcmVmaXhBbmRTdWZmaXgoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyQ29udGVudENoZWNrZWQoKTogdm9pZCB7XG4gICAgdGhpcy5fYXNzZXJ0Rm9ybUZpZWxkQ29udHJvbCgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIF9zaG93RXJyb3JzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIShcbiAgICAgIHRoaXMuX2Vycm9yQ2hpbGRyZW4gJiZcbiAgICAgIHRoaXMuX2Vycm9yQ2hpbGRyZW4ubGVuZ3RoID4gMCAmJlxuICAgICAgdGhpcy5fY29udHJvbC5lcnJvclN0YXRlXG4gICAgKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBfc2hvdWxkRm9yd2FyZENvbnRyb2xTdGF0ZShcbiAgICBwcm9wOiBrZXlvZiBBYnN0cmFjdENvbnRyb2xEaXJlY3RpdmVcbiAgKTogYm9vbGVhbiB7XG4gICAgY29uc3QgbmdDb250cm9sID0gdGhpcy5fY29udHJvbCA/IHRoaXMuX2NvbnRyb2wubmdDb250cm9sIDogbnVsbDtcblxuICAgIHJldHVybiBuZ0NvbnRyb2wgJiYgbmdDb250cm9sW3Byb3BdO1xuICB9XG5cbiAgcHJpdmF0ZSBfaW5pdGlhbGl6ZUNvbnRyb2woKTogdm9pZCB7XG4gICAgY29uc3QgY29udHJvbCA9IHRoaXMuX2NvbnRyb2w7XG5cbiAgICBpZiAoY29udHJvbC5jb250cm9sVHlwZSkge1xuICAgICAgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5hZGQoXG4gICAgICAgIGBpbXBkYy1mb3JtLWZpZWxkLXR5cGUtJHtjb250cm9sLmNvbnRyb2xUeXBlfWBcbiAgICAgICk7XG4gICAgfVxuXG4gICAgY29udHJvbC5zdGF0ZUNoYW5nZXNcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95ZWRTdWJqZWN0KSlcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLl91cGRhdGVGb2N1c1N0YXRlKCk7XG4gICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgICAgfSk7XG5cbiAgICBpZiAoY29udHJvbC5uZ0NvbnRyb2wgJiYgY29udHJvbC5uZ0NvbnRyb2wudmFsdWVDaGFuZ2VzKSB7XG4gICAgICBjb250cm9sLm5nQ29udHJvbC52YWx1ZUNoYW5nZXNcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3llZFN1YmplY3QpKVxuICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfYXNzZXJ0Rm9ybUZpZWxkQ29udHJvbCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX2NvbnRyb2wpIHtcbiAgICAgIHRocm93IGdldEltcGRjRm9ybUZpZWxkTWlzc2luZ0NvbnRyb2xFcnJvcigpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX3VwZGF0ZUZvY3VzU3RhdGUoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX2NvbnRyb2wuZm9jdXNlZCAmJiAhdGhpcy5faXNGb2N1c2VkKSB7XG4gICAgICB0aGlzLl9pc0ZvY3VzZWQgPSB0cnVlO1xuICAgIH0gZWxzZSBpZiAoXG4gICAgICAhdGhpcy5fY29udHJvbC5mb2N1c2VkICYmXG4gICAgICAodGhpcy5faXNGb2N1c2VkIHx8IHRoaXMuX2lzRm9jdXNlZCA9PT0gbnVsbClcbiAgICApIHtcbiAgICAgIHRoaXMuX2lzRm9jdXNlZCA9IGZhbHNlO1xuICAgIH1cblxuICAgIHRoaXMuX2lucHV0QXJlYS5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC50b2dnbGUoXG4gICAgICAnaW1wZGMtZm9ybS1maWVsZC1jb250cm9sLS1mb2N1c2VkJyxcbiAgICAgIHRoaXMuX2NvbnRyb2wuZm9jdXNlZFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIF9jaGVja1ByZWZpeEFuZFN1ZmZpeFR5cGVzKCkge1xuICAgIHRoaXMuX2hhc1RleHRQcmVmaXggPSAhIXRoaXMuX3ByZWZpeENoaWxkcmVuLmZpbmQocCA9PiBwLmlzVGV4dCk7XG4gICAgdGhpcy5faGFzVGV4dFN1ZmZpeCA9ICEhdGhpcy5fc3VmZml4Q2hpbGRyZW4uZmluZChzID0+IHMuaXNUZXh0KTtcbiAgfVxuXG4gIC8qKiBJbml0aWFsaXplcyB0aGUgcHJlZml4IGFuZCBzdWZmaXggY29udGFpbmVycy4gKi9cbiAgcHJpdmF0ZSBfaW5pdGlhbGl6ZVByZWZpeEFuZFN1ZmZpeCgpIHtcbiAgICB0aGlzLl9jaGVja1ByZWZpeEFuZFN1ZmZpeFR5cGVzKCk7XG4gICAgLy8gTWFyayB0aGUgZm9ybSBmaWVsZCBhcyBkaXJ0eSB3aGVuZXZlciB0aGUgcHJlZml4IG9yIHN1ZmZpeCBjaGlsZHJlbiBjaGFuZ2UuIFRoaXNcbiAgICAvLyBpcyBuZWNlc3NhcnkgYmVjYXVzZSB3ZSBjb25kaXRpb25hbGx5IGRpc3BsYXkgdGhlIHByZWZpeC9zdWZmaXggY29udGFpbmVycyBiYXNlZFxuICAgIC8vIG9uIHdoZXRoZXIgdGhlcmUgaXMgcHJvamVjdGVkIGNvbnRlbnQuXG4gICAgbWVyZ2UodGhpcy5fcHJlZml4Q2hpbGRyZW4uY2hhbmdlcywgdGhpcy5fc3VmZml4Q2hpbGRyZW4uY2hhbmdlcykuc3Vic2NyaWJlKFxuICAgICAgKCkgPT4ge1xuICAgICAgICB0aGlzLl9jaGVja1ByZWZpeEFuZFN1ZmZpeFR5cGVzKCk7XG4gICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgICAgfVxuICAgICk7XG4gIH1cbn1cbiIsIjxuZy10ZW1wbGF0ZSAjbGFiZWxUZW1wbGF0ZT5cbiAgPGxhYmVsXG4gICAgY2xhc3M9XCJmb3JtLWxhYmVsXCJcbiAgICBbaWRdPVwiX2xhYmVsSWRcIlxuICAgIFthdHRyLmZvcl09XCJfZm9ybUZpZWxkQ29udHJvbC5pZFwiXG4gICAgW2F0dHIuYXJpYS1vd25zXT1cIl9mb3JtRmllbGRDb250cm9sLmlkXCI+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiaW1wZGMtbGFiZWxcIj48L25nLWNvbnRlbnQ+XG4gIDwvbGFiZWw+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2Nvcm5lckhpbnRUZW1wbGF0ZT5cbiAgPGRpdiBjbGFzcz1cImZsZXgtc2hyaW5rLTEgdGV4dC1ncmF5LTQwMCBmdy1tZWRpdW0gdGV4dC1lbmRcIj5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJpbXBkYy1jb3JuZXItaGludFwiPjwvbmctY29udGVudD5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGdhcC00XCI+XG4gIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJsYWJlbFRlbXBsYXRlXCI+PC9uZy10ZW1wbGF0ZT5cbiAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImNvcm5lckhpbnRUZW1wbGF0ZVwiPjwvbmctdGVtcGxhdGU+XG48L2Rpdj5cblxuPGRpdlxuICAjaW5wdXRBcmVhXG4gIGNsYXNzPVwiaW1wZGMtZm9ybS1maWVsZC13cmFwcGVyXCJcbiAgW2NsYXNzLmlucHV0LWdyb3VwXT1cIl9jb250cm9sLnN1cHBvcnRzQWZmaXhlc1wiXG4gIFtjbGFzcy5pbXBkYy1mb3JtLWZpZWxkLS10ZXh0XT1cIl9jb250cm9sLnN1cHBvcnRzQWZmaXhlc1wiXG4gIFtjbGFzcy5pbXBkYy1mb3JtLWZpZWxkLS1mb2N1c2VkXT1cIl9jb250cm9sLmZvY3VzZWRcIlxuICBbY2xhc3MuaW1wZGMtZm9ybS1maWVsZC0tZGlzYWJsZWRdPVwiX2NvbnRyb2wuZGlzYWJsZWRcIlxuICBbY2xhc3MuaW1wZGMtZm9ybS1maWVsZC0taW52YWxpZF09XCJfY29udHJvbC5lcnJvclN0YXRlXCJcbiAgW2NsYXNzLmltcGRjLWZvcm0tZmllbGQtLXRleHQtLWhhcy10ZXh0LXByZWZpeF09XCJfaGFzVGV4dFByZWZpeFwiXG4gIFtjbGFzcy5pbXBkYy1mb3JtLWZpZWxkLS10ZXh0LS1oYXMtdGV4dC1zdWZmaXhdPVwiX2hhc1RleHRTdWZmaXhcIj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIl9jb250cm9sLnN1cHBvcnRzQWZmaXhlc1wiPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltpbXBkY1ByZWZpeF1cIj48L25nLWNvbnRlbnQ+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2ltcGRjVGV4dFByZWZpeF1cIj48L25nLWNvbnRlbnQ+XG4gIDwvbmctY29udGFpbmVyPlxuXG4gIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cblxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiX2NvbnRyb2wuc3VwcG9ydHNBZmZpeGVzXCI+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2ltcGRjVGV4dFN1ZmZpeF1cIj48L25nLWNvbnRlbnQ+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2ltcGRjU3VmZml4XVwiPjwvbmctY29udGVudD5cbiAgPC9uZy1jb250YWluZXI+XG48L2Rpdj5cblxuPGRpdlxuICBjbGFzcz1cImltcGRjLWZvcm0tZmllbGQtZmVlZGJhY2tcIlxuICBbY2xhc3MuaW1wZGMtZm9ybS1maWVsZC1mZWVkYmFjay0tZGlzYWJsZWRdPVwiZmFsc2VcIj5cbiAgPGRpdiBjbGFzcz1cImltcGRjLWZvcm0tZmllbGQtaGludC13cmFwcGVyXCI+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiaW1wZGMtaGludFwiPjwvbmctY29udGVudD5cbiAgPC9kaXY+XG4gIDxkaXYgKm5nSWY9XCJfc2hvd0Vycm9ycygpXCIgY2xhc3M9XCJpbXBkYy1mb3JtLWZpZWxkLWVycm9yLXdyYXBwZXJcIj5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJpbXBkYy1lcnJvciwgW2ltcGRjLWVycm9yXVwiPjwvbmctY29udGVudD5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -0,0 +1,8 @@
1
+ export * from './controls';
2
+ export * from './directives';
3
+ export * from './services';
4
+ export * from './shared';
5
+ export * from './form-field-errors';
6
+ export { IMPDC_FORM_FIELD, FormFieldComponent } from './form-field.component';
7
+ export { ImpdcFormsModule } from './impdc-forms.module';
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1wZGMtZm9ybXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tY29tcG9uZW50cy9zcmMvbGliL2Zvcm0tZmllbGQvaW1wZGMtZm9ybXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyxVQUFVLENBQUM7QUFDekIsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM5RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY29udHJvbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9kaXJlY3RpdmVzJztcbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9zaGFyZWQnO1xuZXhwb3J0ICogZnJvbSAnLi9mb3JtLWZpZWxkLWVycm9ycyc7XG5leHBvcnQgeyBJTVBEQ19GT1JNX0ZJRUxELCBGb3JtRmllbGRDb21wb25lbnQgfSBmcm9tICcuL2Zvcm0tZmllbGQuY29tcG9uZW50JztcbmV4cG9ydCB7IEltcGRjRm9ybXNNb2R1bGUgfSBmcm9tICcuL2ltcGRjLWZvcm1zLm1vZHVsZSc7XG4iXX0=
@@ -0,0 +1,68 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { NgModule } from '@angular/core';
3
+ import { CheckboxModule, InputDirective, RadioModule, SelectModule } from './controls';
4
+ import { CornerHintDirective, ErrorDirective, HintDirective, LabelDirective, PrefixDirective, RootFormGroupDirective, RootNgFormDirective, SuffixDirective } from './directives';
5
+ import { FormFieldComponent } from './form-field.component';
6
+ import * as i0 from "@angular/core";
7
+ export class ImpdcFormsModule {
8
+ }
9
+ ImpdcFormsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: ImpdcFormsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
10
+ ImpdcFormsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.12", ngImport: i0, type: ImpdcFormsModule, declarations: [FormFieldComponent,
11
+ InputDirective,
12
+ CornerHintDirective,
13
+ ErrorDirective,
14
+ HintDirective,
15
+ LabelDirective,
16
+ PrefixDirective,
17
+ RootFormGroupDirective,
18
+ RootNgFormDirective,
19
+ SuffixDirective], imports: [CommonModule, CheckboxModule, RadioModule, SelectModule], exports: [CheckboxModule,
20
+ RadioModule,
21
+ SelectModule,
22
+ FormFieldComponent,
23
+ InputDirective,
24
+ CornerHintDirective,
25
+ ErrorDirective,
26
+ HintDirective,
27
+ LabelDirective,
28
+ PrefixDirective,
29
+ RootFormGroupDirective,
30
+ RootNgFormDirective,
31
+ SuffixDirective] });
32
+ ImpdcFormsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: ImpdcFormsModule, imports: [CommonModule, CheckboxModule, RadioModule, SelectModule, CheckboxModule,
33
+ RadioModule,
34
+ SelectModule] });
35
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: ImpdcFormsModule, decorators: [{
36
+ type: NgModule,
37
+ args: [{
38
+ declarations: [
39
+ FormFieldComponent,
40
+ InputDirective,
41
+ CornerHintDirective,
42
+ ErrorDirective,
43
+ HintDirective,
44
+ LabelDirective,
45
+ PrefixDirective,
46
+ RootFormGroupDirective,
47
+ RootNgFormDirective,
48
+ SuffixDirective
49
+ ],
50
+ imports: [CommonModule, CheckboxModule, RadioModule, SelectModule],
51
+ exports: [
52
+ CheckboxModule,
53
+ RadioModule,
54
+ SelectModule,
55
+ FormFieldComponent,
56
+ InputDirective,
57
+ CornerHintDirective,
58
+ ErrorDirective,
59
+ HintDirective,
60
+ LabelDirective,
61
+ PrefixDirective,
62
+ RootFormGroupDirective,
63
+ RootNgFormDirective,
64
+ SuffixDirective
65
+ ]
66
+ }]
67
+ }] });
68
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1wZGMtZm9ybXMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzaWduLWNvbXBvbmVudHMvc3JjL2xpYi9mb3JtLWZpZWxkL2ltcGRjLWZvcm1zLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQ0wsY0FBYyxFQUNkLGNBQWMsRUFDZCxXQUFXLEVBQ1gsWUFBWSxFQUNiLE1BQU0sWUFBWSxDQUFDO0FBQ3BCLE9BQU8sRUFDTCxtQkFBbUIsRUFDbkIsY0FBYyxFQUNkLGFBQWEsRUFDYixjQUFjLEVBQ2QsZUFBZSxFQUNmLHNCQUFzQixFQUN0QixtQkFBbUIsRUFDbkIsZUFBZSxFQUNoQixNQUFNLGNBQWMsQ0FBQztBQUN0QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7QUFnQzVELE1BQU0sT0FBTyxnQkFBZ0I7OzhHQUFoQixnQkFBZ0I7K0dBQWhCLGdCQUFnQixpQkE1QnpCLGtCQUFrQjtRQUNsQixjQUFjO1FBQ2QsbUJBQW1CO1FBQ25CLGNBQWM7UUFDZCxhQUFhO1FBQ2IsY0FBYztRQUNkLGVBQWU7UUFDZixzQkFBc0I7UUFDdEIsbUJBQW1CO1FBQ25CLGVBQWUsYUFFUCxZQUFZLEVBQUUsY0FBYyxFQUFFLFdBQVcsRUFBRSxZQUFZLGFBRS9ELGNBQWM7UUFDZCxXQUFXO1FBQ1gsWUFBWTtRQUNaLGtCQUFrQjtRQUNsQixjQUFjO1FBQ2QsbUJBQW1CO1FBQ25CLGNBQWM7UUFDZCxhQUFhO1FBQ2IsY0FBYztRQUNkLGVBQWU7UUFDZixzQkFBc0I7UUFDdEIsbUJBQW1CO1FBQ25CLGVBQWU7K0dBR04sZ0JBQWdCLFlBakJqQixZQUFZLEVBQUUsY0FBYyxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBRS9ELGNBQWM7UUFDZCxXQUFXO1FBQ1gsWUFBWTs0RkFhSCxnQkFBZ0I7a0JBOUI1QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRTt3QkFDWixrQkFBa0I7d0JBQ2xCLGNBQWM7d0JBQ2QsbUJBQW1CO3dCQUNuQixjQUFjO3dCQUNkLGFBQWE7d0JBQ2IsY0FBYzt3QkFDZCxlQUFlO3dCQUNmLHNCQUFzQjt3QkFDdEIsbUJBQW1CO3dCQUNuQixlQUFlO3FCQUNoQjtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsY0FBYyxFQUFFLFdBQVcsRUFBRSxZQUFZLENBQUM7b0JBQ2xFLE9BQU8sRUFBRTt3QkFDUCxjQUFjO3dCQUNkLFdBQVc7d0JBQ1gsWUFBWTt3QkFDWixrQkFBa0I7d0JBQ2xCLGNBQWM7d0JBQ2QsbUJBQW1CO3dCQUNuQixjQUFjO3dCQUNkLGFBQWE7d0JBQ2IsY0FBYzt3QkFDZCxlQUFlO3dCQUNmLHNCQUFzQjt3QkFDdEIsbUJBQW1CO3dCQUNuQixlQUFlO3FCQUNoQjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQ2hlY2tib3hNb2R1bGUsXG4gIElucHV0RGlyZWN0aXZlLFxuICBSYWRpb01vZHVsZSxcbiAgU2VsZWN0TW9kdWxlXG59IGZyb20gJy4vY29udHJvbHMnO1xuaW1wb3J0IHtcbiAgQ29ybmVySGludERpcmVjdGl2ZSxcbiAgRXJyb3JEaXJlY3RpdmUsXG4gIEhpbnREaXJlY3RpdmUsXG4gIExhYmVsRGlyZWN0aXZlLFxuICBQcmVmaXhEaXJlY3RpdmUsXG4gIFJvb3RGb3JtR3JvdXBEaXJlY3RpdmUsXG4gIFJvb3ROZ0Zvcm1EaXJlY3RpdmUsXG4gIFN1ZmZpeERpcmVjdGl2ZVxufSBmcm9tICcuL2RpcmVjdGl2ZXMnO1xuaW1wb3J0IHsgRm9ybUZpZWxkQ29tcG9uZW50IH0gZnJvbSAnLi9mb3JtLWZpZWxkLmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1xuICAgIEZvcm1GaWVsZENvbXBvbmVudCxcbiAgICBJbnB1dERpcmVjdGl2ZSxcbiAgICBDb3JuZXJIaW50RGlyZWN0aXZlLFxuICAgIEVycm9yRGlyZWN0aXZlLFxuICAgIEhpbnREaXJlY3RpdmUsXG4gICAgTGFiZWxEaXJlY3RpdmUsXG4gICAgUHJlZml4RGlyZWN0aXZlLFxuICAgIFJvb3RGb3JtR3JvdXBEaXJlY3RpdmUsXG4gICAgUm9vdE5nRm9ybURpcmVjdGl2ZSxcbiAgICBTdWZmaXhEaXJlY3RpdmVcbiAgXSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgQ2hlY2tib3hNb2R1bGUsIFJhZGlvTW9kdWxlLCBTZWxlY3RNb2R1bGVdLFxuICBleHBvcnRzOiBbXG4gICAgQ2hlY2tib3hNb2R1bGUsXG4gICAgUmFkaW9Nb2R1bGUsXG4gICAgU2VsZWN0TW9kdWxlLFxuICAgIEZvcm1GaWVsZENvbXBvbmVudCxcbiAgICBJbnB1dERpcmVjdGl2ZSxcbiAgICBDb3JuZXJIaW50RGlyZWN0aXZlLFxuICAgIEVycm9yRGlyZWN0aXZlLFxuICAgIEhpbnREaXJlY3RpdmUsXG4gICAgTGFiZWxEaXJlY3RpdmUsXG4gICAgUHJlZml4RGlyZWN0aXZlLFxuICAgIFJvb3RGb3JtR3JvdXBEaXJlY3RpdmUsXG4gICAgUm9vdE5nRm9ybURpcmVjdGl2ZSxcbiAgICBTdWZmaXhEaXJlY3RpdmVcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBJbXBkY0Zvcm1zTW9kdWxlIHt9XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export * from './impdc-forms';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tY29tcG9uZW50cy9zcmMvbGliL2Zvcm0tZmllbGQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxlQUFlLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2ltcGRjLWZvcm1zJztcbiJdfQ==
@@ -0,0 +1,28 @@
1
+ import { Injectable } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class ShowOnDirtyErrorStateMatcher {
4
+ isErrorState(control, form) {
5
+ return !!(control &&
6
+ control.invalid &&
7
+ (control.dirty || (form && form.submitted)));
8
+ }
9
+ }
10
+ ShowOnDirtyErrorStateMatcher.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: ShowOnDirtyErrorStateMatcher, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
11
+ ShowOnDirtyErrorStateMatcher.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: ShowOnDirtyErrorStateMatcher });
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: ShowOnDirtyErrorStateMatcher, decorators: [{
13
+ type: Injectable
14
+ }] });
15
+ export class ErrorStateMatcher {
16
+ isErrorState(control, form) {
17
+ return !!(control &&
18
+ control.invalid &&
19
+ (control.touched || (form && form.submitted)));
20
+ }
21
+ }
22
+ ErrorStateMatcher.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: ErrorStateMatcher, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
23
+ ErrorStateMatcher.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: ErrorStateMatcher, providedIn: 'root' });
24
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: ErrorStateMatcher, decorators: [{
25
+ type: Injectable,
26
+ args: [{ providedIn: 'root' }]
27
+ }] });
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3Itc3RhdGUtbWF0Y2hlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzaWduLWNvbXBvbmVudHMvc3JjL2xpYi9mb3JtLWZpZWxkL3NlcnZpY2VzL2Vycm9yLXN0YXRlLW1hdGNoZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUkzQyxNQUFNLE9BQU8sNEJBQTRCO0lBQ2hDLFlBQVksQ0FDakIsT0FBeUMsRUFDekMsSUFBd0M7UUFFeEMsT0FBTyxDQUFDLENBQUMsQ0FDUCxPQUFPO1lBQ1AsT0FBTyxDQUFDLE9BQU87WUFDZixDQUFDLE9BQU8sQ0FBQyxLQUFLLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQzVDLENBQUM7SUFDSixDQUFDOzswSEFWVSw0QkFBNEI7OEhBQTVCLDRCQUE0Qjs0RkFBNUIsNEJBQTRCO2tCQUR4QyxVQUFVOztBQWVYLE1BQU0sT0FBTyxpQkFBaUI7SUFDckIsWUFBWSxDQUNqQixPQUErQixFQUMvQixJQUF3QztRQUV4QyxPQUFPLENBQUMsQ0FBQyxDQUNQLE9BQU87WUFDUCxPQUFPLENBQUMsT0FBTztZQUNmLENBQUMsT0FBTyxDQUFDLE9BQU8sSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FDOUMsQ0FBQztJQUNKLENBQUM7OytHQVZVLGlCQUFpQjttSEFBakIsaUJBQWlCLGNBREosTUFBTTs0RkFDbkIsaUJBQWlCO2tCQUQ3QixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgRm9ybUdyb3VwRGlyZWN0aXZlLCBOZ0Zvcm0gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBTaG93T25EaXJ0eUVycm9yU3RhdGVNYXRjaGVyIGltcGxlbWVudHMgRXJyb3JTdGF0ZU1hdGNoZXIge1xuICBwdWJsaWMgaXNFcnJvclN0YXRlKFxuICAgIGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbDxhbnksIGFueT4gfCBudWxsLFxuICAgIGZvcm06IEZvcm1Hcm91cERpcmVjdGl2ZSB8IE5nRm9ybSB8IG51bGxcbiAgKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhKFxuICAgICAgY29udHJvbCAmJlxuICAgICAgY29udHJvbC5pbnZhbGlkICYmXG4gICAgICAoY29udHJvbC5kaXJ0eSB8fCAoZm9ybSAmJiBmb3JtLnN1Ym1pdHRlZCkpXG4gICAgKTtcbiAgfVxufVxuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIEVycm9yU3RhdGVNYXRjaGVyIHtcbiAgcHVibGljIGlzRXJyb3JTdGF0ZShcbiAgICBjb250cm9sOiBBYnN0cmFjdENvbnRyb2wgfCBudWxsLFxuICAgIGZvcm06IEZvcm1Hcm91cERpcmVjdGl2ZSB8IE5nRm9ybSB8IG51bGxcbiAgKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhKFxuICAgICAgY29udHJvbCAmJlxuICAgICAgY29udHJvbC5pbnZhbGlkICYmXG4gICAgICAoY29udHJvbC50b3VjaGVkIHx8IChmb3JtICYmIGZvcm0uc3VibWl0dGVkKSlcbiAgICApO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,3 @@
1
+ export { ErrorStateMatcher, ShowOnDirtyErrorStateMatcher } from './error-state-matcher.service';
2
+ export { UniqueSelectionDispatcher } from './unique-selection-dispatcher.service';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tY29tcG9uZW50cy9zcmMvbGliL2Zvcm0tZmllbGQvc2VydmljZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGlCQUFpQixFQUNqQiw0QkFBNEIsRUFDN0IsTUFBTSwrQkFBK0IsQ0FBQztBQUN2QyxPQUFPLEVBRUwseUJBQXlCLEVBQzFCLE1BQU0sdUNBQXVDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQge1xuICBFcnJvclN0YXRlTWF0Y2hlcixcbiAgU2hvd09uRGlydHlFcnJvclN0YXRlTWF0Y2hlclxufSBmcm9tICcuL2Vycm9yLXN0YXRlLW1hdGNoZXIuc2VydmljZSc7XG5leHBvcnQge1xuICBVbmlxdWVTZWxlY3Rpb25EaXNwYXRjaGVyTGlzdGVuZXIsXG4gIFVuaXF1ZVNlbGVjdGlvbkRpc3BhdGNoZXJcbn0gZnJvbSAnLi91bmlxdWUtc2VsZWN0aW9uLWRpc3BhdGNoZXIuc2VydmljZSc7XG4iXX0=
@@ -0,0 +1,48 @@
1
+ import { Injectable } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ /**
4
+ * Class to coordinate unique selection based on name.
5
+ * Intended to be consumed as an Angular service.
6
+ * This service is needed because native radio change events are only fired on the item currently
7
+ * being selected, and we still need to uncheck the previous selection.
8
+ *
9
+ * This service does not *store* any IDs and names because they may change at any time, so it is
10
+ * less error-prone if they are simply passed through when the events occur.
11
+ */
12
+ export class UniqueSelectionDispatcher {
13
+ constructor() {
14
+ this._listeners = [];
15
+ }
16
+ /**
17
+ * Notify other items that selection for the given name has been set.
18
+ * @param id ID of the item.
19
+ * @param name Name of the item.
20
+ */
21
+ notify(id, name) {
22
+ for (let listener of this._listeners) {
23
+ listener(id, name);
24
+ }
25
+ }
26
+ /**
27
+ * Listen for future changes to item selection.
28
+ * @return Function used to deregister listener
29
+ */
30
+ listen(listener) {
31
+ this._listeners.push(listener);
32
+ return () => {
33
+ this._listeners = this._listeners.filter((registered) => {
34
+ return listener !== registered;
35
+ });
36
+ };
37
+ }
38
+ ngOnDestroy() {
39
+ this._listeners = [];
40
+ }
41
+ }
42
+ UniqueSelectionDispatcher.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: UniqueSelectionDispatcher, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
43
+ UniqueSelectionDispatcher.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: UniqueSelectionDispatcher, providedIn: 'root' });
44
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: UniqueSelectionDispatcher, decorators: [{
45
+ type: Injectable,
46
+ args: [{ providedIn: 'root' }]
47
+ }] });
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5pcXVlLXNlbGVjdGlvbi1kaXNwYXRjaGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tY29tcG9uZW50cy9zcmMvbGliL2Zvcm0tZmllbGQvc2VydmljZXMvdW5pcXVlLXNlbGVjdGlvbi1kaXNwYXRjaGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBYSxNQUFNLGVBQWUsQ0FBQzs7QUFRdEQ7Ozs7Ozs7O0dBUUc7QUFFSCxNQUFNLE9BQU8seUJBQXlCO0lBRHRDO1FBRVUsZUFBVSxHQUF3QyxFQUFFLENBQUM7S0ErQjlEO0lBN0JDOzs7O09BSUc7SUFDSSxNQUFNLENBQUMsRUFBVSxFQUFFLElBQVk7UUFDcEMsS0FBSyxJQUFJLFFBQVEsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ3BDLFFBQVEsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUM7U0FDcEI7SUFDSCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksTUFBTSxDQUFDLFFBQTJDO1FBQ3ZELElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQy9CLE9BQU8sR0FBRyxFQUFFO1lBQ1YsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FDdEMsQ0FBQyxVQUE2QyxFQUFFLEVBQUU7Z0JBQ2hELE9BQU8sUUFBUSxLQUFLLFVBQVUsQ0FBQztZQUNqQyxDQUFDLENBQ0YsQ0FBQztRQUNKLENBQUMsQ0FBQztJQUNKLENBQUM7SUFFTSxXQUFXO1FBQ2hCLElBQUksQ0FBQyxVQUFVLEdBQUcsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7O3VIQS9CVSx5QkFBeUI7MkhBQXpCLHlCQUF5QixjQURaLE1BQU07NEZBQ25CLHlCQUF5QjtrQkFEckMsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLy8gVXNlcnMgb2YgdGhlIERpc3BhdGNoZXIgbmV2ZXIgbmVlZCB0byBzZWUgdGhpcyB0eXBlLCBidXQgVHlwZVNjcmlwdCByZXF1aXJlcyBpdCB0byBiZSBleHBvcnRlZC5cbmV4cG9ydCB0eXBlIFVuaXF1ZVNlbGVjdGlvbkRpc3BhdGNoZXJMaXN0ZW5lciA9IChcbiAgaWQ6IHN0cmluZyxcbiAgbmFtZTogc3RyaW5nXG4pID0+IHZvaWQ7XG5cbi8qKlxuICogQ2xhc3MgdG8gY29vcmRpbmF0ZSB1bmlxdWUgc2VsZWN0aW9uIGJhc2VkIG9uIG5hbWUuXG4gKiBJbnRlbmRlZCB0byBiZSBjb25zdW1lZCBhcyBhbiBBbmd1bGFyIHNlcnZpY2UuXG4gKiBUaGlzIHNlcnZpY2UgaXMgbmVlZGVkIGJlY2F1c2UgbmF0aXZlIHJhZGlvIGNoYW5nZSBldmVudHMgYXJlIG9ubHkgZmlyZWQgb24gdGhlIGl0ZW0gY3VycmVudGx5XG4gKiBiZWluZyBzZWxlY3RlZCwgYW5kIHdlIHN0aWxsIG5lZWQgdG8gdW5jaGVjayB0aGUgcHJldmlvdXMgc2VsZWN0aW9uLlxuICpcbiAqIFRoaXMgc2VydmljZSBkb2VzIG5vdCAqc3RvcmUqIGFueSBJRHMgYW5kIG5hbWVzIGJlY2F1c2UgdGhleSBtYXkgY2hhbmdlIGF0IGFueSB0aW1lLCBzbyBpdCBpc1xuICogbGVzcyBlcnJvci1wcm9uZSBpZiB0aGV5IGFyZSBzaW1wbHkgcGFzc2VkIHRocm91Z2ggd2hlbiB0aGUgZXZlbnRzIG9jY3VyLlxuICovXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIFVuaXF1ZVNlbGVjdGlvbkRpc3BhdGNoZXIgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBwcml2YXRlIF9saXN0ZW5lcnM6IFVuaXF1ZVNlbGVjdGlvbkRpc3BhdGNoZXJMaXN0ZW5lcltdID0gW107XG5cbiAgLyoqXG4gICAqIE5vdGlmeSBvdGhlciBpdGVtcyB0aGF0IHNlbGVjdGlvbiBmb3IgdGhlIGdpdmVuIG5hbWUgaGFzIGJlZW4gc2V0LlxuICAgKiBAcGFyYW0gaWQgSUQgb2YgdGhlIGl0ZW0uXG4gICAqIEBwYXJhbSBuYW1lIE5hbWUgb2YgdGhlIGl0ZW0uXG4gICAqL1xuICBwdWJsaWMgbm90aWZ5KGlkOiBzdHJpbmcsIG5hbWU6IHN0cmluZykge1xuICAgIGZvciAobGV0IGxpc3RlbmVyIG9mIHRoaXMuX2xpc3RlbmVycykge1xuICAgICAgbGlzdGVuZXIoaWQsIG5hbWUpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBMaXN0ZW4gZm9yIGZ1dHVyZSBjaGFuZ2VzIHRvIGl0ZW0gc2VsZWN0aW9uLlxuICAgKiBAcmV0dXJuIEZ1bmN0aW9uIHVzZWQgdG8gZGVyZWdpc3RlciBsaXN0ZW5lclxuICAgKi9cbiAgcHVibGljIGxpc3RlbihsaXN0ZW5lcjogVW5pcXVlU2VsZWN0aW9uRGlzcGF0Y2hlckxpc3RlbmVyKTogKCkgPT4gdm9pZCB7XG4gICAgdGhpcy5fbGlzdGVuZXJzLnB1c2gobGlzdGVuZXIpO1xuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICB0aGlzLl9saXN0ZW5lcnMgPSB0aGlzLl9saXN0ZW5lcnMuZmlsdGVyKFxuICAgICAgICAocmVnaXN0ZXJlZDogVW5pcXVlU2VsZWN0aW9uRGlzcGF0Y2hlckxpc3RlbmVyKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIGxpc3RlbmVyICE9PSByZWdpc3RlcmVkO1xuICAgICAgICB9XG4gICAgICApO1xuICAgIH07XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5fbGlzdGVuZXJzID0gW107XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RydWN0b3JzLnR5cGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tY29tcG9uZW50cy9zcmMvbGliL2Zvcm0tZmllbGQvc2hhcmVkL2NvbnN0cnVjdG9ycy50eXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiogQGRvY3MtcHJpdmF0ZSAqL1xuZXhwb3J0IHR5cGUgQ29uc3RydWN0b3I8VD4gPSBuZXcgKC4uLmFyZ3M6IGFueVtdKSA9PiBUO1xuXG4vKipcbiAqIFRoaXMgaXMgYSBwZXJtaXNzaXZlIHR5cGUgZm9yIGFic3RyYWN0IGNsYXNzIGNvbnN0cnVjdG9ycy5cbiAqIEBkb2NzLXByaXZhdGVcbiAqL1xuZXhwb3J0IHR5cGUgQWJzdHJhY3RDb25zdHJ1Y3RvcjxUID0gb2JqZWN0PiA9IGFic3RyYWN0IG5ldyAoXG4gIC4uLmFyZ3M6IGFueVtdXG4pID0+IFQ7XG4iXX0=
@@ -0,0 +1,15 @@
1
+ export function mixinDisabled(base) {
2
+ return class extends base {
3
+ constructor(...args) {
4
+ super(...args);
5
+ this._disabled = false;
6
+ }
7
+ get disabled() {
8
+ return this._disabled;
9
+ }
10
+ set disabled(value) {
11
+ this._disabled = !!value;
12
+ }
13
+ };
14
+ }
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzYWJsZWQubWl4aW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tY29tcG9uZW50cy9zcmMvbGliL2Zvcm0tZmllbGQvc2hhcmVkL2Rpc2FibGVkLm1peGluLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWNBLE1BQU0sVUFBVSxhQUFhLENBQzNCLElBQU87SUFFUCxPQUFPLEtBQU0sU0FBUSxJQUFJO1FBVXZCLFlBQVksR0FBRyxJQUFXO1lBQ3hCLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO1lBVlQsY0FBUyxHQUFZLEtBQUssQ0FBQztRQVduQyxDQUFDO1FBVEQsSUFBSSxRQUFRO1lBQ1YsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQ3hCLENBQUM7UUFDRCxJQUFJLFFBQVEsQ0FBQyxLQUFVO1lBQ3JCLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUMzQixDQUFDO0tBS0YsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBYnN0cmFjdENvbnN0cnVjdG9yLCBDb25zdHJ1Y3RvciB9IGZyb20gJy4vY29uc3RydWN0b3JzLnR5cGUnO1xuXG4vKiogQGRvY3MtcHJpdmF0ZSAqL1xuZXhwb3J0IGludGVyZmFjZSBDYW5EaXNhYmxlIHtcbiAgLyoqIFdoZXRoZXIgdGhlIGNvbXBvbmVudCBpcyBkaXNhYmxlZC4gKi9cbiAgZGlzYWJsZWQ6IGJvb2xlYW47XG59XG5cbnR5cGUgQ2FuRGlzYWJsZUN0b3IgPSBDb25zdHJ1Y3RvcjxDYW5EaXNhYmxlPiAmIEFic3RyYWN0Q29uc3RydWN0b3I8Q2FuRGlzYWJsZT47XG5cbi8qKiBNaXhpbiB0byBhdWdtZW50IGEgZGlyZWN0aXZlIHdpdGggYSBgZGlzYWJsZWRgIHByb3BlcnR5LiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1peGluRGlzYWJsZWQ8VCBleHRlbmRzIEFic3RyYWN0Q29uc3RydWN0b3I8e30+PihcbiAgYmFzZTogVFxuKTogQ2FuRGlzYWJsZUN0b3IgJiBUO1xuZXhwb3J0IGZ1bmN0aW9uIG1peGluRGlzYWJsZWQ8VCBleHRlbmRzIENvbnN0cnVjdG9yPHt9Pj4oXG4gIGJhc2U6IFRcbik6IENhbkRpc2FibGVDdG9yICYgVCB7XG4gIHJldHVybiBjbGFzcyBleHRlbmRzIGJhc2Uge1xuICAgIHByaXZhdGUgX2Rpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgICByZXR1cm4gdGhpcy5fZGlzYWJsZWQ7XG4gICAgfVxuICAgIHNldCBkaXNhYmxlZCh2YWx1ZTogYW55KSB7XG4gICAgICB0aGlzLl9kaXNhYmxlZCA9ICEhdmFsdWU7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IoLi4uYXJnczogYW55W10pIHtcbiAgICAgIHN1cGVyKC4uLmFyZ3MpO1xuICAgIH1cbiAgfTtcbn1cbiJdfQ==
@@ -0,0 +1,24 @@
1
+ export function mixinErrorState(base) {
2
+ return class extends base {
3
+ constructor(...args) {
4
+ super(...args);
5
+ /** Whether the component is in an error state. */
6
+ this.errorState = false;
7
+ }
8
+ /** Updates the error state based on the provided error state matcher. */
9
+ updateErrorState() {
10
+ const oldState = this.errorState;
11
+ const parent = this._formRoot?.form || this._parentFormGroup || this._parentForm;
12
+ const matcher = this.errorStateMatcher || this._defaultErrorStateMatcher;
13
+ const control = this.ngControl
14
+ ? this.ngControl.control
15
+ : null;
16
+ const newState = matcher.isErrorState(control, parent);
17
+ if (newState !== oldState) {
18
+ this.errorState = newState;
19
+ this.stateChanges.next();
20
+ }
21
+ }
22
+ };
23
+ }
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3Itc3RhdGUubWl4aW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tY29tcG9uZW50cy9zcmMvbGliL2Zvcm0tZmllbGQvc2hhcmVkL2Vycm9yLXN0YXRlLm1peGluLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTJDQSxNQUFNLFVBQVUsZUFBZSxDQUM3QixJQUFPO0lBRVAsT0FBTyxLQUFNLFNBQVEsSUFBSTtRQXdCdkIsWUFBWSxHQUFHLElBQVc7WUFDeEIsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUM7WUF4QmpCLGtEQUFrRDtZQUNsRCxlQUFVLEdBQVksS0FBSyxDQUFDO1FBd0I1QixDQUFDO1FBbkJELHlFQUF5RTtRQUN6RSxnQkFBZ0I7WUFDZCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO1lBQ2pDLE1BQU0sTUFBTSxHQUNWLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDO1lBQ3BFLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsSUFBSSxJQUFJLENBQUMseUJBQXlCLENBQUM7WUFDekUsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFNBQVM7Z0JBQzVCLENBQUMsQ0FBRSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQTJCO2dCQUM3QyxDQUFDLENBQUMsSUFBSSxDQUFDO1lBQ1QsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFFdkQsSUFBSSxRQUFRLEtBQUssUUFBUSxFQUFFO2dCQUN6QixJQUFJLENBQUMsVUFBVSxHQUFHLFFBQVEsQ0FBQztnQkFDM0IsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQzthQUMxQjtRQUNILENBQUM7S0FLRixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFic3RyYWN0Q29udHJvbCxcbiAgRm9ybUdyb3VwRGlyZWN0aXZlLFxuICBOZ0NvbnRyb2wsXG4gIE5nRm9ybVxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBJbXBkY0Zvcm1Sb290IH0gZnJvbSAnLi4vZGlyZWN0aXZlcyc7XG5pbXBvcnQgeyBFcnJvclN0YXRlTWF0Y2hlciB9IGZyb20gJy4uL3NlcnZpY2VzJztcbmltcG9ydCB7IEFic3RyYWN0Q29uc3RydWN0b3IsIENvbnN0cnVjdG9yIH0gZnJvbSAnLi9jb25zdHJ1Y3RvcnMudHlwZSc7XG5cbi8qKlxuICogQGRvY3MtcHJpdmF0ZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIElDYW5VcGRhdGVFcnJvclN0YXRlIHtcbiAgdXBkYXRlRXJyb3JTdGF0ZSgpOiB2b2lkO1xuICBlcnJvclN0YXRlOiBib29sZWFuO1xuICBlcnJvclN0YXRlTWF0Y2hlcjogRXJyb3JTdGF0ZU1hdGNoZXIgfCB1bmRlZmluZWQ7XG59XG5cbnR5cGUgQ2FuVXBkYXRlRXJyb3JTdGF0ZUN0b3IgPSBDb25zdHJ1Y3RvcjxJQ2FuVXBkYXRlRXJyb3JTdGF0ZT4gJlxuICBBYnN0cmFjdENvbnN0cnVjdG9yPElDYW5VcGRhdGVFcnJvclN0YXRlPjtcblxuLyoqXG4gKiBAZG9jcy1wcml2YXRlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUhhc0Vycm9yU3RhdGUge1xuICBfZm9ybVJvb3Q6IEltcGRjRm9ybVJvb3Q7XG4gIF9wYXJlbnRGb3JtR3JvdXA6IEZvcm1Hcm91cERpcmVjdGl2ZTtcbiAgX3BhcmVudEZvcm06IE5nRm9ybTtcbiAgX2RlZmF1bHRFcnJvclN0YXRlTWF0Y2hlcjogRXJyb3JTdGF0ZU1hdGNoZXI7XG5cbiAgbmdDb250cm9sOiBOZ0NvbnRyb2wgfCBudWxsO1xuICBzdGF0ZUNoYW5nZXM6IFN1YmplY3Q8dm9pZD47XG59XG5cbi8qKlxuICogTWl4aW4gdG8gYXVnbWVudCBhIGRpcmVjdGl2ZSB3aXRoIHVwZGF0ZUVycm9yU3RhdGUgbWV0aG9kLlxuICogSW50ZW5kZWQgZm9yIGNvbXBvbmVudHMgd2l0aCBgZXJyb3JTdGF0ZWAgYW5kIHRoZSBuZWVkIHRvIHVwZGF0ZSBgZXJyb3JTdGF0ZWAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtaXhpbkVycm9yU3RhdGU8VCBleHRlbmRzIEFic3RyYWN0Q29uc3RydWN0b3I8SUhhc0Vycm9yU3RhdGU+PihcbiAgYmFzZTogVFxuKTogQ2FuVXBkYXRlRXJyb3JTdGF0ZUN0b3IgJiBUO1xuZXhwb3J0IGZ1bmN0aW9uIG1peGluRXJyb3JTdGF0ZTxUIGV4dGVuZHMgQ29uc3RydWN0b3I8SUhhc0Vycm9yU3RhdGU+PihcbiAgYmFzZTogVFxuKTogQ2FuVXBkYXRlRXJyb3JTdGF0ZUN0b3IgJiBUIHtcbiAgcmV0dXJuIGNsYXNzIGV4dGVuZHMgYmFzZSB7XG4gICAgLyoqIFdoZXRoZXIgdGhlIGNvbXBvbmVudCBpcyBpbiBhbiBlcnJvciBzdGF0ZS4gKi9cbiAgICBlcnJvclN0YXRlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvKiogQW4gb2JqZWN0IHVzZWQgdG8gY29udHJvbCB0aGUgZXJyb3Igc3RhdGUgb2YgdGhlIGNvbXBvbmVudC4gKi9cbiAgICBlcnJvclN0YXRlTWF0Y2hlcjogRXJyb3JTdGF0ZU1hdGNoZXIgfCB1bmRlZmluZWQ7XG5cbiAgICAvKiogVXBkYXRlcyB0aGUgZXJyb3Igc3RhdGUgYmFzZWQgb24gdGhlIHByb3ZpZGVkIGVycm9yIHN0YXRlIG1hdGNoZXIuICovXG4gICAgdXBkYXRlRXJyb3JTdGF0ZSgpIHtcbiAgICAgIGNvbnN0IG9sZFN0YXRlID0gdGhpcy5lcnJvclN0YXRlO1xuICAgICAgY29uc3QgcGFyZW50ID1cbiAgICAgICAgdGhpcy5fZm9ybVJvb3Q/LmZvcm0gfHwgdGhpcy5fcGFyZW50Rm9ybUdyb3VwIHx8IHRoaXMuX3BhcmVudEZvcm07XG4gICAgICBjb25zdCBtYXRjaGVyID0gdGhpcy5lcnJvclN0YXRlTWF0Y2hlciB8fCB0aGlzLl9kZWZhdWx0RXJyb3JTdGF0ZU1hdGNoZXI7XG4gICAgICBjb25zdCBjb250cm9sID0gdGhpcy5uZ0NvbnRyb2xcbiAgICAgICAgPyAodGhpcy5uZ0NvbnRyb2wuY29udHJvbCBhcyBBYnN0cmFjdENvbnRyb2wpXG4gICAgICAgIDogbnVsbDtcbiAgICAgIGNvbnN0IG5ld1N0YXRlID0gbWF0Y2hlci5pc0Vycm9yU3RhdGUoY29udHJvbCwgcGFyZW50KTtcblxuICAgICAgaWYgKG5ld1N0YXRlICE9PSBvbGRTdGF0ZSkge1xuICAgICAgICB0aGlzLmVycm9yU3RhdGUgPSBuZXdTdGF0ZTtcbiAgICAgICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKC4uLmFyZ3M6IGFueVtdKSB7XG4gICAgICBzdXBlciguLi5hcmdzKTtcbiAgICB9XG4gIH07XG59XG4iXX0=
@@ -0,0 +1,10 @@
1
+ import { Directive } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class ImpdcFormFieldControl {
4
+ }
5
+ ImpdcFormFieldControl.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: ImpdcFormFieldControl, deps: [], target: i0.ɵɵFactoryTarget.Directive });
6
+ ImpdcFormFieldControl.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.12", type: ImpdcFormFieldControl, ngImport: i0 });
7
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: ImpdcFormFieldControl, decorators: [{
8
+ type: Directive
9
+ }] });
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC1jb250cm9sLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzaWduLWNvbXBvbmVudHMvc3JjL2xpYi9mb3JtLWZpZWxkL3NoYXJlZC9mb3JtLWZpZWxkLWNvbnRyb2wudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFLMUMsTUFBTSxPQUFnQixxQkFBcUI7O21IQUFyQixxQkFBcUI7dUdBQXJCLHFCQUFxQjs0RkFBckIscUJBQXFCO2tCQUQxQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2xEaXJlY3RpdmUsIE5nQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgSW1wZGNGb3JtRmllbGRDb250cm9sPFQ+IHtcbiAgLyoqXG4gICAqIFRoZSBjb250cm9sJ3MgdmFsdWUuXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgdmFsdWU6IFQgfCBudWxsO1xuXG4gIC8qKlxuICAgKiBTdHJlYW0gdGhhdCBzaG91bGQgZW1pdCB3aGVuIHRoZSBjb250cm9sJ3Mgc3RhdGUgY2hhbmdlcyBpbiBhIHdheSByZXF1aXJpbmdcbiAgICogdGhlIHBhcmVudCBgRm9ybUZpZWxkQ29tcG9uZW50YCB0byBydW4gY2hhbmdlIGRldGVjdGlvbi5cbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSBzdGF0ZUNoYW5nZXM6IE9ic2VydmFibGU8dm9pZD47XG5cbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IGlkOiBzdHJpbmc7XG5cbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IG5nQ29udHJvbDpcbiAgICB8IE5nQ29udHJvbFxuICAgIHwgQWJzdHJhY3RDb250cm9sRGlyZWN0aXZlXG4gICAgfCBudWxsO1xuXG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSBmb2N1c2VkOiBib29sZWFuO1xuXG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSBkaXNhYmxlZDogYm9vbGVhbjtcblxuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgcmVxdWlyZWQ6IGJvb2xlYW47XG5cbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IGVycm9yU3RhdGU6IGJvb2xlYW47XG5cbiAgcHVibGljIHJlYWRvbmx5IGNvbnRyb2xUeXBlPzogc3RyaW5nO1xuXG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSBzdXBwb3J0c0FmZml4ZXM6IGJvb2xlYW47XG59XG4iXX0=
@@ -0,0 +1,5 @@
1
+ export { mixinDisabled } from './disabled.mixin';
2
+ export { mixinErrorState } from './error-state.mixin';
3
+ export { ImpdcFormFieldControl } from './form-field-control';
4
+ export { mixinTabIndex } from './tab-index.mixin';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tY29tcG9uZW50cy9zcmMvbGliL2Zvcm0tZmllbGQvc2hhcmVkL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBYyxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM3RCxPQUFPLEVBR0wsZUFBZSxFQUNoQixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzdELE9BQU8sRUFBZSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IENvbnN0cnVjdG9yLCBBYnN0cmFjdENvbnN0cnVjdG9yIH0gZnJvbSAnLi9jb25zdHJ1Y3RvcnMudHlwZSc7XG5leHBvcnQgeyBDYW5EaXNhYmxlLCBtaXhpbkRpc2FibGVkIH0gZnJvbSAnLi9kaXNhYmxlZC5taXhpbic7XG5leHBvcnQge1xuICBJQ2FuVXBkYXRlRXJyb3JTdGF0ZSxcbiAgSUhhc0Vycm9yU3RhdGUsXG4gIG1peGluRXJyb3JTdGF0ZVxufSBmcm9tICcuL2Vycm9yLXN0YXRlLm1peGluJztcbmV4cG9ydCB7IEltcGRjRm9ybUZpZWxkQ29udHJvbCB9IGZyb20gJy4vZm9ybS1maWVsZC1jb250cm9sJztcbmV4cG9ydCB7IEhhc1RhYkluZGV4LCBtaXhpblRhYkluZGV4IH0gZnJvbSAnLi90YWItaW5kZXgubWl4aW4nO1xuIl19
@@ -0,0 +1,19 @@
1
+ import { coerceNumberPropertyValue } from '../../../utilities';
2
+ export function mixinTabIndex(base, defaultTabIndex = 0) {
3
+ return class extends base {
4
+ constructor(...args) {
5
+ super(...args);
6
+ this._tabIndex = defaultTabIndex;
7
+ this.defaultTabIndex = defaultTabIndex;
8
+ }
9
+ get tabIndex() {
10
+ return this.disabled ? -1 : this._tabIndex;
11
+ }
12
+ set tabIndex(value) {
13
+ // If the specified tabIndex value is null or undefined, fall back to the default value.
14
+ this._tabIndex =
15
+ value != null ? coerceNumberPropertyValue(value) : this.defaultTabIndex;
16
+ }
17
+ };
18
+ }
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLWluZGV4Lm1peGluLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzaWduLWNvbXBvbmVudHMvc3JjL2xpYi9mb3JtLWZpZWxkL3NoYXJlZC90YWItaW5kZXgubWl4aW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFxQi9ELE1BQU0sVUFBVSxhQUFhLENBQzNCLElBQU8sRUFDUCxlQUFlLEdBQUcsQ0FBQztJQUVuQixPQUFPLEtBQU0sU0FBUSxJQUFJO1FBYXZCLFlBQVksR0FBRyxJQUFXO1lBQ3hCLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO1lBYlQsY0FBUyxHQUFXLGVBQWUsQ0FBQztZQUM1QyxvQkFBZSxHQUFHLGVBQWUsQ0FBQztRQWFsQyxDQUFDO1FBWEQsSUFBSSxRQUFRO1lBQ1YsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUM3QyxDQUFDO1FBQ0QsSUFBSSxRQUFRLENBQUMsS0FBYTtZQUN4Qix3RkFBd0Y7WUFDeEYsSUFBSSxDQUFDLFNBQVM7Z0JBQ1osS0FBSyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMseUJBQXlCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUM7UUFDNUUsQ0FBQztLQUtGLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29lcmNlTnVtYmVyUHJvcGVydHlWYWx1ZSB9IGZyb20gJy4uLy4uLy4uL3V0aWxpdGllcyc7XG5pbXBvcnQgeyBBYnN0cmFjdENvbnN0cnVjdG9yLCBDb25zdHJ1Y3RvciB9IGZyb20gJy4vY29uc3RydWN0b3JzLnR5cGUnO1xuaW1wb3J0IHsgQ2FuRGlzYWJsZSB9IGZyb20gJy4vZGlzYWJsZWQubWl4aW4nO1xuXG4vKiogQGlnbm9yZSAqL1xuZXhwb3J0IGludGVyZmFjZSBIYXNUYWJJbmRleCB7XG4gIC8qKiBUYWJpbmRleCBvZiB0aGUgY29tcG9uZW50LiAqL1xuICB0YWJJbmRleDogbnVtYmVyO1xuXG4gIC8qKiBUYWJpbmRleCB0byB3aGljaCB0byBmYWxsIGJhY2sgdG8gaWYgbm8gdmFsdWUgaXMgc2V0LiAqL1xuICBkZWZhdWx0VGFiSW5kZXg6IG51bWJlcjtcbn1cblxudHlwZSBIYXNUYWJJbmRleEN0b3IgPSBDb25zdHJ1Y3RvcjxIYXNUYWJJbmRleD4gJlxuICBBYnN0cmFjdENvbnN0cnVjdG9yPEhhc1RhYkluZGV4PjtcblxuLyoqIE1peGluIHRvIGF1Z21lbnQgYSBkaXJlY3RpdmUgd2l0aCBhIGB0YWJJbmRleGAgcHJvcGVydHkuICovXG5leHBvcnQgZnVuY3Rpb24gbWl4aW5UYWJJbmRleDxUIGV4dGVuZHMgQWJzdHJhY3RDb25zdHJ1Y3RvcjxDYW5EaXNhYmxlPj4oXG4gIGJhc2U6IFQsXG4gIGRlZmF1bHRUYWJJbmRleD86IG51bWJlclxuKTogSGFzVGFiSW5kZXhDdG9yICYgVDtcbmV4cG9ydCBmdW5jdGlvbiBtaXhpblRhYkluZGV4PFQgZXh0ZW5kcyBDb25zdHJ1Y3RvcjxDYW5EaXNhYmxlPj4oXG4gIGJhc2U6IFQsXG4gIGRlZmF1bHRUYWJJbmRleCA9IDBcbik6IEhhc1RhYkluZGV4Q3RvciAmIFQge1xuICByZXR1cm4gY2xhc3MgZXh0ZW5kcyBiYXNlIGltcGxlbWVudHMgSGFzVGFiSW5kZXgge1xuICAgIHByaXZhdGUgX3RhYkluZGV4OiBudW1iZXIgPSBkZWZhdWx0VGFiSW5kZXg7XG4gICAgZGVmYXVsdFRhYkluZGV4ID0gZGVmYXVsdFRhYkluZGV4O1xuXG4gICAgZ2V0IHRhYkluZGV4KCk6IG51bWJlciB7XG4gICAgICByZXR1cm4gdGhpcy5kaXNhYmxlZCA/IC0xIDogdGhpcy5fdGFiSW5kZXg7XG4gICAgfVxuICAgIHNldCB0YWJJbmRleCh2YWx1ZTogbnVtYmVyKSB7XG4gICAgICAvLyBJZiB0aGUgc3BlY2lmaWVkIHRhYkluZGV4IHZhbHVlIGlzIG51bGwgb3IgdW5kZWZpbmVkLCBmYWxsIGJhY2sgdG8gdGhlIGRlZmF1bHQgdmFsdWUuXG4gICAgICB0aGlzLl90YWJJbmRleCA9XG4gICAgICAgIHZhbHVlICE9IG51bGwgPyBjb2VyY2VOdW1iZXJQcm9wZXJ0eVZhbHVlKHZhbHVlKSA6IHRoaXMuZGVmYXVsdFRhYkluZGV4O1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKC4uLmFyZ3M6IGFueVtdKSB7XG4gICAgICBzdXBlciguLi5hcmdzKTtcbiAgICB9XG4gIH07XG59XG4iXX0=
@@ -0,0 +1,70 @@
1
+ import { Component, Input, ViewChild, ViewEncapsulation } from '@angular/core';
2
+ import { FontAwesomeFreeRegularIcons } from '../../constants';
3
+ import * as i0 from "@angular/core";
4
+ /**
5
+ * The `IconComponent` (`<impdc-icon` or `<any impdc-icon`) is an icon wrapper utilizing Font Awesome 5.
6
+ * To use, import `IconModule` or another module that imports and exports that module from `@impartner/design-components`.
7
+ */
8
+ export class IconComponent {
9
+ constructor() {
10
+ /**
11
+ * The Font Awesome 5 icon style. Local development may fallback to a free available
12
+ * theme when possible.
13
+ */
14
+ this.theme = 'solid';
15
+ /**
16
+ * The icon size as a string or number. String values are used directly whereas numbers are
17
+ * interpreted as pixels.
18
+ */
19
+ this.size = '1.8rem';
20
+ }
21
+ get usingLicensed() {
22
+ if (!this.iconRef?.nativeElement) {
23
+ return false;
24
+ }
25
+ const iconFontFamily = getComputedStyle(this.iconRef?.nativeElement).getPropertyValue('font-family');
26
+ return (iconFontFamily.includes('Font Awesome') &&
27
+ !iconFontFamily.includes('Free'));
28
+ }
29
+ get typeClass() {
30
+ if (this.usingLicensed) {
31
+ switch (this.theme) {
32
+ case 'light':
33
+ return 'fal';
34
+ case 'regular':
35
+ return 'far';
36
+ // case 'solid':
37
+ default:
38
+ return 'fas';
39
+ }
40
+ }
41
+ if ((this.theme === 'light' || this.theme === 'regular') &&
42
+ !!this.name &&
43
+ FontAwesomeFreeRegularIcons.includes(this.name)) {
44
+ return 'far';
45
+ }
46
+ return 'fas';
47
+ }
48
+ get computedSize() {
49
+ if (Number.isNaN(this.size)) {
50
+ return this.size.toString();
51
+ }
52
+ return `${this.size}px`;
53
+ }
54
+ }
55
+ IconComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
56
+ IconComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: IconComponent, selector: "impdc-icon, [impdc-icon]", inputs: { name: "name", theme: "theme", size: "size" }, viewQueries: [{ propertyName: "iconRef", first: true, predicate: ["icon"], descendants: true, static: true }], ngImport: i0, template: "<i\n #icon\n class=\"{{ typeClass }} fa-{{ name }}\"\n [style.font-size]=\"computedSize\"></i>\n", encapsulation: i0.ViewEncapsulation.None });
57
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IconComponent, decorators: [{
58
+ type: Component,
59
+ args: [{ selector: 'impdc-icon, [impdc-icon]', encapsulation: ViewEncapsulation.None, template: "<i\n #icon\n class=\"{{ typeClass }} fa-{{ name }}\"\n [style.font-size]=\"computedSize\"></i>\n" }]
60
+ }], propDecorators: { name: [{
61
+ type: Input
62
+ }], theme: [{
63
+ type: Input
64
+ }], size: [{
65
+ type: Input
66
+ }], iconRef: [{
67
+ type: ViewChild,
68
+ args: ['icon', { static: true }]
69
+ }] } });
70
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tY29tcG9uZW50cy9zcmMvbGliL2ljb24vaWNvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tY29tcG9uZW50cy9zcmMvbGliL2ljb24vaWNvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUVULEtBQUssRUFDTCxTQUFTLEVBQ1QsaUJBQWlCLEVBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFHTCwyQkFBMkIsRUFDNUIsTUFBTSxpQkFBaUIsQ0FBQzs7QUFFekI7OztHQUdHO0FBTUgsTUFBTSxPQUFPLGFBQWE7SUFMMUI7UUFhRTs7O1dBR0c7UUFFSCxVQUFLLEdBQXlCLE9BQU8sQ0FBQztRQUV0Qzs7O1dBR0c7UUFFSCxTQUFJLEdBQW9CLFFBQVEsQ0FBQztLQThDbEM7SUExQ0MsSUFBWSxhQUFhO1FBQ3ZCLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLGFBQWEsRUFBRTtZQUNoQyxPQUFPLEtBQUssQ0FBQztTQUNkO1FBQ0QsTUFBTSxjQUFjLEdBQUcsZ0JBQWdCLENBQ3JDLElBQUksQ0FBQyxPQUFPLEVBQUUsYUFBYSxDQUM1QixDQUFDLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ2xDLE9BQU8sQ0FDTCxjQUFjLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQztZQUN2QyxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQ2pDLENBQUM7SUFDSixDQUFDO0lBRUQsSUFBVyxTQUFTO1FBQ2xCLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUN0QixRQUFRLElBQUksQ0FBQyxLQUFLLEVBQUU7Z0JBQ2xCLEtBQUssT0FBTztvQkFDVixPQUFPLEtBQUssQ0FBQztnQkFDZixLQUFLLFNBQVM7b0JBQ1osT0FBTyxLQUFLLENBQUM7Z0JBQ2YsZ0JBQWdCO2dCQUNoQjtvQkFDRSxPQUFPLEtBQUssQ0FBQzthQUNoQjtTQUNGO1FBQ0QsSUFDRSxDQUFDLElBQUksQ0FBQyxLQUFLLEtBQUssT0FBTyxJQUFJLElBQUksQ0FBQyxLQUFLLEtBQUssU0FBUyxDQUFDO1lBQ3BELENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSTtZQUNYLDJCQUEyQixDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQy9DO1lBQ0EsT0FBTyxLQUFLLENBQUM7U0FDZDtRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELElBQVcsWUFBWTtRQUNyQixJQUFJLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQzNCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztTQUM3QjtRQUVELE9BQU8sR0FBRyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUM7SUFDMUIsQ0FBQzs7MkdBakVVLGFBQWE7K0ZBQWIsYUFBYSx1T0N0QjFCLHFHQUlBOzRGRGtCYSxhQUFhO2tCQUx6QixTQUFTOytCQUNFLDBCQUEwQixpQkFFckIsaUJBQWlCLENBQUMsSUFBSTs4QkFRckMsSUFBSTtzQkFESCxLQUFLO2dCQVFOLEtBQUs7c0JBREosS0FBSztnQkFRTixJQUFJO3NCQURILEtBQUs7Z0JBRytCLE9BQU87c0JBQTNDLFNBQVM7dUJBQUMsTUFBTSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSW5wdXQsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBGb250QXdlc29tZUljb24sXG4gIEZvbnRBd2Vzb21lSWNvblRoZW1lLFxuICBGb250QXdlc29tZUZyZWVSZWd1bGFySWNvbnNcbn0gZnJvbSAnLi4vLi4vY29uc3RhbnRzJztcblxuLyoqXG4gKiBUaGUgYEljb25Db21wb25lbnRgIChgPGltcGRjLWljb25gIG9yIGA8YW55IGltcGRjLWljb25gKSBpcyBhbiBpY29uIHdyYXBwZXIgdXRpbGl6aW5nIEZvbnQgQXdlc29tZSA1LlxuICogVG8gdXNlLCBpbXBvcnQgYEljb25Nb2R1bGVgIG9yIGFub3RoZXIgbW9kdWxlIHRoYXQgaW1wb3J0cyBhbmQgZXhwb3J0cyB0aGF0IG1vZHVsZSBmcm9tIGBAaW1wYXJ0bmVyL2Rlc2lnbi1jb21wb25lbnRzYC5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaW1wZGMtaWNvbiwgW2ltcGRjLWljb25dJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ljb24uY29tcG9uZW50Lmh0bWwnLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXG59KVxuZXhwb3J0IGNsYXNzIEljb25Db21wb25lbnQge1xuICAvKipcbiAgICogVGhlIEZvbnQgQXdlc29tZSA1IGljb24gbmFtZS4gU2VlIHtAbGluayBodHRwczovL2ZvbnRhd2Vzb21lLmNvbS92NS9zZWFyY2h9LiBMb2NhbFxuICAgKiBkZXZlbG9wbWVudCBtYXkgbm90IHJlcHJlc2VudCB0aGUgY29tcGxldGUgbGlzdCBvZiBhdmFpbGFibGUgaWNvbnMuXG4gICAqL1xuICBASW5wdXQoKVxuICBuYW1lPzogRm9udEF3ZXNvbWVJY29uO1xuXG4gIC8qKlxuICAgKiBUaGUgRm9udCBBd2Vzb21lIDUgaWNvbiBzdHlsZS4gTG9jYWwgZGV2ZWxvcG1lbnQgbWF5IGZhbGxiYWNrIHRvIGEgZnJlZSBhdmFpbGFibGVcbiAgICogdGhlbWUgd2hlbiBwb3NzaWJsZS5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHRoZW1lOiBGb250QXdlc29tZUljb25UaGVtZSA9ICdzb2xpZCc7XG5cbiAgLyoqXG4gICAqIFRoZSBpY29uIHNpemUgYXMgYSBzdHJpbmcgb3IgbnVtYmVyLiBTdHJpbmcgdmFsdWVzIGFyZSB1c2VkIGRpcmVjdGx5IHdoZXJlYXMgbnVtYmVycyBhcmVcbiAgICogaW50ZXJwcmV0ZWQgYXMgcGl4ZWxzLlxuICAgKi9cbiAgQElucHV0KClcbiAgc2l6ZTogc3RyaW5nIHwgbnVtYmVyID0gJzEuOHJlbSc7XG5cbiAgQFZpZXdDaGlsZCgnaWNvbicsIHsgc3RhdGljOiB0cnVlIH0pIGljb25SZWY/OiBFbGVtZW50UmVmO1xuXG4gIHByaXZhdGUgZ2V0IHVzaW5nTGljZW5zZWQoKTogYm9vbGVhbiB7XG4gICAgaWYgKCF0aGlzLmljb25SZWY/Lm5hdGl2ZUVsZW1lbnQpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgY29uc3QgaWNvbkZvbnRGYW1pbHkgPSBnZXRDb21wdXRlZFN0eWxlKFxuICAgICAgdGhpcy5pY29uUmVmPy5uYXRpdmVFbGVtZW50XG4gICAgKS5nZXRQcm9wZXJ0eVZhbHVlKCdmb250LWZhbWlseScpO1xuICAgIHJldHVybiAoXG4gICAgICBpY29uRm9udEZhbWlseS5pbmNsdWRlcygnRm9udCBBd2Vzb21lJykgJiZcbiAgICAgICFpY29uRm9udEZhbWlseS5pbmNsdWRlcygnRnJlZScpXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgdHlwZUNsYXNzKCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMudXNpbmdMaWNlbnNlZCkge1xuICAgICAgc3dpdGNoICh0aGlzLnRoZW1lKSB7XG4gICAgICAgIGNhc2UgJ2xpZ2h0JzpcbiAgICAgICAgICByZXR1cm4gJ2ZhbCc7XG4gICAgICAgIGNhc2UgJ3JlZ3VsYXInOlxuICAgICAgICAgIHJldHVybiAnZmFyJztcbiAgICAgICAgLy8gY2FzZSAnc29saWQnOlxuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHJldHVybiAnZmFzJztcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKFxuICAgICAgKHRoaXMudGhlbWUgPT09ICdsaWdodCcgfHwgdGhpcy50aGVtZSA9PT0gJ3JlZ3VsYXInKSAmJlxuICAgICAgISF0aGlzLm5hbWUgJiZcbiAgICAgIEZvbnRBd2Vzb21lRnJlZVJlZ3VsYXJJY29ucy5pbmNsdWRlcyh0aGlzLm5hbWUpXG4gICAgKSB7XG4gICAgICByZXR1cm4gJ2Zhcic7XG4gICAgfVxuICAgIHJldHVybiAnZmFzJztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgY29tcHV0ZWRTaXplKCk6IHN0cmluZyB7XG4gICAgaWYgKE51bWJlci5pc05hTih0aGlzLnNpemUpKSB7XG4gICAgICByZXR1cm4gdGhpcy5zaXplLnRvU3RyaW5nKCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGAke3RoaXMuc2l6ZX1weGA7XG4gIH1cbn1cbiIsIjxpXG4gICNpY29uXG4gIGNsYXNzPVwie3sgdHlwZUNsYXNzIH19IGZhLXt7IG5hbWUgfX1cIlxuICBbc3R5bGUuZm9udC1zaXplXT1cImNvbXB1dGVkU2l6ZVwiPjwvaT5cbiJdfQ==
@@ -0,0 +1,19 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { NgModule } from '@angular/core';
3
+ import { IconComponent } from './icon.component';
4
+ import * as i0 from "@angular/core";
5
+ export class IconModule {
6
+ constructor() { }
7
+ }
8
+ IconModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IconModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
9
+ IconModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.12", ngImport: i0, type: IconModule, declarations: [IconComponent], imports: [CommonModule], exports: [IconComponent] });
10
+ IconModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IconModule, imports: [CommonModule] });
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IconModule, decorators: [{
12
+ type: NgModule,
13
+ args: [{
14
+ imports: [CommonModule],
15
+ declarations: [IconComponent],
16
+ exports: [IconComponent]
17
+ }]
18
+ }], ctorParameters: function () { return []; } });
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tY29tcG9uZW50cy9zcmMvbGliL2ljb24vaWNvbi5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDOztBQU9qRCxNQUFNLE9BQU8sVUFBVTtJQUNyQixnQkFBZSxDQUFDOzt3R0FETCxVQUFVO3lHQUFWLFVBQVUsaUJBSE4sYUFBYSxhQURsQixZQUFZLGFBRVosYUFBYTt5R0FFWixVQUFVLFlBSlgsWUFBWTs0RkFJWCxVQUFVO2tCQUx0QixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztvQkFDdkIsWUFBWSxFQUFFLENBQUMsYUFBYSxDQUFDO29CQUM3QixPQUFPLEVBQUUsQ0FBQyxhQUFhLENBQUM7aUJBQ3pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJY29uQ29tcG9uZW50IH0gZnJvbSAnLi9pY29uLmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICBkZWNsYXJhdGlvbnM6IFtJY29uQ29tcG9uZW50XSxcbiAgZXhwb3J0czogW0ljb25Db21wb25lbnRdXG59KVxuZXhwb3J0IGNsYXNzIEljb25Nb2R1bGUge1xuICBjb25zdHJ1Y3RvcigpIHt9XG59XG4iXX0=
@@ -0,0 +1,3 @@
1
+ export { IconComponent } from './icon.component';
2
+ export { IconModule } from './icon.module';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tY29tcG9uZW50cy9zcmMvbGliL2ljb24vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBJY29uQ29tcG9uZW50IH0gZnJvbSAnLi9pY29uLmNvbXBvbmVudCc7XG5leHBvcnQgeyBJY29uTW9kdWxlIH0gZnJvbSAnLi9pY29uLm1vZHVsZSc7XG4iXX0=