@impartner/design-components 1.1.3 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (304) hide show
  1. package/README.md +5 -4
  2. package/constants/fontawesome-icons.d.ts +2 -2
  3. package/{esm2020 → esm2022}/constants/fontawesome-icons.mjs +1 -1
  4. package/{esm2020 → esm2022}/lib/alert/alert.component.mjs +4 -4
  5. package/{esm2020 → esm2022}/lib/alert/alert.module.mjs +5 -5
  6. package/{esm2020 → esm2022}/lib/avatar/avatar.component.mjs +4 -4
  7. package/{esm2020 → esm2022}/lib/avatar/avatar.module.mjs +5 -5
  8. package/{esm2020 → esm2022}/lib/avatar-group/avatar-group.component.mjs +4 -4
  9. package/{esm2020 → esm2022}/lib/avatar-group/avatar-group.module.mjs +5 -5
  10. package/esm2022/lib/backdrop/backdrop.component.mjs +52 -0
  11. package/{esm2020 → esm2022}/lib/backdrop/backdrop.module.mjs +6 -6
  12. package/esm2022/lib/badge/badge.component.mjs +105 -0
  13. package/{esm2020 → esm2022}/lib/badge/badge.module.mjs +6 -6
  14. package/{esm2020 → esm2022}/lib/badge/types/badge-size.mjs +1 -1
  15. package/{esm2020 → esm2022}/lib/branding/branded.directive.mjs +4 -4
  16. package/{esm2020 → esm2022}/lib/branding/branding.module.mjs +6 -6
  17. package/{esm2020 → esm2022}/lib/breadcrumb/breadcrumb-item.component.mjs +6 -6
  18. package/{esm2020 → esm2022}/lib/breadcrumb/breadcrumb.component.mjs +5 -5
  19. package/{esm2020 → esm2022}/lib/breadcrumb/breadcrumb.module.mjs +5 -5
  20. package/{esm2020 → esm2022}/lib/button/button.component.mjs +4 -4
  21. package/{esm2020 → esm2022}/lib/button/button.module.mjs +6 -6
  22. package/{esm2020 → esm2022}/lib/button-group/button-group.component.mjs +4 -4
  23. package/{esm2020 → esm2022}/lib/button-group/button-group.module.mjs +6 -6
  24. package/{esm2020 → esm2022}/lib/card-heading/card-heading.component.mjs +5 -5
  25. package/{esm2020 → esm2022}/lib/card-heading/card-heading.module.mjs +6 -6
  26. package/esm2022/lib/data-card/data-card.component.mjs +123 -0
  27. package/esm2022/lib/data-card/data-card.module.mjs +21 -0
  28. package/{esm2020 → esm2022}/lib/design-components.module.mjs +61 -61
  29. package/{esm2020 → esm2022}/lib/dropdown/components/dropdown-item/dropdown-item.component.mjs +4 -4
  30. package/esm2022/lib/dropdown/dropdown.component.mjs +143 -0
  31. package/{esm2020 → esm2022}/lib/dropdown/dropdown.module.mjs +6 -6
  32. package/{esm2020 → esm2022}/lib/file-upload/directives/file-drop.directive.mjs +4 -4
  33. package/{esm2020 → esm2022}/lib/file-upload/file-upload.component.mjs +30 -30
  34. package/{esm2020 → esm2022}/lib/file-upload/file-upload.module.mjs +8 -8
  35. package/{esm2020 → esm2022}/lib/file-upload/pipes/human-readable-byte-size.pipe.mjs +4 -4
  36. package/{esm2020 → esm2022}/lib/form-field/controls/checkbox/checkbox.component.mjs +49 -49
  37. package/{esm2020 → esm2022}/lib/form-field/controls/checkbox/checkbox.module.mjs +5 -5
  38. package/esm2022/lib/form-field/controls/input/input.directive.mjs +233 -0
  39. package/esm2022/lib/form-field/controls/radio/radio-button/radio-button.component.mjs +260 -0
  40. package/esm2022/lib/form-field/controls/radio/radio-group/radio-group.directive.mjs +289 -0
  41. package/{esm2020 → esm2022}/lib/form-field/controls/radio/radio.module.mjs +5 -5
  42. package/esm2022/lib/form-field/controls/select/option/select-option.component.mjs +139 -0
  43. package/esm2022/lib/form-field/controls/select/select-model.mjs +150 -0
  44. package/esm2022/lib/form-field/controls/select/select.component.mjs +522 -0
  45. package/{esm2020 → esm2022}/lib/form-field/controls/select/select.module.mjs +9 -9
  46. package/{esm2020 → esm2022}/lib/form-field/controls/shared/toggle/components/toggle-input/toggle-input.component.mjs +4 -4
  47. package/esm2022/lib/form-field/controls/shared/toggle/toggle.component.mjs +96 -0
  48. package/{esm2020 → esm2022}/lib/form-field/controls/shared/toggle/toggle.module.mjs +6 -6
  49. package/{esm2020 → esm2022}/lib/form-field/directives/corner-hint.directive.mjs +4 -4
  50. package/{esm2020 → esm2022}/lib/form-field/directives/error.directive.mjs +4 -4
  51. package/esm2022/lib/form-field/directives/form-root.directive.mjs +91 -0
  52. package/{esm2020 → esm2022}/lib/form-field/directives/hint.directive.mjs +4 -4
  53. package/{esm2020 → esm2022}/lib/form-field/directives/label.directive.mjs +4 -4
  54. package/{esm2020 → esm2022}/lib/form-field/directives/prefix.directive.mjs +4 -4
  55. package/{esm2020 → esm2022}/lib/form-field/directives/suffix.directive.mjs +4 -4
  56. package/{esm2020 → esm2022}/lib/form-field/form-field.component.mjs +11 -11
  57. package/{esm2020 → esm2022}/lib/form-field/impdc-forms.module.mjs +28 -28
  58. package/{esm2020 → esm2022}/lib/form-field/services/error-state-matcher.service.mjs +7 -7
  59. package/{esm2020 → esm2022}/lib/form-field/services/unique-selection-dispatcher.service.mjs +4 -4
  60. package/{esm2020 → esm2022}/lib/form-field/shared/disabled.mixin.mjs +5 -5
  61. package/esm2022/lib/form-field/shared/error-state.mixin.mjs +24 -0
  62. package/{esm2020 → esm2022}/lib/form-field/shared/form-field-control.mjs +4 -4
  63. package/{esm2020 → esm2022}/lib/form-field/shared/tab-index.mixin.mjs +6 -6
  64. package/{esm2020 → esm2022}/lib/icon/icon.component.mjs +5 -5
  65. package/{esm2020 → esm2022}/lib/icon/icon.module.mjs +6 -6
  66. package/esm2022/lib/modal/modal.component.mjs +260 -0
  67. package/{esm2020 → esm2022}/lib/modal/modal.module.mjs +14 -14
  68. package/{esm2020 → esm2022}/lib/modal/types/modal-component-sizes.mjs +1 -1
  69. package/{esm2020 → esm2022}/lib/modal/types/modal-theme.mjs +1 -1
  70. package/esm2022/lib/pagination/pagination.component.mjs +176 -0
  71. package/esm2022/lib/pagination/pagination.module.mjs +41 -0
  72. package/{esm2020 → esm2022}/lib/progress-bar/progress-bar.component.mjs +5 -5
  73. package/{esm2020 → esm2022}/lib/progress-bar/progress-bar.module.mjs +5 -5
  74. package/esm2022/lib/scrollable/scrollable.component.mjs +186 -0
  75. package/{esm2020 → esm2022}/lib/scrollable/scrollable.module.mjs +6 -6
  76. package/esm2022/lib/select-icon/select-icon.component.mjs +308 -0
  77. package/{esm2020 → esm2022}/lib/select-icon/select-icon.module.mjs +13 -13
  78. package/{esm2020 → esm2022}/lib/size-detection/directive/size-detector.directive.mjs +5 -5
  79. package/{esm2020 → esm2022}/lib/size-detection/size-detection.module.mjs +5 -5
  80. package/{esm2020 → esm2022}/lib/spinner/spinner.component.mjs +4 -4
  81. package/{esm2020 → esm2022}/lib/spinner/spinner.module.mjs +5 -5
  82. package/esm2022/lib/table/components/bulk-actions/bulk-actions.component.mjs +11 -0
  83. package/esm2022/lib/table/components/column-heading/column-heading.component.mjs +38 -0
  84. package/esm2022/lib/table/components/index.mjs +4 -0
  85. package/esm2022/lib/table/components/row-actions/row-actions.component.mjs +61 -0
  86. package/esm2022/lib/table/constants/index.mjs +3 -0
  87. package/esm2022/lib/table/constants/public-table.constants.mjs +2 -0
  88. package/esm2022/lib/table/constants/table.constants.mjs +24 -0
  89. package/esm2022/lib/table/containers/index.mjs +2 -0
  90. package/esm2022/lib/table/containers/table.component.mjs +403 -0
  91. package/esm2022/lib/table/directives/index.mjs +3 -0
  92. package/esm2022/lib/table/directives/table-inject-component.directive.mjs +46 -0
  93. package/esm2022/lib/table/directives/table.directive.mjs +35 -0
  94. package/esm2022/lib/table/enumerations/index.mjs +2 -0
  95. package/esm2022/lib/table/enumerations/table-column-type.mjs +21 -0
  96. package/esm2022/lib/table/helpers/index.mjs +2 -0
  97. package/esm2022/lib/table/helpers/table-theme.helper.mjs +31 -0
  98. package/esm2022/lib/table/index.mjs +8 -0
  99. package/esm2022/lib/table/interfaces/cell-renderer.interface.mjs +2 -0
  100. package/esm2022/lib/table/interfaces/custom-cell-renderer-components.type.mjs +2 -0
  101. package/esm2022/lib/table/interfaces/index.mjs +11 -0
  102. package/esm2022/lib/table/interfaces/sort-by-payload.interface.mjs +2 -0
  103. package/esm2022/lib/table/interfaces/table-cell-option.interface.mjs +2 -0
  104. package/esm2022/lib/table/interfaces/table-column-defs.type.mjs +2 -0
  105. package/esm2022/lib/table/interfaces/table-event-payload.interface.mjs +2 -0
  106. package/esm2022/lib/table/interfaces/table-row-action-payload.interface.mjs +2 -0
  107. package/esm2022/lib/table/interfaces/table-row-action.interface.mjs +2 -0
  108. package/esm2022/lib/table/interfaces/table-row-item.interface.mjs +2 -0
  109. package/esm2022/lib/table/table.module.mjs +96 -0
  110. package/{esm2020 → esm2022}/lib/text-highlight/text-highlight.component.mjs +6 -6
  111. package/{esm2020 → esm2022}/lib/text-highlight/text-highlight.module.mjs +6 -6
  112. package/{esm2020 → esm2022}/services/index.mjs +1 -1
  113. package/esm2022/services/interaction.service.mjs +88 -0
  114. package/{esm2020 → esm2022}/types/component-theme.mjs +1 -1
  115. package/{fesm2020 → fesm2022}/impartner-design-components.mjs +3768 -2988
  116. package/fesm2022/impartner-design-components.mjs.map +1 -0
  117. package/lib/alert/alert.component.d.ts +1 -1
  118. package/lib/alert/theme/alert-theme.d.ts +1 -1
  119. package/lib/avatar/avatar.component.d.ts +1 -1
  120. package/lib/avatar-group/avatar-group.component.d.ts +1 -1
  121. package/lib/backdrop/backdrop.component.d.ts +9 -6
  122. package/lib/badge/badge.component.d.ts +3 -2
  123. package/lib/badge/types/badge-icon.d.ts +1 -1
  124. package/lib/badge/types/badge-size.d.ts +1 -1
  125. package/lib/branding/branded.directive.d.ts +1 -1
  126. package/lib/breadcrumb/breadcrumb-item.component.d.ts +1 -1
  127. package/lib/breadcrumb/breadcrumb.component.d.ts +1 -1
  128. package/lib/button/button.component.d.ts +1 -1
  129. package/lib/button/themes/button-theme.d.ts +1 -1
  130. package/lib/button-group/button-group.component.d.ts +1 -1
  131. package/lib/card-heading/card-heading.component.d.ts +1 -1
  132. package/lib/data-card/data-card.component.d.ts +14 -18
  133. package/lib/data-card/data-card.module.d.ts +2 -1
  134. package/lib/dropdown/components/dropdown-item/dropdown-item.component.d.ts +1 -1
  135. package/lib/dropdown/dropdown.component.d.ts +6 -5
  136. package/lib/dropdown/types/dropdown-position.d.ts +1 -1
  137. package/lib/file-upload/directives/file-drop.directive.d.ts +1 -1
  138. package/lib/file-upload/file-upload.component.d.ts +1 -1
  139. package/lib/form-field/controls/checkbox/checkbox.component.d.ts +1 -1
  140. package/lib/form-field/controls/input/input.directive.d.ts +1 -1
  141. package/lib/form-field/controls/radio/radio-button/radio-button.component.d.ts +1 -1
  142. package/lib/form-field/controls/radio/radio-group/radio-group.directive.d.ts +1 -1
  143. package/lib/form-field/controls/select/option/select-option.component.d.ts +4 -4
  144. package/lib/form-field/controls/select/select.component.d.ts +1 -1
  145. package/lib/form-field/controls/shared/toggle/components/toggle-input/toggle-input.component.d.ts +1 -1
  146. package/lib/form-field/controls/shared/toggle/toggle.component.d.ts +1 -1
  147. package/lib/form-field/directives/corner-hint.directive.d.ts +1 -1
  148. package/lib/form-field/directives/error.directive.d.ts +1 -1
  149. package/lib/form-field/directives/form-root.directive.d.ts +2 -2
  150. package/lib/form-field/directives/hint.directive.d.ts +1 -1
  151. package/lib/form-field/directives/label.directive.d.ts +1 -1
  152. package/lib/form-field/directives/prefix.directive.d.ts +1 -1
  153. package/lib/form-field/directives/suffix.directive.d.ts +1 -1
  154. package/lib/form-field/form-field.component.d.ts +1 -1
  155. package/lib/form-field/services/unique-selection-dispatcher.service.d.ts +1 -1
  156. package/lib/form-field/shared/constructors.type.d.ts +2 -2
  157. package/lib/form-field/shared/disabled.mixin.d.ts +1 -1
  158. package/lib/form-field/shared/error-state.mixin.d.ts +1 -1
  159. package/lib/form-field/shared/form-field-control.d.ts +1 -1
  160. package/lib/form-field/shared/tab-index.mixin.d.ts +1 -1
  161. package/lib/icon/icon.component.d.ts +1 -1
  162. package/lib/modal/modal.component.d.ts +17 -10
  163. package/lib/modal/types/modal-component-sizes.d.ts +1 -1
  164. package/lib/modal/types/modal-theme.d.ts +1 -1
  165. package/lib/pagination/pagination.component.d.ts +18 -3
  166. package/lib/pagination/pagination.module.d.ts +2 -1
  167. package/lib/progress-bar/progress-bar.component.d.ts +1 -1
  168. package/lib/scrollable/scrollable.component.d.ts +1 -1
  169. package/lib/select-icon/select-icon.component.d.ts +1 -1
  170. package/lib/size-detection/directive/size-detector.directive.d.ts +1 -1
  171. package/lib/spinner/spinner.component.d.ts +1 -1
  172. package/lib/table/components/bulk-actions/bulk-actions.component.d.ts +5 -0
  173. package/lib/table/components/column-heading/column-heading.component.d.ts +14 -0
  174. package/lib/table/components/index.d.ts +3 -0
  175. package/lib/table/components/row-actions/row-actions.component.d.ts +21 -0
  176. package/lib/table/constants/index.d.ts +2 -0
  177. package/lib/table/constants/public-table.constants.d.ts +1 -0
  178. package/lib/table/constants/table.constants.d.ts +10 -0
  179. package/lib/table/containers/index.d.ts +1 -0
  180. package/lib/table/containers/table.component.d.ts +133 -0
  181. package/lib/table/directives/index.d.ts +2 -0
  182. package/lib/table/directives/table-inject-component.directive.d.ts +16 -0
  183. package/lib/table/directives/table.directive.d.ts +15 -0
  184. package/lib/table/enumerations/index.d.ts +1 -0
  185. package/lib/table/enumerations/table-column-type.d.ts +19 -0
  186. package/lib/table/helpers/index.d.ts +1 -0
  187. package/lib/table/helpers/table-theme.helper.d.ts +7 -0
  188. package/lib/table/index.d.ts +7 -2
  189. package/lib/table/interfaces/cell-renderer.interface.d.ts +6 -0
  190. package/lib/table/interfaces/custom-cell-renderer-components.type.d.ts +3 -0
  191. package/lib/table/interfaces/index.d.ts +10 -0
  192. package/lib/table/interfaces/sort-by-payload.interface.d.ts +5 -0
  193. package/lib/table/interfaces/table-cell-option.interface.d.ts +4 -0
  194. package/lib/table/interfaces/table-column-defs.type.d.ts +29 -0
  195. package/lib/table/interfaces/table-event-payload.interface.d.ts +6 -0
  196. package/lib/table/interfaces/table-row-action-payload.interface.d.ts +6 -0
  197. package/lib/table/interfaces/table-row-action.interface.d.ts +9 -0
  198. package/lib/table/interfaces/table-row-item.interface.d.ts +9 -0
  199. package/lib/table/table.module.d.ts +17 -3
  200. package/lib/text-highlight/text-highlight.component.d.ts +1 -1
  201. package/package.json +15 -20
  202. package/services/index.d.ts +1 -1
  203. package/services/interaction.service.d.ts +20 -10
  204. package/types/component-size.d.ts +2 -2
  205. package/types/component-theme.d.ts +1 -1
  206. package/utilities/boolean-props.d.ts +1 -1
  207. package/utilities/number-props.d.ts +1 -1
  208. package/esm2020/lib/backdrop/backdrop.component.mjs +0 -40
  209. package/esm2020/lib/badge/badge.component.mjs +0 -99
  210. package/esm2020/lib/data-card/data-card.component.mjs +0 -128
  211. package/esm2020/lib/data-card/data-card.module.mjs +0 -20
  212. package/esm2020/lib/dropdown/dropdown.component.mjs +0 -142
  213. package/esm2020/lib/form-field/controls/input/input.directive.mjs +0 -233
  214. package/esm2020/lib/form-field/controls/radio/radio-button/radio-button.component.mjs +0 -260
  215. package/esm2020/lib/form-field/controls/radio/radio-group/radio-group.directive.mjs +0 -289
  216. package/esm2020/lib/form-field/controls/select/option/select-option.component.mjs +0 -139
  217. package/esm2020/lib/form-field/controls/select/select-model.mjs +0 -150
  218. package/esm2020/lib/form-field/controls/select/select.component.mjs +0 -522
  219. package/esm2020/lib/form-field/controls/shared/toggle/toggle.component.mjs +0 -96
  220. package/esm2020/lib/form-field/directives/form-root.directive.mjs +0 -91
  221. package/esm2020/lib/form-field/shared/error-state.mixin.mjs +0 -24
  222. package/esm2020/lib/modal/modal.component.mjs +0 -187
  223. package/esm2020/lib/pagination/pagination.component.mjs +0 -145
  224. package/esm2020/lib/pagination/pagination.module.mjs +0 -37
  225. package/esm2020/lib/scrollable/scrollable.component.mjs +0 -186
  226. package/esm2020/lib/select-icon/select-icon.component.mjs +0 -308
  227. package/esm2020/lib/table/index.mjs +0 -3
  228. package/esm2020/lib/table/table.component.mjs +0 -33
  229. package/esm2020/lib/table/table.module.mjs +0 -19
  230. package/esm2020/services/interaction.service.mjs +0 -81
  231. package/fesm2015/impartner-design-components.mjs +0 -8595
  232. package/fesm2015/impartner-design-components.mjs.map +0 -1
  233. package/fesm2020/impartner-design-components.mjs.map +0 -1
  234. package/lib/table/table.component.d.ts +0 -15
  235. /package/{esm2020 → esm2022}/constants/index.mjs +0 -0
  236. /package/{esm2020 → esm2022}/impartner-design-components.mjs +0 -0
  237. /package/{esm2020 → esm2022}/lib/alert/index.mjs +0 -0
  238. /package/{esm2020 → esm2022}/lib/alert/theme/alert-theme.mjs +0 -0
  239. /package/{esm2020 → esm2022}/lib/alert/theme/index.mjs +0 -0
  240. /package/{esm2020 → esm2022}/lib/avatar/index.mjs +0 -0
  241. /package/{esm2020 → esm2022}/lib/avatar-group/index.mjs +0 -0
  242. /package/{esm2020 → esm2022}/lib/backdrop/index.mjs +0 -0
  243. /package/{esm2020 → esm2022}/lib/badge/index.mjs +0 -0
  244. /package/{esm2020 → esm2022}/lib/badge/types/badge-icon.mjs +0 -0
  245. /package/{esm2020 → esm2022}/lib/badge/types/index.mjs +0 -0
  246. /package/{esm2020 → esm2022}/lib/branding/index.mjs +0 -0
  247. /package/{esm2020 → esm2022}/lib/breadcrumb/index.mjs +0 -0
  248. /package/{esm2020 → esm2022}/lib/button/index.mjs +0 -0
  249. /package/{esm2020 → esm2022}/lib/button/themes/button-theme.mjs +0 -0
  250. /package/{esm2020 → esm2022}/lib/button/themes/index.mjs +0 -0
  251. /package/{esm2020 → esm2022}/lib/button-group/index.mjs +0 -0
  252. /package/{esm2020 → esm2022}/lib/card-heading/index.mjs +0 -0
  253. /package/{esm2020 → esm2022}/lib/data-card/index.mjs +0 -0
  254. /package/{esm2020 → esm2022}/lib/dropdown/components/index.mjs +0 -0
  255. /package/{esm2020 → esm2022}/lib/dropdown/index.mjs +0 -0
  256. /package/{esm2020 → esm2022}/lib/dropdown/types/dropdown-position.mjs +0 -0
  257. /package/{esm2020 → esm2022}/lib/dropdown/types/index.mjs +0 -0
  258. /package/{esm2020 → esm2022}/lib/file-upload/directives/index.mjs +0 -0
  259. /package/{esm2020 → esm2022}/lib/file-upload/index.mjs +0 -0
  260. /package/{esm2020 → esm2022}/lib/file-upload/pipes/index.mjs +0 -0
  261. /package/{esm2020 → esm2022}/lib/form-field/controls/checkbox/index.mjs +0 -0
  262. /package/{esm2020 → esm2022}/lib/form-field/controls/index.mjs +0 -0
  263. /package/{esm2020 → esm2022}/lib/form-field/controls/input/index.mjs +0 -0
  264. /package/{esm2020 → esm2022}/lib/form-field/controls/radio/index.mjs +0 -0
  265. /package/{esm2020 → esm2022}/lib/form-field/controls/radio/injection-tokens.mjs +0 -0
  266. /package/{esm2020 → esm2022}/lib/form-field/controls/radio/interfaces/index.mjs +0 -0
  267. /package/{esm2020 → esm2022}/lib/form-field/controls/radio/interfaces/radio-button.interface.mjs +0 -0
  268. /package/{esm2020 → esm2022}/lib/form-field/controls/radio/interfaces/radio-change-event.interface.mjs +0 -0
  269. /package/{esm2020 → esm2022}/lib/form-field/controls/radio/interfaces/radio-group.interface.mjs +0 -0
  270. /package/{esm2020 → esm2022}/lib/form-field/controls/select/index.mjs +0 -0
  271. /package/{esm2020 → esm2022}/lib/form-field/controls/select/option/index.mjs +0 -0
  272. /package/{esm2020 → esm2022}/lib/form-field/controls/select/option-parent.mjs +0 -0
  273. /package/{esm2020 → esm2022}/lib/form-field/controls/shared/index.mjs +0 -0
  274. /package/{esm2020 → esm2022}/lib/form-field/controls/shared/toggle/components/index.mjs +0 -0
  275. /package/{esm2020 → esm2022}/lib/form-field/controls/shared/toggle/index.mjs +0 -0
  276. /package/{esm2020 → esm2022}/lib/form-field/directives/index.mjs +0 -0
  277. /package/{esm2020 → esm2022}/lib/form-field/form-field-errors.mjs +0 -0
  278. /package/{esm2020 → esm2022}/lib/form-field/impdc-forms.mjs +0 -0
  279. /package/{esm2020 → esm2022}/lib/form-field/index.mjs +0 -0
  280. /package/{esm2020 → esm2022}/lib/form-field/services/index.mjs +0 -0
  281. /package/{esm2020 → esm2022}/lib/form-field/shared/constructors.type.mjs +0 -0
  282. /package/{esm2020 → esm2022}/lib/form-field/shared/index.mjs +0 -0
  283. /package/{esm2020 → esm2022}/lib/icon/index.mjs +0 -0
  284. /package/{esm2020 → esm2022}/lib/index.mjs +0 -0
  285. /package/{esm2020 → esm2022}/lib/modal/index.mjs +0 -0
  286. /package/{esm2020 → esm2022}/lib/modal/types/index.mjs +0 -0
  287. /package/{esm2020 → esm2022}/lib/pagination/index.mjs +0 -0
  288. /package/{esm2020 → esm2022}/lib/progress-bar/index.mjs +0 -0
  289. /package/{esm2020 → esm2022}/lib/scrollable/index.mjs +0 -0
  290. /package/{esm2020 → esm2022}/lib/select-icon/index.mjs +0 -0
  291. /package/{esm2020 → esm2022}/lib/size-detection/directive/element-size.interface.mjs +0 -0
  292. /package/{esm2020 → esm2022}/lib/size-detection/directive/index.mjs +0 -0
  293. /package/{esm2020 → esm2022}/lib/size-detection/index.mjs +0 -0
  294. /package/{esm2020 → esm2022}/lib/spinner/index.mjs +0 -0
  295. /package/{esm2020 → esm2022}/lib/text-highlight/index.mjs +0 -0
  296. /package/{esm2020 → esm2022}/public-api.mjs +0 -0
  297. /package/{esm2020 → esm2022}/types/component-size.mjs +0 -0
  298. /package/{esm2020 → esm2022}/types/index.mjs +0 -0
  299. /package/{esm2020 → esm2022}/utilities/boolean-props.mjs +0 -0
  300. /package/{esm2020 → esm2022}/utilities/dc.mjs +0 -0
  301. /package/{esm2020 → esm2022}/utilities/index.mjs +0 -0
  302. /package/{esm2020 → esm2022}/utilities/lc.mjs +0 -0
  303. /package/{esm2020 → esm2022}/utilities/number-props.mjs +0 -0
  304. /package/{esm2020 → esm2022}/utilities/sanitize.mjs +0 -0
@@ -1,96 +0,0 @@
1
- import { Component, Input, HostBinding, ElementRef, ContentChild } from '@angular/core';
2
- import { nanoid } from 'nanoid';
3
- import { ToggleInputComponent } from './components';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "@angular/common";
6
- export class ToggleComponent {
7
- constructor(changeDetectorRef) {
8
- this.changeDetectorRef = changeDetectorRef;
9
- this._id = `impdc-toggle-${nanoid()}`;
10
- this.isSwitch = false;
11
- this.label = '';
12
- this.description = '';
13
- this.inline = false;
14
- this.switchIcons = false;
15
- // we don't want this to be brandable yet
16
- // @Input()
17
- this.branded = false;
18
- this.classDefaults = 'impdc form-check';
19
- }
20
- get classHasDescription() {
21
- return this.showDescription;
22
- }
23
- get classFormSwitch() {
24
- return this.isCheckbox && this.isSwitch;
25
- }
26
- get classFormCheckInline() {
27
- return this.inline;
28
- }
29
- get classFormSwitchIcons() {
30
- return this.isCheckbox && this.isSwitch && this.switchIcons;
31
- }
32
- get classBranded() {
33
- return this.branded;
34
- }
35
- get id() {
36
- return this._id;
37
- }
38
- get isCheckbox() {
39
- if (!this.inputRef) {
40
- return false;
41
- }
42
- return this.inputRef.nativeElement.getAttribute('type') === 'checkbox';
43
- }
44
- get showDescription() {
45
- return !this.inline && !!this.label && !!this.description;
46
- }
47
- ngAfterViewChecked() {
48
- if (this.inputRef) {
49
- if (!this.inputRef.nativeElement.id) {
50
- this.inputRef.nativeElement.id = this._id;
51
- }
52
- else if (this._id !== this.inputRef.nativeElement.id) {
53
- this._id = this.inputRef.nativeElement.id;
54
- }
55
- }
56
- this.changeDetectorRef.detectChanges();
57
- }
58
- }
59
- ToggleComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: ToggleComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
60
- ToggleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: ToggleComponent, selector: "impdc-toggle", inputs: { isSwitch: "isSwitch", label: "label", description: "description", inline: "inline", switchIcons: "switchIcons" }, host: { properties: { "class": "this.classDefaults", "class.impdc-toggle-has-description": "this.classHasDescription", "class.form-switch": "this.classFormSwitch", "class.form-check-inline": "this.classFormCheckInline", "class.form-switch-icons": "this.classFormSwitchIcons", "class.branded": "this.classBranded" } }, queries: [{ propertyName: "inputRef", first: true, predicate: ToggleInputComponent, descendants: true, read: ElementRef }], ngImport: i0, template: "<div class=\"impdc-toggle-input\">\n <ng-content select=\"[impdc-toggle-input]\"></ng-content>\n</div>\n<div *ngIf=\"label\" class=\"impdc-toggle-info\">\n <label\n *ngIf=\"label\"\n class=\"form-check-label impdc-toggle-label\"\n [attr.for]=\"id\"\n >{{ label }}</label\n >\n <label\n *ngIf=\"showDescription\"\n class=\"impdc-toggle-description\"\n [attr.for]=\"id\"\n >{{ description }}</label\n >\n</div>\n", styles: [":host(.impdc.form-check) .impdc-toggle-input{display:flex}:host(.impdc.form-check) .impdc-toggle-info{display:flex;flex-direction:column}:host(.impdc.form-check) .impdc-toggle-label,:host(.impdc.form-check) .impdc-toggle-description{font-size:var(--impd-font-size-sm, 1.4rem);line-height:var(--impd-size-5, 2rem)}:host(.impdc.form-check) .impdc-toggle-description{color:var(--impd-color-gray-500, #6b7280)}:host(.impdc.form-check).impdc-toggle-has-description .impdc-toggle-input{margin-top:.2rem;align-self:flex-start}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
61
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: ToggleComponent, decorators: [{
62
- type: Component,
63
- args: [{ selector: 'impdc-toggle', template: "<div class=\"impdc-toggle-input\">\n <ng-content select=\"[impdc-toggle-input]\"></ng-content>\n</div>\n<div *ngIf=\"label\" class=\"impdc-toggle-info\">\n <label\n *ngIf=\"label\"\n class=\"form-check-label impdc-toggle-label\"\n [attr.for]=\"id\"\n >{{ label }}</label\n >\n <label\n *ngIf=\"showDescription\"\n class=\"impdc-toggle-description\"\n [attr.for]=\"id\"\n >{{ description }}</label\n >\n</div>\n", styles: [":host(.impdc.form-check) .impdc-toggle-input{display:flex}:host(.impdc.form-check) .impdc-toggle-info{display:flex;flex-direction:column}:host(.impdc.form-check) .impdc-toggle-label,:host(.impdc.form-check) .impdc-toggle-description{font-size:var(--impd-font-size-sm, 1.4rem);line-height:var(--impd-size-5, 2rem)}:host(.impdc.form-check) .impdc-toggle-description{color:var(--impd-color-gray-500, #6b7280)}:host(.impdc.form-check).impdc-toggle-has-description .impdc-toggle-input{margin-top:.2rem;align-self:flex-start}\n"] }]
64
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { isSwitch: [{
65
- type: Input
66
- }], label: [{
67
- type: Input
68
- }], description: [{
69
- type: Input
70
- }], inline: [{
71
- type: Input
72
- }], switchIcons: [{
73
- type: Input
74
- }], classDefaults: [{
75
- type: HostBinding,
76
- args: ['class']
77
- }], classHasDescription: [{
78
- type: HostBinding,
79
- args: ['class.impdc-toggle-has-description']
80
- }], classFormSwitch: [{
81
- type: HostBinding,
82
- args: ['class.form-switch']
83
- }], classFormCheckInline: [{
84
- type: HostBinding,
85
- args: ['class.form-check-inline']
86
- }], classFormSwitchIcons: [{
87
- type: HostBinding,
88
- args: ['class.form-switch-icons']
89
- }], classBranded: [{
90
- type: HostBinding,
91
- args: ['class.branded']
92
- }], inputRef: [{
93
- type: ContentChild,
94
- args: [ToggleInputComponent, { read: ElementRef }]
95
- }] } });
96
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9nZ2xlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbi1jb21wb25lbnRzL3NyYy9saWIvZm9ybS1maWVsZC9jb250cm9scy9zaGFyZWQvdG9nZ2xlL3RvZ2dsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tY29tcG9uZW50cy9zcmMvbGliL2Zvcm0tZmllbGQvY29udHJvbHMvc2hhcmVkL3RvZ2dsZS90b2dnbGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBRUwsV0FBVyxFQUNYLFVBQVUsRUFHVixZQUFZLEVBQ2IsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUNoQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxjQUFjLENBQUM7OztBQU9wRCxNQUFNLE9BQU8sZUFBZTtJQWdFMUIsWUFBb0IsaUJBQW9DO1FBQXBDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUEvRGhELFFBQUcsR0FBRyxnQkFBZ0IsTUFBTSxFQUFFLEVBQUUsQ0FBQztRQUd6QyxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBR2pCLFVBQUssR0FBRyxFQUFFLENBQUM7UUFHWCxnQkFBVyxHQUFHLEVBQUUsQ0FBQztRQUdqQixXQUFNLEdBQUcsS0FBSyxDQUFDO1FBR2YsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFFcEIseUNBQXlDO1FBQ3pDLFdBQVc7UUFDWCxZQUFPLEdBQUcsS0FBSyxDQUFDO1FBRWMsa0JBQWEsR0FBRyxrQkFBa0IsQ0FBQztJQTBDTixDQUFDO0lBeEM1RCxJQUNZLG1CQUFtQjtRQUM3QixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUM7SUFDOUIsQ0FBQztJQUVELElBQThDLGVBQWU7UUFDM0QsT0FBTyxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDMUMsQ0FBQztJQUVELElBQW9ELG9CQUFvQjtRQUN0RSxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDckIsQ0FBQztJQUVELElBQW9ELG9CQUFvQjtRQUN0RSxPQUFPLElBQUksQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzlELENBQUM7SUFFRCxJQUEwQyxZQUFZO1FBQ3BELE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDO0lBS0QsSUFBSSxFQUFFO1FBQ0osT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDO0lBQ2xCLENBQUM7SUFFRCxJQUFJLFVBQVU7UUFDWixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNsQixPQUFPLEtBQUssQ0FBQztTQUNkO1FBRUQsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEtBQUssVUFBVSxDQUFDO0lBQ3pFLENBQUM7SUFFRCxJQUFJLGVBQWU7UUFDakIsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDNUQsQ0FBQztJQUlELGtCQUFrQjtRQUNoQixJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDakIsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLEVBQUUsRUFBRTtnQkFDbkMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUM7YUFDM0M7aUJBQU0sSUFBSSxJQUFJLENBQUMsR0FBRyxLQUFLLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLEVBQUUsRUFBRTtnQkFDdEQsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUM7YUFDM0M7U0FDRjtRQUVELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN6QyxDQUFDOzs2R0E1RVUsZUFBZTtpR0FBZixlQUFlLG9oQkE2Q1osb0JBQW9CLDJCQUFVLFVBQVUsNkJDL0R4RCx5YkFpQkE7NEZEQ2EsZUFBZTtrQkFMM0IsU0FBUzsrQkFDRSxjQUFjO3dHQVF4QixRQUFRO3NCQURQLEtBQUs7Z0JBSU4sS0FBSztzQkFESixLQUFLO2dCQUlOLFdBQVc7c0JBRFYsS0FBSztnQkFJTixNQUFNO3NCQURMLEtBQUs7Z0JBSU4sV0FBVztzQkFEVixLQUFLO2dCQU93QixhQUFhO3NCQUExQyxXQUFXO3VCQUFDLE9BQU87Z0JBR1IsbUJBQW1CO3NCQUQ5QixXQUFXO3VCQUFDLG9DQUFvQztnQkFLSCxlQUFlO3NCQUE1RCxXQUFXO3VCQUFDLG1CQUFtQjtnQkFJb0Isb0JBQW9CO3NCQUF2RSxXQUFXO3VCQUFDLHlCQUF5QjtnQkFJYyxvQkFBb0I7c0JBQXZFLFdBQVc7dUJBQUMseUJBQXlCO2dCQUlJLFlBQVk7c0JBQXJELFdBQVc7dUJBQUMsZUFBZTtnQkFLNUIsUUFBUTtzQkFEUCxZQUFZO3VCQUFDLG9CQUFvQixFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBIb3N0QmluZGluZyxcbiAgRWxlbWVudFJlZixcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIEFmdGVyVmlld0NoZWNrZWQsXG4gIENvbnRlbnRDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IG5hbm9pZCB9IGZyb20gJ25hbm9pZCc7XG5pbXBvcnQgeyBUb2dnbGVJbnB1dENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2ltcGRjLXRvZ2dsZScsXG4gIHRlbXBsYXRlVXJsOiAnLi90b2dnbGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi90b2dnbGUuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBUb2dnbGVDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdDaGVja2VkIHtcbiAgcHJpdmF0ZSBfaWQgPSBgaW1wZGMtdG9nZ2xlLSR7bmFub2lkKCl9YDtcblxuICBASW5wdXQoKVxuICBpc1N3aXRjaCA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIGxhYmVsID0gJyc7XG5cbiAgQElucHV0KClcbiAgZGVzY3JpcHRpb24gPSAnJztcblxuICBASW5wdXQoKVxuICBpbmxpbmUgPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBzd2l0Y2hJY29ucyA9IGZhbHNlO1xuXG4gIC8vIHdlIGRvbid0IHdhbnQgdGhpcyB0byBiZSBicmFuZGFibGUgeWV0XG4gIC8vIEBJbnB1dCgpXG4gIGJyYW5kZWQgPSBmYWxzZTtcblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzJykgcHJpdmF0ZSBjbGFzc0RlZmF1bHRzID0gJ2ltcGRjIGZvcm0tY2hlY2snO1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3MuaW1wZGMtdG9nZ2xlLWhhcy1kZXNjcmlwdGlvbicpXG4gIHByaXZhdGUgZ2V0IGNsYXNzSGFzRGVzY3JpcHRpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuc2hvd0Rlc2NyaXB0aW9uO1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5mb3JtLXN3aXRjaCcpIHByaXZhdGUgZ2V0IGNsYXNzRm9ybVN3aXRjaCgpIHtcbiAgICByZXR1cm4gdGhpcy5pc0NoZWNrYm94ICYmIHRoaXMuaXNTd2l0Y2g7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmZvcm0tY2hlY2staW5saW5lJykgcHJpdmF0ZSBnZXQgY2xhc3NGb3JtQ2hlY2tJbmxpbmUoKSB7XG4gICAgcmV0dXJuIHRoaXMuaW5saW5lO1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5mb3JtLXN3aXRjaC1pY29ucycpIHByaXZhdGUgZ2V0IGNsYXNzRm9ybVN3aXRjaEljb25zKCkge1xuICAgIHJldHVybiB0aGlzLmlzQ2hlY2tib3ggJiYgdGhpcy5pc1N3aXRjaCAmJiB0aGlzLnN3aXRjaEljb25zO1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5icmFuZGVkJykgcHJpdmF0ZSBnZXQgY2xhc3NCcmFuZGVkKCkge1xuICAgIHJldHVybiB0aGlzLmJyYW5kZWQ7XG4gIH1cblxuICBAQ29udGVudENoaWxkKFRvZ2dsZUlucHV0Q29tcG9uZW50LCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSlcbiAgaW5wdXRSZWY/OiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xuXG4gIGdldCBpZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9pZDtcbiAgfVxuXG4gIGdldCBpc0NoZWNrYm94KCk6IGJvb2xlYW4ge1xuICAgIGlmICghdGhpcy5pbnB1dFJlZikge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmlucHV0UmVmLm5hdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCd0eXBlJykgPT09ICdjaGVja2JveCc7XG4gIH1cblxuICBnZXQgc2hvd0Rlc2NyaXB0aW9uKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhdGhpcy5pbmxpbmUgJiYgISF0aGlzLmxhYmVsICYmICEhdGhpcy5kZXNjcmlwdGlvbjtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmKSB7fVxuXG4gIG5nQWZ0ZXJWaWV3Q2hlY2tlZCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pbnB1dFJlZikge1xuICAgICAgaWYgKCF0aGlzLmlucHV0UmVmLm5hdGl2ZUVsZW1lbnQuaWQpIHtcbiAgICAgICAgdGhpcy5pbnB1dFJlZi5uYXRpdmVFbGVtZW50LmlkID0gdGhpcy5faWQ7XG4gICAgICB9IGVsc2UgaWYgKHRoaXMuX2lkICE9PSB0aGlzLmlucHV0UmVmLm5hdGl2ZUVsZW1lbnQuaWQpIHtcbiAgICAgICAgdGhpcy5faWQgPSB0aGlzLmlucHV0UmVmLm5hdGl2ZUVsZW1lbnQuaWQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJpbXBkYy10b2dnbGUtaW5wdXRcIj5cbiAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2ltcGRjLXRvZ2dsZS1pbnB1dF1cIj48L25nLWNvbnRlbnQ+XG48L2Rpdj5cbjxkaXYgKm5nSWY9XCJsYWJlbFwiIGNsYXNzPVwiaW1wZGMtdG9nZ2xlLWluZm9cIj5cbiAgPGxhYmVsXG4gICAgKm5nSWY9XCJsYWJlbFwiXG4gICAgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsIGltcGRjLXRvZ2dsZS1sYWJlbFwiXG4gICAgW2F0dHIuZm9yXT1cImlkXCJcbiAgICA+e3sgbGFiZWwgfX08L2xhYmVsXG4gID5cbiAgPGxhYmVsXG4gICAgKm5nSWY9XCJzaG93RGVzY3JpcHRpb25cIlxuICAgIGNsYXNzPVwiaW1wZGMtdG9nZ2xlLWRlc2NyaXB0aW9uXCJcbiAgICBbYXR0ci5mb3JdPVwiaWRcIlxuICAgID57eyBkZXNjcmlwdGlvbiB9fTwvbGFiZWxcbiAgPlxuPC9kaXY+XG4iXX0=
@@ -1,91 +0,0 @@
1
- import { Directive, Host, Inject, InjectionToken, Optional, SkipSelf } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- import * as i1 from "@angular/forms";
4
- export const IMPDC_FORM_ROOT = new InjectionToken('ImpdcFormRoot');
5
- export class RootFormGroupDirective {
6
- constructor(_formGroupDirective, _parentRoot) {
7
- this._formGroupDirective = _formGroupDirective;
8
- this._parentRoot = _parentRoot;
9
- }
10
- get submitted() {
11
- return this._parentRoot
12
- ? this._parentRoot.submitted
13
- : this._formGroupDirective.submitted;
14
- }
15
- get form() {
16
- return this._parentRoot ? this._parentRoot.form : this._formGroupDirective;
17
- }
18
- }
19
- RootFormGroupDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: RootFormGroupDirective, deps: [{ token: i1.FormGroupDirective, host: true }, { token: IMPDC_FORM_ROOT, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.Directive });
20
- RootFormGroupDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.12", type: RootFormGroupDirective, selector: "[formGroup]", providers: [
21
- {
22
- provide: IMPDC_FORM_ROOT,
23
- useExisting: RootFormGroupDirective
24
- }
25
- ], ngImport: i0 });
26
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: RootFormGroupDirective, decorators: [{
27
- type: Directive,
28
- args: [{
29
- // eslint-disable-next-line @angular-eslint/directive-selector
30
- selector: '[formGroup]',
31
- providers: [
32
- {
33
- provide: IMPDC_FORM_ROOT,
34
- useExisting: RootFormGroupDirective
35
- }
36
- ]
37
- }]
38
- }], ctorParameters: function () { return [{ type: i1.FormGroupDirective, decorators: [{
39
- type: Host
40
- }] }, { type: undefined, decorators: [{
41
- type: Optional
42
- }, {
43
- type: SkipSelf
44
- }, {
45
- type: Inject,
46
- args: [IMPDC_FORM_ROOT]
47
- }] }]; } });
48
- export class RootNgFormDirective {
49
- constructor(_ngForm, _parentRoot) {
50
- this._ngForm = _ngForm;
51
- this._parentRoot = _parentRoot;
52
- }
53
- get submitted() {
54
- return this._parentRoot
55
- ? this._parentRoot.submitted
56
- : this._ngForm.submitted;
57
- }
58
- get form() {
59
- return this._parentRoot ? this._parentRoot.form : this._ngForm;
60
- }
61
- }
62
- RootNgFormDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: RootNgFormDirective, deps: [{ token: i1.NgForm, host: true }, { token: IMPDC_FORM_ROOT, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.Directive });
63
- RootNgFormDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.12", type: RootNgFormDirective, selector: "[ngForm]", providers: [
64
- {
65
- provide: IMPDC_FORM_ROOT,
66
- useExisting: RootNgFormDirective
67
- }
68
- ], ngImport: i0 });
69
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: RootNgFormDirective, decorators: [{
70
- type: Directive,
71
- args: [{
72
- // eslint-disable-next-line @angular-eslint/directive-selector
73
- selector: '[ngForm]',
74
- providers: [
75
- {
76
- provide: IMPDC_FORM_ROOT,
77
- useExisting: RootNgFormDirective
78
- }
79
- ]
80
- }]
81
- }], ctorParameters: function () { return [{ type: i1.NgForm, decorators: [{
82
- type: Host
83
- }] }, { type: undefined, decorators: [{
84
- type: Optional
85
- }, {
86
- type: SkipSelf
87
- }, {
88
- type: Inject,
89
- args: [IMPDC_FORM_ROOT]
90
- }] }]; } });
91
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1yb290LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbi1jb21wb25lbnRzL3NyYy9saWIvZm9ybS1maWVsZC9kaXJlY3RpdmVzL2Zvcm0tcm9vdC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxJQUFJLEVBQ0osTUFBTSxFQUNOLGNBQWMsRUFDZCxRQUFRLEVBQ1IsUUFBUSxFQUNULE1BQU0sZUFBZSxDQUFDOzs7QUFHdkIsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLElBQUksY0FBYyxDQUMvQyxlQUFlLENBQ2hCLENBQUM7QUFpQkYsTUFBTSxPQUFPLHNCQUFzQjtJQUNqQyxZQUNrQixtQkFBdUMsRUFJL0MsV0FBMkI7UUFKbkIsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFvQjtRQUkvQyxnQkFBVyxHQUFYLFdBQVcsQ0FBZ0I7SUFDbEMsQ0FBQztJQUVKLElBQVcsU0FBUztRQUNsQixPQUFPLElBQUksQ0FBQyxXQUFXO1lBQ3JCLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVM7WUFDNUIsQ0FBQyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxTQUFTLENBQUM7SUFDekMsQ0FBQztJQUVELElBQVcsSUFBSTtRQUNiLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQztJQUM3RSxDQUFDOztvSEFqQlUsc0JBQXNCLGdFQUt2QixlQUFlO3dHQUxkLHNCQUFzQixzQ0FQdEI7UUFDVDtZQUNFLE9BQU8sRUFBRSxlQUFlO1lBQ3hCLFdBQVcsRUFBRSxzQkFBc0I7U0FDcEM7S0FDRjs0RkFFVSxzQkFBc0I7a0JBVmxDLFNBQVM7bUJBQUM7b0JBQ1QsOERBQThEO29CQUM5RCxRQUFRLEVBQUUsYUFBYTtvQkFDdkIsU0FBUyxFQUFFO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxlQUFlOzRCQUN4QixXQUFXLHdCQUF3Qjt5QkFDcEM7cUJBQ0Y7aUJBQ0Y7OzBCQUdJLElBQUk7OzBCQUNKLFFBQVE7OzBCQUNSLFFBQVE7OzBCQUNSLE1BQU07MkJBQUMsZUFBZTs7QUF5QjNCLE1BQU0sT0FBTyxtQkFBbUI7SUFDOUIsWUFDa0IsT0FBZSxFQUl2QixXQUEyQjtRQUpuQixZQUFPLEdBQVAsT0FBTyxDQUFRO1FBSXZCLGdCQUFXLEdBQVgsV0FBVyxDQUFnQjtJQUNsQyxDQUFDO0lBRUosSUFBVyxTQUFTO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLFdBQVc7WUFDckIsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUztZQUM1QixDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUM7SUFDN0IsQ0FBQztJQUVELElBQVcsSUFBSTtRQUNiLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDakUsQ0FBQzs7aUhBakJVLG1CQUFtQixvREFLcEIsZUFBZTtxR0FMZCxtQkFBbUIsbUNBUG5CO1FBQ1Q7WUFDRSxPQUFPLEVBQUUsZUFBZTtZQUN4QixXQUFXLEVBQUUsbUJBQW1CO1NBQ2pDO0tBQ0Y7NEZBRVUsbUJBQW1CO2tCQVYvQixTQUFTO21CQUFDO29CQUNULDhEQUE4RDtvQkFDOUQsUUFBUSxFQUFFLFVBQVU7b0JBQ3BCLFNBQVMsRUFBRTt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsZUFBZTs0QkFDeEIsV0FBVyxxQkFBcUI7eUJBQ2pDO3FCQUNGO2lCQUNGOzswQkFHSSxJQUFJOzswQkFDSixRQUFROzswQkFDUixRQUFROzswQkFDUixNQUFNOzJCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBEaXJlY3RpdmUsXG4gIEhvc3QsXG4gIEluamVjdCxcbiAgSW5qZWN0aW9uVG9rZW4sXG4gIE9wdGlvbmFsLFxuICBTa2lwU2VsZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Hcm91cERpcmVjdGl2ZSwgTmdGb3JtIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5leHBvcnQgY29uc3QgSU1QRENfRk9STV9ST09UID0gbmV3IEluamVjdGlvblRva2VuPEltcGRjRm9ybVJvb3Q+KFxuICAnSW1wZGNGb3JtUm9vdCdcbik7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSW1wZGNGb3JtUm9vdCB7XG4gIGdldCBzdWJtaXR0ZWQoKTogYm9vbGVhbjtcbiAgZ2V0IGZvcm0oKTogRm9ybUdyb3VwRGlyZWN0aXZlIHwgTmdGb3JtO1xufVxuXG5ARGlyZWN0aXZlKHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9kaXJlY3RpdmUtc2VsZWN0b3JcbiAgc2VsZWN0b3I6ICdbZm9ybUdyb3VwXScsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IElNUERDX0ZPUk1fUk9PVCxcbiAgICAgIHVzZUV4aXN0aW5nOiBSb290Rm9ybUdyb3VwRGlyZWN0aXZlXG4gICAgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIFJvb3RGb3JtR3JvdXBEaXJlY3RpdmUgaW1wbGVtZW50cyBJbXBkY0Zvcm1Sb290IHtcbiAgY29uc3RydWN0b3IoXG4gICAgQEhvc3QoKSBwcml2YXRlIF9mb3JtR3JvdXBEaXJlY3RpdmU6IEZvcm1Hcm91cERpcmVjdGl2ZSxcbiAgICBAT3B0aW9uYWwoKVxuICAgIEBTa2lwU2VsZigpXG4gICAgQEluamVjdChJTVBEQ19GT1JNX1JPT1QpXG4gICAgcHJpdmF0ZSBfcGFyZW50Um9vdD86IEltcGRjRm9ybVJvb3RcbiAgKSB7fVxuXG4gIHB1YmxpYyBnZXQgc3VibWl0dGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9wYXJlbnRSb290XG4gICAgICA/IHRoaXMuX3BhcmVudFJvb3Quc3VibWl0dGVkXG4gICAgICA6IHRoaXMuX2Zvcm1Hcm91cERpcmVjdGl2ZS5zdWJtaXR0ZWQ7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGZvcm0oKTogRm9ybUdyb3VwRGlyZWN0aXZlIHwgTmdGb3JtIHtcbiAgICByZXR1cm4gdGhpcy5fcGFyZW50Um9vdCA/IHRoaXMuX3BhcmVudFJvb3QuZm9ybSA6IHRoaXMuX2Zvcm1Hcm91cERpcmVjdGl2ZTtcbiAgfVxufVxuXG5ARGlyZWN0aXZlKHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9kaXJlY3RpdmUtc2VsZWN0b3JcbiAgc2VsZWN0b3I6ICdbbmdGb3JtXScsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IElNUERDX0ZPUk1fUk9PVCxcbiAgICAgIHVzZUV4aXN0aW5nOiBSb290TmdGb3JtRGlyZWN0aXZlXG4gICAgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIFJvb3ROZ0Zvcm1EaXJlY3RpdmUgaW1wbGVtZW50cyBJbXBkY0Zvcm1Sb290IHtcbiAgY29uc3RydWN0b3IoXG4gICAgQEhvc3QoKSBwcml2YXRlIF9uZ0Zvcm06IE5nRm9ybSxcbiAgICBAT3B0aW9uYWwoKVxuICAgIEBTa2lwU2VsZigpXG4gICAgQEluamVjdChJTVBEQ19GT1JNX1JPT1QpXG4gICAgcHJpdmF0ZSBfcGFyZW50Um9vdD86IEltcGRjRm9ybVJvb3RcbiAgKSB7fVxuXG4gIHB1YmxpYyBnZXQgc3VibWl0dGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9wYXJlbnRSb290XG4gICAgICA/IHRoaXMuX3BhcmVudFJvb3Quc3VibWl0dGVkXG4gICAgICA6IHRoaXMuX25nRm9ybS5zdWJtaXR0ZWQ7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGZvcm0oKTogRm9ybUdyb3VwRGlyZWN0aXZlIHwgTmdGb3JtIHtcbiAgICByZXR1cm4gdGhpcy5fcGFyZW50Um9vdCA/IHRoaXMuX3BhcmVudFJvb3QuZm9ybSA6IHRoaXMuX25nRm9ybTtcbiAgfVxufVxuIl19
@@ -1,24 +0,0 @@
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3Itc3RhdGUubWl4aW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tY29tcG9uZW50cy9zcmMvbGliL2Zvcm0tZmllbGQvc2hhcmVkL2Vycm9yLXN0YXRlLm1peGluLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTJDQSxNQUFNLFVBQVUsZUFBZSxDQUM3QixJQUFPO0lBRVAsT0FBTyxLQUFNLFNBQVEsSUFBSTtRQXdCdkIsWUFBWSxHQUFHLElBQVc7WUFDeEIsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUM7WUF4QmpCLGtEQUFrRDtZQUNsRCxlQUFVLEdBQUcsS0FBSyxDQUFDO1FBd0JuQixDQUFDO1FBbkJELHlFQUF5RTtRQUN6RSxnQkFBZ0I7WUFDZCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO1lBQ2pDLE1BQU0sTUFBTSxHQUNWLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDO1lBQ3BFLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsSUFBSSxJQUFJLENBQUMseUJBQXlCLENBQUM7WUFDekUsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFNBQVM7Z0JBQzVCLENBQUMsQ0FBRSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQTJCO2dCQUM3QyxDQUFDLENBQUMsSUFBSSxDQUFDO1lBQ1QsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFFdkQsSUFBSSxRQUFRLEtBQUssUUFBUSxFQUFFO2dCQUN6QixJQUFJLENBQUMsVUFBVSxHQUFHLFFBQVEsQ0FBQztnQkFDM0IsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQzthQUMxQjtRQUNILENBQUM7S0FLRixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFic3RyYWN0Q29udHJvbCxcbiAgRm9ybUdyb3VwRGlyZWN0aXZlLFxuICBOZ0NvbnRyb2wsXG4gIE5nRm9ybVxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBJbXBkY0Zvcm1Sb290IH0gZnJvbSAnLi4vZGlyZWN0aXZlcyc7XG5pbXBvcnQgeyBFcnJvclN0YXRlTWF0Y2hlciB9IGZyb20gJy4uL3NlcnZpY2VzJztcbmltcG9ydCB7IEFic3RyYWN0Q29uc3RydWN0b3IsIENvbnN0cnVjdG9yIH0gZnJvbSAnLi9jb25zdHJ1Y3RvcnMudHlwZSc7XG5cbi8qKlxuICogQGRvY3MtcHJpdmF0ZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIElDYW5VcGRhdGVFcnJvclN0YXRlIHtcbiAgdXBkYXRlRXJyb3JTdGF0ZSgpOiB2b2lkO1xuICBlcnJvclN0YXRlOiBib29sZWFuO1xuICBlcnJvclN0YXRlTWF0Y2hlcjogRXJyb3JTdGF0ZU1hdGNoZXIgfCB1bmRlZmluZWQ7XG59XG5cbnR5cGUgQ2FuVXBkYXRlRXJyb3JTdGF0ZUN0b3IgPSBDb25zdHJ1Y3RvcjxJQ2FuVXBkYXRlRXJyb3JTdGF0ZT4gJlxuICBBYnN0cmFjdENvbnN0cnVjdG9yPElDYW5VcGRhdGVFcnJvclN0YXRlPjtcblxuLyoqXG4gKiBAZG9jcy1wcml2YXRlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUhhc0Vycm9yU3RhdGUge1xuICBfZm9ybVJvb3Q6IEltcGRjRm9ybVJvb3Q7XG4gIF9wYXJlbnRGb3JtR3JvdXA6IEZvcm1Hcm91cERpcmVjdGl2ZTtcbiAgX3BhcmVudEZvcm06IE5nRm9ybTtcbiAgX2RlZmF1bHRFcnJvclN0YXRlTWF0Y2hlcjogRXJyb3JTdGF0ZU1hdGNoZXI7XG5cbiAgbmdDb250cm9sOiBOZ0NvbnRyb2wgfCBudWxsO1xuICBzdGF0ZUNoYW5nZXM6IFN1YmplY3Q8dm9pZD47XG59XG5cbi8qKlxuICogTWl4aW4gdG8gYXVnbWVudCBhIGRpcmVjdGl2ZSB3aXRoIHVwZGF0ZUVycm9yU3RhdGUgbWV0aG9kLlxuICogSW50ZW5kZWQgZm9yIGNvbXBvbmVudHMgd2l0aCBgZXJyb3JTdGF0ZWAgYW5kIHRoZSBuZWVkIHRvIHVwZGF0ZSBgZXJyb3JTdGF0ZWAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtaXhpbkVycm9yU3RhdGU8VCBleHRlbmRzIEFic3RyYWN0Q29uc3RydWN0b3I8SUhhc0Vycm9yU3RhdGU+PihcbiAgYmFzZTogVFxuKTogQ2FuVXBkYXRlRXJyb3JTdGF0ZUN0b3IgJiBUO1xuZXhwb3J0IGZ1bmN0aW9uIG1peGluRXJyb3JTdGF0ZTxUIGV4dGVuZHMgQ29uc3RydWN0b3I8SUhhc0Vycm9yU3RhdGU+PihcbiAgYmFzZTogVFxuKTogQ2FuVXBkYXRlRXJyb3JTdGF0ZUN0b3IgJiBUIHtcbiAgcmV0dXJuIGNsYXNzIGV4dGVuZHMgYmFzZSB7XG4gICAgLyoqIFdoZXRoZXIgdGhlIGNvbXBvbmVudCBpcyBpbiBhbiBlcnJvciBzdGF0ZS4gKi9cbiAgICBlcnJvclN0YXRlID0gZmFsc2U7XG5cbiAgICAvKiogQW4gb2JqZWN0IHVzZWQgdG8gY29udHJvbCB0aGUgZXJyb3Igc3RhdGUgb2YgdGhlIGNvbXBvbmVudC4gKi9cbiAgICBlcnJvclN0YXRlTWF0Y2hlcjogRXJyb3JTdGF0ZU1hdGNoZXIgfCB1bmRlZmluZWQ7XG5cbiAgICAvKiogVXBkYXRlcyB0aGUgZXJyb3Igc3RhdGUgYmFzZWQgb24gdGhlIHByb3ZpZGVkIGVycm9yIHN0YXRlIG1hdGNoZXIuICovXG4gICAgdXBkYXRlRXJyb3JTdGF0ZSgpIHtcbiAgICAgIGNvbnN0IG9sZFN0YXRlID0gdGhpcy5lcnJvclN0YXRlO1xuICAgICAgY29uc3QgcGFyZW50ID1cbiAgICAgICAgdGhpcy5fZm9ybVJvb3Q/LmZvcm0gfHwgdGhpcy5fcGFyZW50Rm9ybUdyb3VwIHx8IHRoaXMuX3BhcmVudEZvcm07XG4gICAgICBjb25zdCBtYXRjaGVyID0gdGhpcy5lcnJvclN0YXRlTWF0Y2hlciB8fCB0aGlzLl9kZWZhdWx0RXJyb3JTdGF0ZU1hdGNoZXI7XG4gICAgICBjb25zdCBjb250cm9sID0gdGhpcy5uZ0NvbnRyb2xcbiAgICAgICAgPyAodGhpcy5uZ0NvbnRyb2wuY29udHJvbCBhcyBBYnN0cmFjdENvbnRyb2wpXG4gICAgICAgIDogbnVsbDtcbiAgICAgIGNvbnN0IG5ld1N0YXRlID0gbWF0Y2hlci5pc0Vycm9yU3RhdGUoY29udHJvbCwgcGFyZW50KTtcblxuICAgICAgaWYgKG5ld1N0YXRlICE9PSBvbGRTdGF0ZSkge1xuICAgICAgICB0aGlzLmVycm9yU3RhdGUgPSBuZXdTdGF0ZTtcbiAgICAgICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKC4uLmFyZ3M6IGFueVtdKSB7XG4gICAgICBzdXBlciguLi5hcmdzKTtcbiAgICB9XG4gIH07XG59XG4iXX0=
@@ -1,187 +0,0 @@
1
- import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
2
- import { ComponentSize } from '../../types';
3
- import { ModalTheme } from './types';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "../../services";
6
- import * as i2 from "@angular/common";
7
- import * as i3 from "../button/button.component";
8
- import * as i4 from "../icon/icon.component";
9
- /**
10
- * The `ModalComponent` (`<impdc-modal`) displays over the content of the page when a user action is required.
11
- * To use, import `ModalModule` or another module that imports and exports that module from `@impartner/design-components`.
12
- * `ModalModule` imports and exports BackdropModule, [ButtonModule](./?path=/docs/design-components-button),
13
- * and [IconModule](./?path=/docs/design-components-icon).
14
- */
15
- export class ModalComponent {
16
- constructor(_interactionService) {
17
- this._interactionService = _interactionService;
18
- this._interactableId = 0;
19
- this._show = false;
20
- /**
21
- * The theme of the Modal. Affects the layout of the Modal as well as some colors.
22
- */
23
- this.theme = ModalTheme.Simple;
24
- /**
25
- * The size of the Modal.
26
- */
27
- this.size = ComponentSize.Medium;
28
- /**
29
- * The Font Awesome 5 icon style. Fewer icons support the Regular theme and will fallback to Solid
30
- * if not supported.
31
- */
32
- this.iconTheme = 'light';
33
- /**
34
- * The subject text of the Modal.
35
- */
36
- this.titleText = '';
37
- /**
38
- * The fallback button text to accept the Modal. This is bypassed if you content-project the accept button.
39
- */
40
- this.acceptText = 'OK';
41
- /**
42
- * Determines if the Modal should fade in/out.
43
- */
44
- this.fade = true;
45
- /**
46
- * Shows a backdrop behind the Modal.
47
- */
48
- this.backdrop = true;
49
- /**
50
- * Event emitted when the Modal content is dismissed.
51
- */
52
- this.dismiss = new EventEmitter();
53
- /**
54
- * Event emitted when the Modal content is denied.
55
- */
56
- this.deny = new EventEmitter();
57
- /**
58
- * Event emitted when the Modal content is accepted.
59
- */
60
- this.accept = new EventEmitter();
61
- }
62
- /**
63
- * Determines if the Modal should be shown immediately.
64
- */
65
- set show(show) {
66
- if (show) {
67
- this.open();
68
- }
69
- else {
70
- this.close();
71
- }
72
- }
73
- get interactableId() {
74
- return this._interactableId;
75
- }
76
- get valid() {
77
- return this.interactableId > 0;
78
- }
79
- get shown() {
80
- return this.valid && this._show;
81
- }
82
- get showWorkingIcon() {
83
- return !!this.iconName && this.theme === ModalTheme.Working;
84
- }
85
- get showDestructiveIcon() {
86
- return !!this.iconName && this.theme === ModalTheme.Destructive;
87
- }
88
- get acceptFallbackTheme() {
89
- return this.theme === ModalTheme.Destructive ? 'danger' : 'primary';
90
- }
91
- get hideHeader() {
92
- return !this.titleText && !this.dismissable;
93
- }
94
- ngOnInit() {
95
- this._interactableId = this._interactionService.add(this);
96
- if (this.dismissable === undefined && this.theme === ModalTheme.Working) {
97
- this.dismissable = true;
98
- }
99
- if (this.iconName === undefined && this.theme === ModalTheme.Destructive) {
100
- this.iconName = 'exclamation-triangle';
101
- }
102
- }
103
- ngOnDestroy() {
104
- this._interactionService.remove(this.interactableId);
105
- this._interactableId = 0;
106
- }
107
- handleDismiss(event) {
108
- if (!this.dismissable ||
109
- !!this.dismissEl?.nativeElement?.firstChild?.disabled) {
110
- return;
111
- }
112
- this.close();
113
- this.dismiss.emit(event);
114
- }
115
- handleDeny(event) {
116
- if (!!this.denyEl?.nativeElement?.firstChild?.disabled) {
117
- return;
118
- }
119
- this.close();
120
- this.deny.emit(event);
121
- }
122
- handleAccept(event) {
123
- if (!!this.acceptEl?.nativeElement?.firstChild?.disabled) {
124
- return;
125
- }
126
- this.close();
127
- this.accept.emit(event);
128
- }
129
- /**
130
- * Opens/shows the modal. Can be used programmatically.
131
- */
132
- open() {
133
- if (this.backdrop) {
134
- this._interactionService.queueBackdrop(this.interactableId);
135
- }
136
- this._show = true;
137
- }
138
- /**
139
- * Closes/hides the modal. Can be used programmatically.
140
- */
141
- close() {
142
- this._show = false;
143
- this._interactionService.dequeueBackdrop(this.interactableId);
144
- }
145
- }
146
- ModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: ModalComponent, deps: [{ token: i1.InteractionService }], target: i0.ɵɵFactoryTarget.Component });
147
- ModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: ModalComponent, selector: "impdc-modal", inputs: { show: "show", theme: "theme", size: "size", iconName: "iconName", iconTheme: "iconTheme", titleText: "titleText", acceptText: "acceptText", dismissable: "dismissable", fade: "fade", backdrop: "backdrop" }, outputs: { dismiss: "dismiss", deny: "deny", accept: "accept" }, viewQueries: [{ propertyName: "dismissEl", first: true, predicate: ["dismissEl"], descendants: true }, { propertyName: "denyEl", first: true, predicate: ["denyEl"], descendants: true }, { propertyName: "acceptEl", first: true, predicate: ["acceptEl"], descendants: true }], ngImport: i0, template: "<div\n *ngIf=\"valid\"\n class=\"impdc modal\"\n [class.fade]=\"fade\"\n [class.in]=\"fade && shown\"\n [class.show]=\"shown\"\n [class.dismissable]=\"dismissable\"\n tabindex=\"-1\"\n (click)=\"handleDismiss($event); $event.stopPropagation()\"\n (keydown.escape)=\"handleDismiss($event); $event.stopPropagation()\"\n (keydown.enter)=\"handleAccept($event); $event.stopPropagation()\">\n <div\n class=\"modal-dialog modal-dialog-centered modal-dialog-scrollable modal-theme-{{\n theme\n }}\"\n [class.modal-sm]=\"size === 'sm'\"\n [class.modal-lg]=\"size === 'lg'\"\n [class.modal-xl]=\"size === 'xl'\"\n [class.modal-fullscreen]=\"size === 'fs'\"\n [class.modal-fullscreen-lg-down]=\"size !== 'fs'\"\n (click)=\"$event.stopPropagation()\">\n <div class=\"modal-content\">\n <div *ngIf=\"showDestructiveIcon\" class=\"modal-icon\">\n <span impdc-icon [name]=\"iconName\" [theme]=\"iconTheme\"></span>\n </div>\n <div #header class=\"modal-header\" [class.hide]=\"hideHeader\">\n <h3 class=\"modal-title\">\n <span *ngIf=\"showWorkingIcon\" class=\"modal-icon\">\n <span impdc-icon [name]=\"iconName\" [theme]=\"iconTheme\"></span>\n </span>\n <span>{{ titleText }}</span>\n </h3>\n <button\n impdcButton\n *ngIf=\"dismissable\"\n theme=\"close\"\n (click)=\"handleDismiss($event); $event.stopPropagation()\"></button>\n </div>\n <div #bodyEl class=\"modal-body\">\n <ng-content></ng-content>\n </div>\n <div #footer class=\"modal-footer\">\n <span\n #dismissEl\n *ngIf=\"dismissable\"\n [class.hide]=\"!dismissEl.children.length\"\n (click)=\"handleDismiss($event); $event.stopPropagation()\">\n <ng-content select=\"[dismiss]\"></ng-content>\n </span>\n <span\n #denyEl\n [class.hide]=\"!denyEl.children.length\"\n (click)=\"handleDeny($event); $event.stopPropagation()\">\n <ng-content select=\"[deny]\"></ng-content>\n </span>\n <span\n #acceptEl\n [class.hide]=\"!acceptEl.children.length\"\n (click)=\"handleAccept($event); $event.stopPropagation()\">\n <ng-content select=\"[accept]\"></ng-content>\n </span>\n <span\n #acceptFallbackEl\n *ngIf=\"!acceptEl.children.length\"\n (click)=\"handleAccept($event); $event.stopPropagation()\">\n <button\n impdcButton\n [text]=\"acceptText\"\n [theme]=\"acceptFallbackTheme\"></button>\n </span>\n </div>\n </div>\n </div>\n</div>\n", styles: [".impdc.modal{-webkit-user-select:none;user-select:none}.impdc.modal .modal-icon{display:inline-flex;justify-content:center;align-items:center;height:40px;width:40px;color:var(--impd-color-gray-500);background:var(--impd-color-gray-100);border-radius:50%;flex-shrink:0}.impdc.modal .modal-icon .fa,.impdc.modal .modal-icon .fa-brands,.impdc.modal .modal-icon .fa-duotone,.impdc.modal .modal-icon .fa-light,.impdc.modal .modal-icon .fa-regular,.impdc.modal .modal-icon .fa-solid,.impdc.modal .modal-icon .fa-thin,.impdc.modal .modal-icon .fab,.impdc.modal .modal-icon .fad,.impdc.modal .modal-icon .fal,.impdc.modal .modal-icon .far,.impdc.modal .modal-icon .fas,.impdc.modal .modal-icon .fat{line-height:var(--impartner-hex-modal-title-line-height)}.impdc.modal.fade.in{background-color:transparent}.impdc.modal.show{display:block;opacity:1}.impdc.modal:not(.show),.impdc.modal.hide,.impdc.modal .hide{display:none}.impdc.modal.dismissable{cursor:pointer}.impdc.modal.dismissable .modal-dialog{cursor:default}.impdc.modal .modal-dialog{cursor:default;-webkit-user-select:auto;user-select:auto}.impdc.modal .modal-theme-simple .modal-header,.impdc.modal .modal-theme-destructive .modal-header{border:0;padding-bottom:0}.impdc.modal .modal-theme-simple .modal-body,.impdc.modal .modal-theme-destructive .modal-body{padding:calc(var(--impartner-hex-modal-padding) * .5) var(--impartner-hex-modal-padding) var(--impartner-hex-modal-padding)}.impdc.modal .modal-theme-simple .modal-footer,.impdc.modal .modal-theme-destructive .modal-footer{border:0;padding-top:0}.impdc.modal .modal-theme-working .modal-footer{padding:calc(var(--impartner-hex-modal-padding) * .5 - var(--impartner-hex-modal-footer-gap) * .5) calc(var(--impartner-hex-modal-padding) - var(--impartner-hex-modal-footer-gap) * .5)}.impdc.modal .modal-theme-destructive .modal-content{display:grid;grid-template-areas:\"modal-icon modal-header\" \"modal-icon modal-body\" \"modal-footer modal-footer\";grid-template-columns:auto 1fr;grid-template-rows:auto 1fr auto}.impdc.modal .modal-theme-destructive .modal-content>.modal-icon{grid-area:modal-icon;margin:var(--impartner-hex-modal-header-padding);margin-right:0;margin-bottom:0}.impdc.modal .modal-theme-destructive .modal-content>.modal-header{grid-area:modal-header;padding-left:16px;margin-top:8px;justify-content:unset}.impdc.modal .modal-theme-destructive .modal-content>.modal-body{grid-area:modal-body;padding-left:16px}.impdc.modal .modal-theme-destructive .modal-content>.modal-footer{grid-area:modal-footer}.impdc.modal .modal-theme-destructive .modal-icon{color:var(--impd-color-red-600);background:var(--impd-color-red-100)}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.ButtonComponent, selector: "button[impdcButton]", inputs: ["type", "theme", "text", "disabled", "titleText", "ariaLabel"] }, { kind: "component", type: i4.IconComponent, selector: "impdc-icon, [impdc-icon]", inputs: ["name", "theme", "size"] }] });
148
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: ModalComponent, decorators: [{
149
- type: Component,
150
- args: [{ selector: 'impdc-modal', template: "<div\n *ngIf=\"valid\"\n class=\"impdc modal\"\n [class.fade]=\"fade\"\n [class.in]=\"fade && shown\"\n [class.show]=\"shown\"\n [class.dismissable]=\"dismissable\"\n tabindex=\"-1\"\n (click)=\"handleDismiss($event); $event.stopPropagation()\"\n (keydown.escape)=\"handleDismiss($event); $event.stopPropagation()\"\n (keydown.enter)=\"handleAccept($event); $event.stopPropagation()\">\n <div\n class=\"modal-dialog modal-dialog-centered modal-dialog-scrollable modal-theme-{{\n theme\n }}\"\n [class.modal-sm]=\"size === 'sm'\"\n [class.modal-lg]=\"size === 'lg'\"\n [class.modal-xl]=\"size === 'xl'\"\n [class.modal-fullscreen]=\"size === 'fs'\"\n [class.modal-fullscreen-lg-down]=\"size !== 'fs'\"\n (click)=\"$event.stopPropagation()\">\n <div class=\"modal-content\">\n <div *ngIf=\"showDestructiveIcon\" class=\"modal-icon\">\n <span impdc-icon [name]=\"iconName\" [theme]=\"iconTheme\"></span>\n </div>\n <div #header class=\"modal-header\" [class.hide]=\"hideHeader\">\n <h3 class=\"modal-title\">\n <span *ngIf=\"showWorkingIcon\" class=\"modal-icon\">\n <span impdc-icon [name]=\"iconName\" [theme]=\"iconTheme\"></span>\n </span>\n <span>{{ titleText }}</span>\n </h3>\n <button\n impdcButton\n *ngIf=\"dismissable\"\n theme=\"close\"\n (click)=\"handleDismiss($event); $event.stopPropagation()\"></button>\n </div>\n <div #bodyEl class=\"modal-body\">\n <ng-content></ng-content>\n </div>\n <div #footer class=\"modal-footer\">\n <span\n #dismissEl\n *ngIf=\"dismissable\"\n [class.hide]=\"!dismissEl.children.length\"\n (click)=\"handleDismiss($event); $event.stopPropagation()\">\n <ng-content select=\"[dismiss]\"></ng-content>\n </span>\n <span\n #denyEl\n [class.hide]=\"!denyEl.children.length\"\n (click)=\"handleDeny($event); $event.stopPropagation()\">\n <ng-content select=\"[deny]\"></ng-content>\n </span>\n <span\n #acceptEl\n [class.hide]=\"!acceptEl.children.length\"\n (click)=\"handleAccept($event); $event.stopPropagation()\">\n <ng-content select=\"[accept]\"></ng-content>\n </span>\n <span\n #acceptFallbackEl\n *ngIf=\"!acceptEl.children.length\"\n (click)=\"handleAccept($event); $event.stopPropagation()\">\n <button\n impdcButton\n [text]=\"acceptText\"\n [theme]=\"acceptFallbackTheme\"></button>\n </span>\n </div>\n </div>\n </div>\n</div>\n", styles: [".impdc.modal{-webkit-user-select:none;user-select:none}.impdc.modal .modal-icon{display:inline-flex;justify-content:center;align-items:center;height:40px;width:40px;color:var(--impd-color-gray-500);background:var(--impd-color-gray-100);border-radius:50%;flex-shrink:0}.impdc.modal .modal-icon .fa,.impdc.modal .modal-icon .fa-brands,.impdc.modal .modal-icon .fa-duotone,.impdc.modal .modal-icon .fa-light,.impdc.modal .modal-icon .fa-regular,.impdc.modal .modal-icon .fa-solid,.impdc.modal .modal-icon .fa-thin,.impdc.modal .modal-icon .fab,.impdc.modal .modal-icon .fad,.impdc.modal .modal-icon .fal,.impdc.modal .modal-icon .far,.impdc.modal .modal-icon .fas,.impdc.modal .modal-icon .fat{line-height:var(--impartner-hex-modal-title-line-height)}.impdc.modal.fade.in{background-color:transparent}.impdc.modal.show{display:block;opacity:1}.impdc.modal:not(.show),.impdc.modal.hide,.impdc.modal .hide{display:none}.impdc.modal.dismissable{cursor:pointer}.impdc.modal.dismissable .modal-dialog{cursor:default}.impdc.modal .modal-dialog{cursor:default;-webkit-user-select:auto;user-select:auto}.impdc.modal .modal-theme-simple .modal-header,.impdc.modal .modal-theme-destructive .modal-header{border:0;padding-bottom:0}.impdc.modal .modal-theme-simple .modal-body,.impdc.modal .modal-theme-destructive .modal-body{padding:calc(var(--impartner-hex-modal-padding) * .5) var(--impartner-hex-modal-padding) var(--impartner-hex-modal-padding)}.impdc.modal .modal-theme-simple .modal-footer,.impdc.modal .modal-theme-destructive .modal-footer{border:0;padding-top:0}.impdc.modal .modal-theme-working .modal-footer{padding:calc(var(--impartner-hex-modal-padding) * .5 - var(--impartner-hex-modal-footer-gap) * .5) calc(var(--impartner-hex-modal-padding) - var(--impartner-hex-modal-footer-gap) * .5)}.impdc.modal .modal-theme-destructive .modal-content{display:grid;grid-template-areas:\"modal-icon modal-header\" \"modal-icon modal-body\" \"modal-footer modal-footer\";grid-template-columns:auto 1fr;grid-template-rows:auto 1fr auto}.impdc.modal .modal-theme-destructive .modal-content>.modal-icon{grid-area:modal-icon;margin:var(--impartner-hex-modal-header-padding);margin-right:0;margin-bottom:0}.impdc.modal .modal-theme-destructive .modal-content>.modal-header{grid-area:modal-header;padding-left:16px;margin-top:8px;justify-content:unset}.impdc.modal .modal-theme-destructive .modal-content>.modal-body{grid-area:modal-body;padding-left:16px}.impdc.modal .modal-theme-destructive .modal-content>.modal-footer{grid-area:modal-footer}.impdc.modal .modal-theme-destructive .modal-icon{color:var(--impd-color-red-600);background:var(--impd-color-red-100)}\n"] }]
151
- }], ctorParameters: function () { return [{ type: i1.InteractionService }]; }, propDecorators: { show: [{
152
- type: Input
153
- }], theme: [{
154
- type: Input
155
- }], size: [{
156
- type: Input
157
- }], iconName: [{
158
- type: Input
159
- }], iconTheme: [{
160
- type: Input
161
- }], titleText: [{
162
- type: Input
163
- }], acceptText: [{
164
- type: Input
165
- }], dismissable: [{
166
- type: Input
167
- }], fade: [{
168
- type: Input
169
- }], backdrop: [{
170
- type: Input
171
- }], dismissEl: [{
172
- type: ViewChild,
173
- args: ['dismissEl', { static: false }]
174
- }], denyEl: [{
175
- type: ViewChild,
176
- args: ['denyEl', { static: false }]
177
- }], acceptEl: [{
178
- type: ViewChild,
179
- args: ['acceptEl', { static: false }]
180
- }], dismiss: [{
181
- type: Output
182
- }], deny: [{
183
- type: Output
184
- }], accept: [{
185
- type: Output
186
- }] } });
187
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzaWduLWNvbXBvbmVudHMvc3JjL2xpYi9tb2RhbC9tb2RhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tY29tcG9uZW50cy9zcmMvbGliL21vZGFsL21vZGFsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBQ04sU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBR3ZCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFNUMsT0FBTyxFQUF1QixVQUFVLEVBQWUsTUFBTSxTQUFTLENBQUM7Ozs7OztBQUV2RTs7Ozs7R0FLRztBQU1ILE1BQU0sT0FBTyxjQUFjO0lBMkd6QixZQUFvQixtQkFBdUM7UUFBdkMsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFvQjtRQTFHbkQsb0JBQWUsR0FBRyxDQUFDLENBQUM7UUFDcEIsVUFBSyxHQUFHLEtBQUssQ0FBQztRQWN0Qjs7V0FFRztRQUVILFVBQUssR0FBZ0IsVUFBVSxDQUFDLE1BQU0sQ0FBQztRQUV2Qzs7V0FFRztRQUVILFNBQUksR0FBd0IsYUFBYSxDQUFDLE1BQU0sQ0FBQztRQVFqRDs7O1dBR0c7UUFFSCxjQUFTLEdBQXlCLE9BQU8sQ0FBQztRQUUxQzs7V0FFRztRQUVILGNBQVMsR0FBRyxFQUFFLENBQUM7UUFFZjs7V0FFRztRQUVILGVBQVUsR0FBRyxJQUFJLENBQUM7UUFRbEI7O1dBRUc7UUFFSCxTQUFJLEdBQUcsSUFBSSxDQUFDO1FBRVo7O1dBRUc7UUFFSCxhQUFRLEdBQUcsSUFBSSxDQUFDO1FBb0JoQjs7V0FFRztRQUVILFlBQU8sR0FBRyxJQUFJLFlBQVksRUFBc0IsQ0FBQztRQUVqRDs7V0FFRztRQUVILFNBQUksR0FBRyxJQUFJLFlBQVksRUFBc0IsQ0FBQztRQUU5Qzs7V0FFRztRQUVILFdBQU0sR0FBRyxJQUFJLFlBQVksRUFBc0IsQ0FBQztJQUVjLENBQUM7SUF2Ry9EOztPQUVHO0lBQ0gsSUFDSSxJQUFJLENBQUMsSUFBYTtRQUNwQixJQUFJLElBQUksRUFBRTtZQUNSLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUNiO2FBQU07WUFDTCxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7U0FDZDtJQUNILENBQUM7SUErRkQsSUFBSSxjQUFjO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQztJQUM5QixDQUFDO0lBRUQsSUFBSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsY0FBYyxHQUFHLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQsSUFBSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDbEMsQ0FBQztJQUVELElBQUksZUFBZTtRQUNqQixPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxLQUFLLEtBQUssVUFBVSxDQUFDLE9BQU8sQ0FBQztJQUM5RCxDQUFDO0lBRUQsSUFBSSxtQkFBbUI7UUFDckIsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsS0FBSyxLQUFLLFVBQVUsQ0FBQyxXQUFXLENBQUM7SUFDbEUsQ0FBQztJQUVELElBQUksbUJBQW1CO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLEtBQUssS0FBSyxVQUFVLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUN0RSxDQUFDO0lBRUQsSUFBSSxVQUFVO1FBQ1osT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzlDLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRTFELElBQUksSUFBSSxDQUFDLFdBQVcsS0FBSyxTQUFTLElBQUksSUFBSSxDQUFDLEtBQUssS0FBSyxVQUFVLENBQUMsT0FBTyxFQUFFO1lBQ3ZFLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1NBQ3pCO1FBRUQsSUFBSSxJQUFJLENBQUMsUUFBUSxLQUFLLFNBQVMsSUFBSSxJQUFJLENBQUMsS0FBSyxLQUFLLFVBQVUsQ0FBQyxXQUFXLEVBQUU7WUFDeEUsSUFBSSxDQUFDLFFBQVEsR0FBRyxzQkFBc0IsQ0FBQztTQUN4QztJQUNILENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDckQsSUFBSSxDQUFDLGVBQWUsR0FBRyxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUVTLGFBQWEsQ0FBQyxLQUF5QjtRQUMvQyxJQUNFLENBQUMsSUFBSSxDQUFDLFdBQVc7WUFDakIsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsYUFBYSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQ3JEO1lBQ0EsT0FBTztTQUNSO1FBQ0QsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUVTLFVBQVUsQ0FBQyxLQUF5QjtRQUM1QyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFO1lBQ3RELE9BQU87U0FDUjtRQUNELElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNiLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFFUyxZQUFZLENBQUMsS0FBeUI7UUFDOUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxhQUFhLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRTtZQUN4RCxPQUFPO1NBQ1I7UUFDRCxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDYixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFJO1FBQ0YsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2pCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1NBQzdEO1FBQ0QsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7SUFDcEIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsS0FBSztRQUNILElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ2hFLENBQUM7OzRHQXJNVSxjQUFjO2dHQUFkLGNBQWMsOGxCQzNCM0IsaXFGQTBFQTs0RkQvQ2EsY0FBYztrQkFMMUIsU0FBUzsrQkFDRSxhQUFhO3lHQVluQixJQUFJO3NCQURQLEtBQUs7Z0JBYU4sS0FBSztzQkFESixLQUFLO2dCQU9OLElBQUk7c0JBREgsS0FBSztnQkFPTixRQUFRO3NCQURQLEtBQUs7Z0JBUU4sU0FBUztzQkFEUixLQUFLO2dCQU9OLFNBQVM7c0JBRFIsS0FBSztnQkFPTixVQUFVO3NCQURULEtBQUs7Z0JBT04sV0FBVztzQkFEVixLQUFLO2dCQU9OLElBQUk7c0JBREgsS0FBSztnQkFPTixRQUFRO3NCQURQLEtBQUs7Z0JBT04sU0FBUztzQkFEUixTQUFTO3VCQUFDLFdBQVcsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBT3pDLE1BQU07c0JBREwsU0FBUzt1QkFBQyxRQUFRLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQU90QyxRQUFRO3NCQURQLFNBQVM7dUJBQUMsVUFBVSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFPeEMsT0FBTztzQkFETixNQUFNO2dCQU9QLElBQUk7c0JBREgsTUFBTTtnQkFPUCxNQUFNO3NCQURMLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvbnRBd2Vzb21lSWNvbiwgRm9udEF3ZXNvbWVJY29uVGhlbWUgfSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgSW50ZXJhY3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMnO1xuaW1wb3J0IHsgQ29tcG9uZW50U2l6ZSB9IGZyb20gJy4uLy4uL3R5cGVzJztcbmltcG9ydCB7IEJ1dHRvblRoZW1lIH0gZnJvbSAnLi4vYnV0dG9uJztcbmltcG9ydCB7IE1vZGFsQ29tcG9uZW50U2l6ZXMsIE1vZGFsVGhlbWUsIE1vZGFsVGhlbWVzIH0gZnJvbSAnLi90eXBlcyc7XG5cbi8qKlxuICogVGhlIGBNb2RhbENvbXBvbmVudGAgKGA8aW1wZGMtbW9kYWxgKSBkaXNwbGF5cyBvdmVyIHRoZSBjb250ZW50IG9mIHRoZSBwYWdlIHdoZW4gYSB1c2VyIGFjdGlvbiBpcyByZXF1aXJlZC5cbiAqIFRvIHVzZSwgaW1wb3J0IGBNb2RhbE1vZHVsZWAgb3IgYW5vdGhlciBtb2R1bGUgdGhhdCBpbXBvcnRzIGFuZCBleHBvcnRzIHRoYXQgbW9kdWxlIGZyb20gYEBpbXBhcnRuZXIvZGVzaWduLWNvbXBvbmVudHNgLlxuICogYE1vZGFsTW9kdWxlYCBpbXBvcnRzIGFuZCBleHBvcnRzIEJhY2tkcm9wTW9kdWxlLCBbQnV0dG9uTW9kdWxlXSguLz9wYXRoPS9kb2NzL2Rlc2lnbi1jb21wb25lbnRzLWJ1dHRvbiksXG4gKiBhbmQgW0ljb25Nb2R1bGVdKC4vP3BhdGg9L2RvY3MvZGVzaWduLWNvbXBvbmVudHMtaWNvbikuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2ltcGRjLW1vZGFsJyxcbiAgdGVtcGxhdGVVcmw6ICcuL21vZGFsLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbW9kYWwuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBNb2RhbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSBfaW50ZXJhY3RhYmxlSWQgPSAwO1xuICBwcml2YXRlIF9zaG93ID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIERldGVybWluZXMgaWYgdGhlIE1vZGFsIHNob3VsZCBiZSBzaG93biBpbW1lZGlhdGVseS5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHNldCBzaG93KHNob3c6IGJvb2xlYW4pIHtcbiAgICBpZiAoc2hvdykge1xuICAgICAgdGhpcy5vcGVuKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVGhlIHRoZW1lIG9mIHRoZSBNb2RhbC4gQWZmZWN0cyB0aGUgbGF5b3V0IG9mIHRoZSBNb2RhbCBhcyB3ZWxsIGFzIHNvbWUgY29sb3JzLlxuICAgKi9cbiAgQElucHV0KClcbiAgdGhlbWU6IE1vZGFsVGhlbWVzID0gTW9kYWxUaGVtZS5TaW1wbGU7XG5cbiAgLyoqXG4gICAqIFRoZSBzaXplIG9mIHRoZSBNb2RhbC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHNpemU6IE1vZGFsQ29tcG9uZW50U2l6ZXMgPSBDb21wb25lbnRTaXplLk1lZGl1bTtcblxuICAvKipcbiAgICogVGhlIEZvbnQgQXdlc29tZSA1IGljb24gbmFtZS4gT25seSBzdXBwb3J0ZWQgd2hlbiB0aGUgdGhlbWUgaXMgV29ya2luZyBvciBEZXN0cnVjdGl2ZS5cbiAgICovXG4gIEBJbnB1dCgpXG4gIGljb25OYW1lPzogRm9udEF3ZXNvbWVJY29uO1xuXG4gIC8qKlxuICAgKiBUaGUgRm9udCBBd2Vzb21lIDUgaWNvbiBzdHlsZS4gRmV3ZXIgaWNvbnMgc3VwcG9ydCB0aGUgUmVndWxhciB0aGVtZSBhbmQgd2lsbCBmYWxsYmFjayB0byBTb2xpZFxuICAgKiBpZiBub3Qgc3VwcG9ydGVkLlxuICAgKi9cbiAgQElucHV0KClcbiAgaWNvblRoZW1lOiBGb250QXdlc29tZUljb25UaGVtZSA9ICdsaWdodCc7XG5cbiAgLyoqXG4gICAqIFRoZSBzdWJqZWN0IHRleHQgb2YgdGhlIE1vZGFsLlxuICAgKi9cbiAgQElucHV0KClcbiAgdGl0bGVUZXh0ID0gJyc7XG5cbiAgLyoqXG4gICAqIFRoZSBmYWxsYmFjayBidXR0b24gdGV4dCB0byBhY2NlcHQgdGhlIE1vZGFsLiBUaGlzIGlzIGJ5cGFzc2VkIGlmIHlvdSBjb250ZW50LXByb2plY3QgdGhlIGFjY2VwdCBidXR0b24uXG4gICAqL1xuICBASW5wdXQoKVxuICBhY2NlcHRUZXh0ID0gJ09LJztcblxuICAvKipcbiAgICogQWxsb3dzIHRoZSBNb2RhbCB0byBiZSBkaXNtaXNzZWQuIFRoaXMgaXMgZGlmZmVyZW50IGZyb20gYGFjY2VwdGAgYW5kIGBkZW55YC4gSWYgYSBNb2RhbCBpcyBtZWFudCB0byBiZSByZS1vcGVuZWQgZnJlcXVlbnRseSBpdCBzaG91bGQgYmUgZGlzbWlzc2FibGUuXG4gICAqL1xuICBASW5wdXQoKVxuICBkaXNtaXNzYWJsZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIERldGVybWluZXMgaWYgdGhlIE1vZGFsIHNob3VsZCBmYWRlIGluL291dC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIGZhZGUgPSB0cnVlO1xuXG4gIC8qKlxuICAgKiBTaG93cyBhIGJhY2tkcm9wIGJlaGluZCB0aGUgTW9kYWwuXG4gICAqL1xuICBASW5wdXQoKVxuICBiYWNrZHJvcCA9IHRydWU7XG5cbiAgLyoqXG4gICAqIENvbnRhaW5zIHRoZSBkaXNtaXNzIGJ1dHRvbiBjb250ZW50IHByb2plY3Rpb24uXG4gICAqL1xuICBAVmlld0NoaWxkKCdkaXNtaXNzRWwnLCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgZGlzbWlzc0VsITogRWxlbWVudFJlZjtcblxuICAvKipcbiAgICogQ29udGFpbnMgdGhlIGRlbnkgYnV0dG9uIGNvbnRlbnQgcHJvamVjdGlvbi5cbiAgICovXG4gIEBWaWV3Q2hpbGQoJ2RlbnlFbCcsIHsgc3RhdGljOiBmYWxzZSB9KVxuICBkZW55RWwhOiBFbGVtZW50UmVmO1xuXG4gIC8qKlxuICAgKiBDb250YWlucyB0aGUgYWNjZXB0IGJ1dHRvbiBjb250ZW50IHByb2plY3Rpb24uXG4gICAqL1xuICBAVmlld0NoaWxkKCdhY2NlcHRFbCcsIHsgc3RhdGljOiBmYWxzZSB9KVxuICBhY2NlcHRFbCE6IEVsZW1lbnRSZWY7XG5cbiAgLyoqXG4gICAqIEV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgTW9kYWwgY29udGVudCBpcyBkaXNtaXNzZWQuXG4gICAqL1xuICBAT3V0cHV0KClcbiAgZGlzbWlzcyA9IG5ldyBFdmVudEVtaXR0ZXI8TW91c2VFdmVudCB8IEV2ZW50PigpO1xuXG4gIC8qKlxuICAgKiBFdmVudCBlbWl0dGVkIHdoZW4gdGhlIE1vZGFsIGNvbnRlbnQgaXMgZGVuaWVkLlxuICAgKi9cbiAgQE91dHB1dCgpXG4gIGRlbnkgPSBuZXcgRXZlbnRFbWl0dGVyPE1vdXNlRXZlbnQgfCBFdmVudD4oKTtcblxuICAvKipcbiAgICogRXZlbnQgZW1pdHRlZCB3aGVuIHRoZSBNb2RhbCBjb250ZW50IGlzIGFjY2VwdGVkLlxuICAgKi9cbiAgQE91dHB1dCgpXG4gIGFjY2VwdCA9IG5ldyBFdmVudEVtaXR0ZXI8TW91c2VFdmVudCB8IEV2ZW50PigpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX2ludGVyYWN0aW9uU2VydmljZTogSW50ZXJhY3Rpb25TZXJ2aWNlKSB7fVxuXG4gIGdldCBpbnRlcmFjdGFibGVJZCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9pbnRlcmFjdGFibGVJZDtcbiAgfVxuXG4gIGdldCB2YWxpZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5pbnRlcmFjdGFibGVJZCA+IDA7XG4gIH1cblxuICBnZXQgc2hvd24oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMudmFsaWQgJiYgdGhpcy5fc2hvdztcbiAgfVxuXG4gIGdldCBzaG93V29ya2luZ0ljb24oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5pY29uTmFtZSAmJiB0aGlzLnRoZW1lID09PSBNb2RhbFRoZW1lLldvcmtpbmc7XG4gIH1cblxuICBnZXQgc2hvd0Rlc3RydWN0aXZlSWNvbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLmljb25OYW1lICYmIHRoaXMudGhlbWUgPT09IE1vZGFsVGhlbWUuRGVzdHJ1Y3RpdmU7XG4gIH1cblxuICBnZXQgYWNjZXB0RmFsbGJhY2tUaGVtZSgpOiBCdXR0b25UaGVtZSB7XG4gICAgcmV0dXJuIHRoaXMudGhlbWUgPT09IE1vZGFsVGhlbWUuRGVzdHJ1Y3RpdmUgPyAnZGFuZ2VyJyA6ICdwcmltYXJ5JztcbiAgfVxuXG4gIGdldCBoaWRlSGVhZGVyKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhdGhpcy50aXRsZVRleHQgJiYgIXRoaXMuZGlzbWlzc2FibGU7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLl9pbnRlcmFjdGFibGVJZCA9IHRoaXMuX2ludGVyYWN0aW9uU2VydmljZS5hZGQodGhpcyk7XG5cbiAgICBpZiAodGhpcy5kaXNtaXNzYWJsZSA9PT0gdW5kZWZpbmVkICYmIHRoaXMudGhlbWUgPT09IE1vZGFsVGhlbWUuV29ya2luZykge1xuICAgICAgdGhpcy5kaXNtaXNzYWJsZSA9IHRydWU7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaWNvbk5hbWUgPT09IHVuZGVmaW5lZCAmJiB0aGlzLnRoZW1lID09PSBNb2RhbFRoZW1lLkRlc3RydWN0aXZlKSB7XG4gICAgICB0aGlzLmljb25OYW1lID0gJ2V4Y2xhbWF0aW9uLXRyaWFuZ2xlJztcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9pbnRlcmFjdGlvblNlcnZpY2UucmVtb3ZlKHRoaXMuaW50ZXJhY3RhYmxlSWQpO1xuICAgIHRoaXMuX2ludGVyYWN0YWJsZUlkID0gMDtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVEaXNtaXNzKGV2ZW50OiBNb3VzZUV2ZW50IHwgRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoXG4gICAgICAhdGhpcy5kaXNtaXNzYWJsZSB8fFxuICAgICAgISF0aGlzLmRpc21pc3NFbD8ubmF0aXZlRWxlbWVudD8uZmlyc3RDaGlsZD8uZGlzYWJsZWRcbiAgICApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5jbG9zZSgpO1xuICAgIHRoaXMuZGlzbWlzcy5lbWl0KGV2ZW50KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVEZW55KGV2ZW50OiBNb3VzZUV2ZW50IHwgRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoISF0aGlzLmRlbnlFbD8ubmF0aXZlRWxlbWVudD8uZmlyc3RDaGlsZD8uZGlzYWJsZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5jbG9zZSgpO1xuICAgIHRoaXMuZGVueS5lbWl0KGV2ZW50KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVBY2NlcHQoZXZlbnQ6IE1vdXNlRXZlbnQgfCBFdmVudCk6IHZvaWQge1xuICAgIGlmICghIXRoaXMuYWNjZXB0RWw/Lm5hdGl2ZUVsZW1lbnQ/LmZpcnN0Q2hpbGQ/LmRpc2FibGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuY2xvc2UoKTtcbiAgICB0aGlzLmFjY2VwdC5lbWl0KGV2ZW50KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBPcGVucy9zaG93cyB0aGUgbW9kYWwuIENhbiBiZSB1c2VkIHByb2dyYW1tYXRpY2FsbHkuXG4gICAqL1xuICBvcGVuKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmJhY2tkcm9wKSB7XG4gICAgICB0aGlzLl9pbnRlcmFjdGlvblNlcnZpY2UucXVldWVCYWNrZHJvcCh0aGlzLmludGVyYWN0YWJsZUlkKTtcbiAgICB9XG4gICAgdGhpcy5fc2hvdyA9IHRydWU7XG4gIH1cblxuICAvKipcbiAgICogQ2xvc2VzL2hpZGVzIHRoZSBtb2RhbC4gQ2FuIGJlIHVzZWQgcHJvZ3JhbW1hdGljYWxseS5cbiAgICovXG4gIGNsb3NlKCk6IHZvaWQge1xuICAgIHRoaXMuX3Nob3cgPSBmYWxzZTtcbiAgICB0aGlzLl9pbnRlcmFjdGlvblNlcnZpY2UuZGVxdWV1ZUJhY2tkcm9wKHRoaXMuaW50ZXJhY3RhYmxlSWQpO1xuICB9XG59XG4iLCI8ZGl2XG4gICpuZ0lmPVwidmFsaWRcIlxuICBjbGFzcz1cImltcGRjIG1vZGFsXCJcbiAgW2NsYXNzLmZhZGVdPVwiZmFkZVwiXG4gIFtjbGFzcy5pbl09XCJmYWRlICYmIHNob3duXCJcbiAgW2NsYXNzLnNob3ddPVwic2hvd25cIlxuICBbY2xhc3MuZGlzbWlzc2FibGVdPVwiZGlzbWlzc2FibGVcIlxuICB0YWJpbmRleD1cIi0xXCJcbiAgKGNsaWNrKT1cImhhbmRsZURpc21pc3MoJGV2ZW50KTsgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgKGtleWRvd24uZXNjYXBlKT1cImhhbmRsZURpc21pc3MoJGV2ZW50KTsgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgKGtleWRvd24uZW50ZXIpPVwiaGFuZGxlQWNjZXB0KCRldmVudCk7ICRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiPlxuICA8ZGl2XG4gICAgY2xhc3M9XCJtb2RhbC1kaWFsb2cgbW9kYWwtZGlhbG9nLWNlbnRlcmVkIG1vZGFsLWRpYWxvZy1zY3JvbGxhYmxlIG1vZGFsLXRoZW1lLXt7XG4gICAgICB0aGVtZVxuICAgIH19XCJcbiAgICBbY2xhc3MubW9kYWwtc21dPVwic2l6ZSA9PT0gJ3NtJ1wiXG4gICAgW2NsYXNzLm1vZGFsLWxnXT1cInNpemUgPT09ICdsZydcIlxuICAgIFtjbGFzcy5tb2RhbC14bF09XCJzaXplID09PSAneGwnXCJcbiAgICBbY2xhc3MubW9kYWwtZnVsbHNjcmVlbl09XCJzaXplID09PSAnZnMnXCJcbiAgICBbY2xhc3MubW9kYWwtZnVsbHNjcmVlbi1sZy1kb3duXT1cInNpemUgIT09ICdmcydcIlxuICAgIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIj5cbiAgICA8ZGl2IGNsYXNzPVwibW9kYWwtY29udGVudFwiPlxuICAgICAgPGRpdiAqbmdJZj1cInNob3dEZXN0cnVjdGl2ZUljb25cIiBjbGFzcz1cIm1vZGFsLWljb25cIj5cbiAgICAgICAgPHNwYW4gaW1wZGMtaWNvbiBbbmFtZV09XCJpY29uTmFtZVwiIFt0aGVtZV09XCJpY29uVGhlbWVcIj48L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgI2hlYWRlciBjbGFzcz1cIm1vZGFsLWhlYWRlclwiIFtjbGFzcy5oaWRlXT1cImhpZGVIZWFkZXJcIj5cbiAgICAgICAgPGgzIGNsYXNzPVwibW9kYWwtdGl0bGVcIj5cbiAgICAgICAgICA8c3BhbiAqbmdJZj1cInNob3dXb3JraW5nSWNvblwiIGNsYXNzPVwibW9kYWwtaWNvblwiPlxuICAgICAgICAgICAgPHNwYW4gaW1wZGMtaWNvbiBbbmFtZV09XCJpY29uTmFtZVwiIFt0aGVtZV09XCJpY29uVGhlbWVcIj48L3NwYW4+XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDxzcGFuPnt7IHRpdGxlVGV4dCB9fTwvc3Bhbj5cbiAgICAgICAgPC9oMz5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIGltcGRjQnV0dG9uXG4gICAgICAgICAgKm5nSWY9XCJkaXNtaXNzYWJsZVwiXG4gICAgICAgICAgdGhlbWU9XCJjbG9zZVwiXG4gICAgICAgICAgKGNsaWNrKT1cImhhbmRsZURpc21pc3MoJGV2ZW50KTsgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCI+PC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgI2JvZHlFbCBjbGFzcz1cIm1vZGFsLWJvZHlcIj5cbiAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2ICNmb290ZXIgY2xhc3M9XCJtb2RhbC1mb290ZXJcIj5cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICAjZGlzbWlzc0VsXG4gICAgICAgICAgKm5nSWY9XCJkaXNtaXNzYWJsZVwiXG4gICAgICAgICAgW2NsYXNzLmhpZGVdPVwiIWRpc21pc3NFbC5jaGlsZHJlbi5sZW5ndGhcIlxuICAgICAgICAgIChjbGljayk9XCJoYW5kbGVEaXNtaXNzKCRldmVudCk7ICRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiPlxuICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltkaXNtaXNzXVwiPjwvbmctY29udGVudD5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgICA8c3BhblxuICAgICAgICAgICNkZW55RWxcbiAgICAgICAgICBbY2xhc3MuaGlkZV09XCIhZGVueUVsLmNoaWxkcmVuLmxlbmd0aFwiXG4gICAgICAgICAgKGNsaWNrKT1cImhhbmRsZURlbnkoJGV2ZW50KTsgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCI+XG4gICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2RlbnldXCI+PC9uZy1jb250ZW50PlxuICAgICAgICA8L3NwYW4+XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgI2FjY2VwdEVsXG4gICAgICAgICAgW2NsYXNzLmhpZGVdPVwiIWFjY2VwdEVsLmNoaWxkcmVuLmxlbmd0aFwiXG4gICAgICAgICAgKGNsaWNrKT1cImhhbmRsZUFjY2VwdCgkZXZlbnQpOyAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIj5cbiAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbYWNjZXB0XVwiPjwvbmctY29udGVudD5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgICA8c3BhblxuICAgICAgICAgICNhY2NlcHRGYWxsYmFja0VsXG4gICAgICAgICAgKm5nSWY9XCIhYWNjZXB0RWwuY2hpbGRyZW4ubGVuZ3RoXCJcbiAgICAgICAgICAoY2xpY2spPVwiaGFuZGxlQWNjZXB0KCRldmVudCk7ICRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiPlxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIGltcGRjQnV0dG9uXG4gICAgICAgICAgICBbdGV4dF09XCJhY2NlcHRUZXh0XCJcbiAgICAgICAgICAgIFt0aGVtZV09XCJhY2NlcHRGYWxsYmFja1RoZW1lXCI+PC9idXR0b24+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19