@impartner/design-components 1.2.0 → 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 (291) 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/{esm2020 → esm2022}/lib/pagination/pagination.module.mjs +16 -16
  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/{esm2020 → esm2022}/lib/table/components/bulk-actions/bulk-actions.component.mjs +4 -4
  83. package/{esm2020 → esm2022}/lib/table/components/column-heading/column-heading.component.mjs +4 -4
  84. package/{esm2020 → esm2022}/lib/table/components/index.mjs +2 -1
  85. package/esm2022/lib/table/components/row-actions/row-actions.component.mjs +61 -0
  86. package/esm2022/lib/table/containers/table.component.mjs +403 -0
  87. package/esm2022/lib/table/directives/table-inject-component.directive.mjs +46 -0
  88. package/{esm2020 → esm2022}/lib/table/directives/table.directive.mjs +4 -4
  89. package/{esm2020 → esm2022}/lib/table/enumerations/table-column-type.mjs +2 -1
  90. package/{esm2020 → esm2022}/lib/table/helpers/table-theme.helper.mjs +3 -3
  91. package/esm2022/lib/table/interfaces/index.mjs +11 -0
  92. package/esm2022/lib/table/interfaces/table-column-defs.type.mjs +2 -0
  93. package/esm2022/lib/table/interfaces/table-row-action-payload.interface.mjs +2 -0
  94. package/esm2022/lib/table/interfaces/table-row-action.interface.mjs +2 -0
  95. package/esm2022/lib/table/table.module.mjs +96 -0
  96. package/{esm2020 → esm2022}/lib/text-highlight/text-highlight.component.mjs +6 -6
  97. package/{esm2020 → esm2022}/lib/text-highlight/text-highlight.module.mjs +6 -6
  98. package/{esm2020 → esm2022}/services/index.mjs +1 -1
  99. package/esm2022/services/interaction.service.mjs +88 -0
  100. package/{esm2020 → esm2022}/types/component-theme.mjs +1 -1
  101. package/{fesm2020 → fesm2022}/impartner-design-components.mjs +1197 -1032
  102. package/fesm2022/impartner-design-components.mjs.map +1 -0
  103. package/lib/alert/alert.component.d.ts +1 -1
  104. package/lib/alert/theme/alert-theme.d.ts +1 -1
  105. package/lib/avatar/avatar.component.d.ts +1 -1
  106. package/lib/avatar-group/avatar-group.component.d.ts +1 -1
  107. package/lib/backdrop/backdrop.component.d.ts +9 -6
  108. package/lib/badge/badge.component.d.ts +3 -2
  109. package/lib/badge/types/badge-icon.d.ts +1 -1
  110. package/lib/badge/types/badge-size.d.ts +1 -1
  111. package/lib/branding/branded.directive.d.ts +1 -1
  112. package/lib/breadcrumb/breadcrumb-item.component.d.ts +1 -1
  113. package/lib/breadcrumb/breadcrumb.component.d.ts +1 -1
  114. package/lib/button/button.component.d.ts +1 -1
  115. package/lib/button/themes/button-theme.d.ts +1 -1
  116. package/lib/button-group/button-group.component.d.ts +1 -1
  117. package/lib/card-heading/card-heading.component.d.ts +1 -1
  118. package/lib/data-card/data-card.component.d.ts +14 -18
  119. package/lib/data-card/data-card.module.d.ts +2 -1
  120. package/lib/dropdown/components/dropdown-item/dropdown-item.component.d.ts +1 -1
  121. package/lib/dropdown/dropdown.component.d.ts +6 -5
  122. package/lib/dropdown/types/dropdown-position.d.ts +1 -1
  123. package/lib/file-upload/directives/file-drop.directive.d.ts +1 -1
  124. package/lib/file-upload/file-upload.component.d.ts +1 -1
  125. package/lib/form-field/controls/checkbox/checkbox.component.d.ts +1 -1
  126. package/lib/form-field/controls/input/input.directive.d.ts +1 -1
  127. package/lib/form-field/controls/radio/radio-button/radio-button.component.d.ts +1 -1
  128. package/lib/form-field/controls/radio/radio-group/radio-group.directive.d.ts +1 -1
  129. package/lib/form-field/controls/select/option/select-option.component.d.ts +4 -4
  130. package/lib/form-field/controls/select/select.component.d.ts +1 -1
  131. package/lib/form-field/controls/shared/toggle/components/toggle-input/toggle-input.component.d.ts +1 -1
  132. package/lib/form-field/controls/shared/toggle/toggle.component.d.ts +1 -1
  133. package/lib/form-field/directives/corner-hint.directive.d.ts +1 -1
  134. package/lib/form-field/directives/error.directive.d.ts +1 -1
  135. package/lib/form-field/directives/form-root.directive.d.ts +2 -2
  136. package/lib/form-field/directives/hint.directive.d.ts +1 -1
  137. package/lib/form-field/directives/label.directive.d.ts +1 -1
  138. package/lib/form-field/directives/prefix.directive.d.ts +1 -1
  139. package/lib/form-field/directives/suffix.directive.d.ts +1 -1
  140. package/lib/form-field/form-field.component.d.ts +1 -1
  141. package/lib/form-field/services/unique-selection-dispatcher.service.d.ts +1 -1
  142. package/lib/form-field/shared/constructors.type.d.ts +2 -2
  143. package/lib/form-field/shared/disabled.mixin.d.ts +1 -1
  144. package/lib/form-field/shared/error-state.mixin.d.ts +1 -1
  145. package/lib/form-field/shared/form-field-control.d.ts +1 -1
  146. package/lib/form-field/shared/tab-index.mixin.d.ts +1 -1
  147. package/lib/icon/icon.component.d.ts +1 -1
  148. package/lib/modal/modal.component.d.ts +17 -10
  149. package/lib/modal/types/modal-component-sizes.d.ts +1 -1
  150. package/lib/modal/types/modal-theme.d.ts +1 -1
  151. package/lib/pagination/pagination.component.d.ts +1 -1
  152. package/lib/progress-bar/progress-bar.component.d.ts +1 -1
  153. package/lib/scrollable/scrollable.component.d.ts +1 -1
  154. package/lib/select-icon/select-icon.component.d.ts +1 -1
  155. package/lib/size-detection/directive/size-detector.directive.d.ts +1 -1
  156. package/lib/spinner/spinner.component.d.ts +1 -1
  157. package/lib/table/components/bulk-actions/bulk-actions.component.d.ts +1 -1
  158. package/lib/table/components/column-heading/column-heading.component.d.ts +1 -1
  159. package/lib/table/components/index.d.ts +1 -0
  160. package/lib/table/components/row-actions/row-actions.component.d.ts +21 -0
  161. package/lib/table/containers/table.component.d.ts +12 -6
  162. package/lib/table/directives/table-inject-component.directive.d.ts +3 -3
  163. package/lib/table/directives/table.directive.d.ts +1 -1
  164. package/lib/table/enumerations/table-column-type.d.ts +2 -1
  165. package/lib/table/helpers/table-theme.helper.d.ts +4 -4
  166. package/lib/table/interfaces/custom-cell-renderer-components.type.d.ts +1 -1
  167. package/lib/table/interfaces/index.d.ts +3 -1
  168. package/lib/table/interfaces/{table-column-def.interface.d.ts → table-column-defs.type.d.ts} +8 -1
  169. package/lib/table/interfaces/table-row-action-payload.interface.d.ts +6 -0
  170. package/lib/table/interfaces/table-row-action.interface.d.ts +9 -0
  171. package/lib/table/interfaces/table-row-item.interface.d.ts +3 -3
  172. package/lib/table/table.module.d.ts +12 -10
  173. package/lib/text-highlight/text-highlight.component.d.ts +1 -1
  174. package/package.json +16 -22
  175. package/services/index.d.ts +1 -1
  176. package/services/interaction.service.d.ts +20 -10
  177. package/types/component-size.d.ts +2 -2
  178. package/types/component-theme.d.ts +1 -1
  179. package/utilities/boolean-props.d.ts +1 -1
  180. package/utilities/number-props.d.ts +1 -1
  181. package/esm2020/lib/backdrop/backdrop.component.mjs +0 -40
  182. package/esm2020/lib/badge/badge.component.mjs +0 -99
  183. package/esm2020/lib/data-card/data-card.component.mjs +0 -128
  184. package/esm2020/lib/data-card/data-card.module.mjs +0 -20
  185. package/esm2020/lib/dropdown/dropdown.component.mjs +0 -142
  186. package/esm2020/lib/form-field/controls/input/input.directive.mjs +0 -233
  187. package/esm2020/lib/form-field/controls/radio/radio-button/radio-button.component.mjs +0 -260
  188. package/esm2020/lib/form-field/controls/radio/radio-group/radio-group.directive.mjs +0 -289
  189. package/esm2020/lib/form-field/controls/select/option/select-option.component.mjs +0 -139
  190. package/esm2020/lib/form-field/controls/select/select-model.mjs +0 -150
  191. package/esm2020/lib/form-field/controls/select/select.component.mjs +0 -522
  192. package/esm2020/lib/form-field/controls/shared/toggle/toggle.component.mjs +0 -96
  193. package/esm2020/lib/form-field/directives/form-root.directive.mjs +0 -91
  194. package/esm2020/lib/form-field/shared/error-state.mixin.mjs +0 -24
  195. package/esm2020/lib/modal/modal.component.mjs +0 -187
  196. package/esm2020/lib/pagination/pagination.component.mjs +0 -176
  197. package/esm2020/lib/scrollable/scrollable.component.mjs +0 -186
  198. package/esm2020/lib/select-icon/select-icon.component.mjs +0 -308
  199. package/esm2020/lib/table/containers/table.component.mjs +0 -386
  200. package/esm2020/lib/table/directives/table-inject-component.directive.mjs +0 -46
  201. package/esm2020/lib/table/interfaces/index.mjs +0 -9
  202. package/esm2020/lib/table/interfaces/table-column-def.interface.mjs +0 -2
  203. package/esm2020/lib/table/table.module.mjs +0 -88
  204. package/esm2020/services/interaction.service.mjs +0 -81
  205. package/fesm2015/impartner-design-components.mjs +0 -9214
  206. package/fesm2015/impartner-design-components.mjs.map +0 -1
  207. package/fesm2020/impartner-design-components.mjs.map +0 -1
  208. /package/{esm2020 → esm2022}/constants/index.mjs +0 -0
  209. /package/{esm2020 → esm2022}/impartner-design-components.mjs +0 -0
  210. /package/{esm2020 → esm2022}/lib/alert/index.mjs +0 -0
  211. /package/{esm2020 → esm2022}/lib/alert/theme/alert-theme.mjs +0 -0
  212. /package/{esm2020 → esm2022}/lib/alert/theme/index.mjs +0 -0
  213. /package/{esm2020 → esm2022}/lib/avatar/index.mjs +0 -0
  214. /package/{esm2020 → esm2022}/lib/avatar-group/index.mjs +0 -0
  215. /package/{esm2020 → esm2022}/lib/backdrop/index.mjs +0 -0
  216. /package/{esm2020 → esm2022}/lib/badge/index.mjs +0 -0
  217. /package/{esm2020 → esm2022}/lib/badge/types/badge-icon.mjs +0 -0
  218. /package/{esm2020 → esm2022}/lib/badge/types/index.mjs +0 -0
  219. /package/{esm2020 → esm2022}/lib/branding/index.mjs +0 -0
  220. /package/{esm2020 → esm2022}/lib/breadcrumb/index.mjs +0 -0
  221. /package/{esm2020 → esm2022}/lib/button/index.mjs +0 -0
  222. /package/{esm2020 → esm2022}/lib/button/themes/button-theme.mjs +0 -0
  223. /package/{esm2020 → esm2022}/lib/button/themes/index.mjs +0 -0
  224. /package/{esm2020 → esm2022}/lib/button-group/index.mjs +0 -0
  225. /package/{esm2020 → esm2022}/lib/card-heading/index.mjs +0 -0
  226. /package/{esm2020 → esm2022}/lib/data-card/index.mjs +0 -0
  227. /package/{esm2020 → esm2022}/lib/dropdown/components/index.mjs +0 -0
  228. /package/{esm2020 → esm2022}/lib/dropdown/index.mjs +0 -0
  229. /package/{esm2020 → esm2022}/lib/dropdown/types/dropdown-position.mjs +0 -0
  230. /package/{esm2020 → esm2022}/lib/dropdown/types/index.mjs +0 -0
  231. /package/{esm2020 → esm2022}/lib/file-upload/directives/index.mjs +0 -0
  232. /package/{esm2020 → esm2022}/lib/file-upload/index.mjs +0 -0
  233. /package/{esm2020 → esm2022}/lib/file-upload/pipes/index.mjs +0 -0
  234. /package/{esm2020 → esm2022}/lib/form-field/controls/checkbox/index.mjs +0 -0
  235. /package/{esm2020 → esm2022}/lib/form-field/controls/index.mjs +0 -0
  236. /package/{esm2020 → esm2022}/lib/form-field/controls/input/index.mjs +0 -0
  237. /package/{esm2020 → esm2022}/lib/form-field/controls/radio/index.mjs +0 -0
  238. /package/{esm2020 → esm2022}/lib/form-field/controls/radio/injection-tokens.mjs +0 -0
  239. /package/{esm2020 → esm2022}/lib/form-field/controls/radio/interfaces/index.mjs +0 -0
  240. /package/{esm2020 → esm2022}/lib/form-field/controls/radio/interfaces/radio-button.interface.mjs +0 -0
  241. /package/{esm2020 → esm2022}/lib/form-field/controls/radio/interfaces/radio-change-event.interface.mjs +0 -0
  242. /package/{esm2020 → esm2022}/lib/form-field/controls/radio/interfaces/radio-group.interface.mjs +0 -0
  243. /package/{esm2020 → esm2022}/lib/form-field/controls/select/index.mjs +0 -0
  244. /package/{esm2020 → esm2022}/lib/form-field/controls/select/option/index.mjs +0 -0
  245. /package/{esm2020 → esm2022}/lib/form-field/controls/select/option-parent.mjs +0 -0
  246. /package/{esm2020 → esm2022}/lib/form-field/controls/shared/index.mjs +0 -0
  247. /package/{esm2020 → esm2022}/lib/form-field/controls/shared/toggle/components/index.mjs +0 -0
  248. /package/{esm2020 → esm2022}/lib/form-field/controls/shared/toggle/index.mjs +0 -0
  249. /package/{esm2020 → esm2022}/lib/form-field/directives/index.mjs +0 -0
  250. /package/{esm2020 → esm2022}/lib/form-field/form-field-errors.mjs +0 -0
  251. /package/{esm2020 → esm2022}/lib/form-field/impdc-forms.mjs +0 -0
  252. /package/{esm2020 → esm2022}/lib/form-field/index.mjs +0 -0
  253. /package/{esm2020 → esm2022}/lib/form-field/services/index.mjs +0 -0
  254. /package/{esm2020 → esm2022}/lib/form-field/shared/constructors.type.mjs +0 -0
  255. /package/{esm2020 → esm2022}/lib/form-field/shared/index.mjs +0 -0
  256. /package/{esm2020 → esm2022}/lib/icon/index.mjs +0 -0
  257. /package/{esm2020 → esm2022}/lib/index.mjs +0 -0
  258. /package/{esm2020 → esm2022}/lib/modal/index.mjs +0 -0
  259. /package/{esm2020 → esm2022}/lib/modal/types/index.mjs +0 -0
  260. /package/{esm2020 → esm2022}/lib/pagination/index.mjs +0 -0
  261. /package/{esm2020 → esm2022}/lib/progress-bar/index.mjs +0 -0
  262. /package/{esm2020 → esm2022}/lib/scrollable/index.mjs +0 -0
  263. /package/{esm2020 → esm2022}/lib/select-icon/index.mjs +0 -0
  264. /package/{esm2020 → esm2022}/lib/size-detection/directive/element-size.interface.mjs +0 -0
  265. /package/{esm2020 → esm2022}/lib/size-detection/directive/index.mjs +0 -0
  266. /package/{esm2020 → esm2022}/lib/size-detection/index.mjs +0 -0
  267. /package/{esm2020 → esm2022}/lib/spinner/index.mjs +0 -0
  268. /package/{esm2020 → esm2022}/lib/table/constants/index.mjs +0 -0
  269. /package/{esm2020 → esm2022}/lib/table/constants/public-table.constants.mjs +0 -0
  270. /package/{esm2020 → esm2022}/lib/table/constants/table.constants.mjs +0 -0
  271. /package/{esm2020 → esm2022}/lib/table/containers/index.mjs +0 -0
  272. /package/{esm2020 → esm2022}/lib/table/directives/index.mjs +0 -0
  273. /package/{esm2020 → esm2022}/lib/table/enumerations/index.mjs +0 -0
  274. /package/{esm2020 → esm2022}/lib/table/helpers/index.mjs +0 -0
  275. /package/{esm2020 → esm2022}/lib/table/index.mjs +0 -0
  276. /package/{esm2020 → esm2022}/lib/table/interfaces/cell-renderer.interface.mjs +0 -0
  277. /package/{esm2020 → esm2022}/lib/table/interfaces/custom-cell-renderer-components.type.mjs +0 -0
  278. /package/{esm2020 → esm2022}/lib/table/interfaces/sort-by-payload.interface.mjs +0 -0
  279. /package/{esm2020 → esm2022}/lib/table/interfaces/table-cell-option.interface.mjs +0 -0
  280. /package/{esm2020 → esm2022}/lib/table/interfaces/table-event-payload.interface.mjs +0 -0
  281. /package/{esm2020 → esm2022}/lib/table/interfaces/table-row-item.interface.mjs +0 -0
  282. /package/{esm2020 → esm2022}/lib/text-highlight/index.mjs +0 -0
  283. /package/{esm2020 → esm2022}/public-api.mjs +0 -0
  284. /package/{esm2020 → esm2022}/types/component-size.mjs +0 -0
  285. /package/{esm2020 → esm2022}/types/index.mjs +0 -0
  286. /package/{esm2020 → esm2022}/utilities/boolean-props.mjs +0 -0
  287. /package/{esm2020 → esm2022}/utilities/dc.mjs +0 -0
  288. /package/{esm2020 → esm2022}/utilities/index.mjs +0 -0
  289. /package/{esm2020 → esm2022}/utilities/lc.mjs +0 -0
  290. /package/{esm2020 → esm2022}/utilities/number-props.mjs +0 -0
  291. /package/{esm2020 → esm2022}/utilities/sanitize.mjs +0 -0
@@ -28,6 +28,24 @@ const _FileUploadComponentBase = mixinTabIndex(mixinDisabled(mixinErrorState(cla
28
28
  * To use, import `FileUploadModule` or another module that imports and exports that module from `@impartner/design-components`.
29
29
  */
30
30
  export class FileUploadComponent extends _FileUploadComponentBase {
31
+ get canUpload() {
32
+ return this.multiple || this._value.length === 0;
33
+ }
34
+ get acceptTypes() {
35
+ if (!this.accept || !this.accept.length) {
36
+ return [];
37
+ }
38
+ return this.accept
39
+ .split(',')
40
+ .map(a => a.trim())
41
+ .filter(a => !!a);
42
+ }
43
+ get empty() {
44
+ return this._value.length === 0;
45
+ }
46
+ get filesForDisplay() {
47
+ return this._value || [];
48
+ }
31
49
  constructor(_changeDetector, _defaultErrorStateMatcher, _formRoot, _parentForm, _parentFormGroup, ngControl) {
32
50
  super(_defaultErrorStateMatcher, _formRoot, _parentForm, _parentFormGroup, ngControl);
33
51
  this._changeDetector = _changeDetector;
@@ -56,24 +74,6 @@ export class FileUploadComponent extends _FileUploadComponentBase {
56
74
  }
57
75
  this.id = this.id;
58
76
  }
59
- get canUpload() {
60
- return this.multiple || this._value.length === 0;
61
- }
62
- get acceptTypes() {
63
- if (!this.accept || !this.accept.length) {
64
- return [];
65
- }
66
- return this.accept
67
- .split(',')
68
- .map(a => a.trim())
69
- .filter(a => !!a);
70
- }
71
- get empty() {
72
- return this._value.length === 0;
73
- }
74
- get filesForDisplay() {
75
- return this._value || [];
76
- }
77
77
  /** @ignore */
78
78
  handleChange(event) {
79
79
  const fileList = (event.target || {})
@@ -269,15 +269,15 @@ export class FileUploadComponent extends _FileUploadComponentBase {
269
269
  const acceptedByExtension = this.acceptTypes.some(type => fileExtensions.includes(type));
270
270
  return acceptedByExtension;
271
271
  }
272
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.1", ngImport: i0, type: FileUploadComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.ErrorStateMatcher }, { token: IMPDC_FORM_ROOT, optional: true }, { token: i2.NgForm, optional: true }, { token: i2.FormGroupDirective, optional: true }, { token: i2.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component }); }
273
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.1", type: FileUploadComponent, selector: "impdc-file-upload, [impdc-file-upload]", inputs: { disabled: "disabled", tabIndex: "tabIndex", multiple: "multiple", uploadText: "uploadText", accept: "accept", errorStateMatcher: "errorStateMatcher", value: "value", id: "id", required: "required" }, host: { listeners: { "focus": "_onFocus(); focus()" }, properties: { "attr.id": "id", "attr.tabindex": "tabIndex", "attr.aria-required": "required.toString()", "attr.aria-disabled": "disabled.toString()", "attr.aria-invalid": "errorState", "class.impdc-file-upload--required": "required", "class.impdc-file-upload--disabled": "disabled", "class.impdc-file-upload--invalid": "errorState", "class.impdc-file-upload--multiple": "multiple", "class.impdc-file-upload--empty": "empty" }, classAttribute: "impdc-file-upload" }, providers: [
274
+ {
275
+ provide: ImpdcFormFieldControl,
276
+ useExisting: FileUploadComponent
277
+ }
278
+ ], viewQueries: [{ propertyName: "fileDropElementRef", first: true, predicate: FileDropDirective, descendants: true, read: ElementRef }, { propertyName: "fileUploadInputEltRef", first: true, predicate: ["fileUploadInputElt"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"impdc-file-upload-container\">\n <div\n class=\"impdc-file-upload-dropzone\"\n [ngClass]=\"{\n 'hide-upload': !canUpload\n }\"\n impdcFileDrop\n (filesDropped)=\"handleDrop($event)\"\n (keyup.enter)=\"fileUploadInputElt.click()\"\n (focus)=\"_onFocus()\"\n (blur)=\"_onBlur()\"\n [tabindex]=\"disabled ? '-1' : '0'\">\n <input\n class=\"file-upload-input\"\n type=\"file\"\n #fileUploadInputElt\n [multiple]=\"multiple\"\n [disabled]=\"disabled\"\n [accept]=\"accept\"\n (change)=\"handleChange($event)\"\n tabindex=\"-1\" />\n <span\n impdc-icon\n theme=\"regular\"\n name=\"cloud-upload-alt\"\n class=\"upload-icon\"></span>\n <p class=\"upload-text\">{{ uploadText }}</p>\n </div>\n <div class=\"current-files\" *ngIf=\"filesForDisplay.length\">\n <ng-container *ngFor=\"let file of filesForDisplay; let idx = index\">\n <div class=\"current-file\">\n <div class=\"current-file-details\">\n <div class=\"name\">{{ file.name }}</div>\n <div class=\"size\">{{ file.size | humanReadableByteSize }}</div>\n </div>\n <div *ngIf=\"!disabled\" class=\"current-file-actions\">\n <button\n impdcButton\n theme=\"close\"\n tabindex=\"0\"\n (keyup.enter)=\"removeFile(idx)\"\n (click)=\"removeFile(idx)\"></button>\n </div>\n </div>\n </ng-container>\n </div>\n</div>\n", styles: [":host{display:block}:host.impdc-file-upload--invalid .impdc-file-upload-dropzone{color:var(--impd-color-red-500);border-color:var(--impd-color-red-500)}:host.impdc-file-upload--invalid .impdc-file-upload-dropzone .upload-text{color:var(--impd-color-red-900)}:host.impdc-file-upload--invalid .impdc-file-upload-container .current-files .current-file{border-color:var(--impd-color-red-500)}:host.impdc-file-upload--disabled .impdc-file-upload-dropzone{color:var(--impd-color-gray-300);background-color:var(--impd-color-gray-50)}:host:not(.impdc-file-upload--disabled) .impdc-file-upload-dropzone:focus,:host:not(.impdc-file-upload--disabled) .impdc-file-upload-dropzone:has(label>button:focus){background-color:var(--impd-color-gray-50);border:2px solid var(--impd-color-motion-blue-500);border-radius:var(--impd-border-radius-md);outline:none}.impdc-file-upload-container{display:flex;flex-direction:column;gap:var(--impd-size-2);width:100%}.impdc-file-upload-container .file-hover:not(.disabled){background-color:var(--impd-color-gray-50);border:2px solid var(--impd-color-motion-blue-500);border-radius:var(--impd-border-radius-md);outline:none}.impdc-file-upload-container .current-files{display:flex;flex-direction:column;gap:var(--impd-size-2)}.impdc-file-upload-container .current-files .current-file{display:inline-flex;background-color:var(--impd-color-gray-50);padding:var(--impd-size-4);gap:var(--impd-size-4);border-radius:var(--impd-border-radius-md);border:1px solid var(--impd-color-gray-200);justify-content:space-between;align-items:center;color:var(--impd-color-gray-600)}.impdc-file-upload-container .current-files .current-file .current-file-details{display:flex;flex-direction:column}.impdc-file-upload-container .current-files .current-file .current-file-details .name{color:var(--impd-color-gray-900);font-size:1.4rem;font-weight:500}.impdc-file-upload-container .current-files .current-file .current-file-details .size{font-size:1.4rem}.impdc-file-upload-container .current-files .current-file .current-file-actions .btn.btn-close-fa{color:var(--impd-color-gray-600)}.impdc-file-upload-dropzone{position:relative;display:flex;flex-direction:column;width:100%;min-height:10rem;padding:3.2rem 1.6rem;gap:2rem;align-items:center;justify-content:center;text-align:center;border:2px dashed var(--impd-color-gray-200);color:var(--impd-color-motion-blue-600);border-radius:5px}.impdc-file-upload-dropzone.hide-upload{display:none}.impdc-file-upload-dropzone .upload-icon{font-size:33px;color:inherit}.impdc-file-upload-dropzone .upload-text{margin:0;font-size:14px;line-height:20px;color:inherit}.impdc-file-upload-dropzone .button-text{border-color:var(--impd-color-motion-blue-600);background-color:var(--impd-color-motion-blue-600);color:#fff}.impdc-file-upload-dropzone input{position:absolute;top:0;left:0;width:100%;height:100%;opacity:0;z-index:2;cursor:pointer}.impdc-file-upload-dropzone input:disabled{cursor:default}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.ButtonComponent, selector: "button[impdcButton]", inputs: ["type", "theme", "text", "disabled", "titleText", "ariaLabel"] }, { kind: "component", type: i5.IconComponent, selector: "impdc-icon, [impdc-icon]", inputs: ["name", "theme", "size"] }, { kind: "directive", type: i6.FileDropDirective, selector: "[impdcFileDrop]", outputs: ["filesDropped"] }, { kind: "pipe", type: i7.HumanReadableByteSizePipe, name: "humanReadableByteSize" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
272
279
  }
273
- FileUploadComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: FileUploadComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.ErrorStateMatcher }, { token: IMPDC_FORM_ROOT, optional: true }, { token: i2.NgForm, optional: true }, { token: i2.FormGroupDirective, optional: true }, { token: i2.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component });
274
- FileUploadComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: FileUploadComponent, selector: "impdc-file-upload, [impdc-file-upload]", inputs: { disabled: "disabled", tabIndex: "tabIndex", multiple: "multiple", uploadText: "uploadText", accept: "accept", errorStateMatcher: "errorStateMatcher", value: "value", id: "id", required: "required" }, host: { listeners: { "focus": "_onFocus(); focus()" }, properties: { "attr.id": "id", "attr.tabindex": "tabIndex", "attr.aria-required": "required.toString()", "attr.aria-disabled": "disabled.toString()", "attr.aria-invalid": "errorState", "class.impdc-file-upload--required": "required", "class.impdc-file-upload--disabled": "disabled", "class.impdc-file-upload--invalid": "errorState", "class.impdc-file-upload--multiple": "multiple", "class.impdc-file-upload--empty": "empty" }, classAttribute: "impdc-file-upload" }, providers: [
275
- {
276
- provide: ImpdcFormFieldControl,
277
- useExisting: FileUploadComponent
278
- }
279
- ], viewQueries: [{ propertyName: "fileDropElementRef", first: true, predicate: FileDropDirective, descendants: true, read: ElementRef }, { propertyName: "fileUploadInputEltRef", first: true, predicate: ["fileUploadInputElt"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"impdc-file-upload-container\">\n <div\n class=\"impdc-file-upload-dropzone\"\n [ngClass]=\"{\n 'hide-upload': !canUpload\n }\"\n impdcFileDrop\n (filesDropped)=\"handleDrop($event)\"\n (keyup.enter)=\"fileUploadInputElt.click()\"\n (focus)=\"_onFocus()\"\n (blur)=\"_onBlur()\"\n [tabindex]=\"disabled ? '-1' : '0'\">\n <input\n class=\"file-upload-input\"\n type=\"file\"\n #fileUploadInputElt\n [multiple]=\"multiple\"\n [disabled]=\"disabled\"\n [accept]=\"accept\"\n (change)=\"handleChange($event)\"\n tabindex=\"-1\" />\n <span\n impdc-icon\n theme=\"regular\"\n name=\"cloud-upload-alt\"\n class=\"upload-icon\"></span>\n <p class=\"upload-text\">{{ uploadText }}</p>\n </div>\n <div class=\"current-files\" *ngIf=\"filesForDisplay.length\">\n <ng-container *ngFor=\"let file of filesForDisplay; let idx = index\">\n <div class=\"current-file\">\n <div class=\"current-file-details\">\n <div class=\"name\">{{ file.name }}</div>\n <div class=\"size\">{{ file.size | humanReadableByteSize }}</div>\n </div>\n <div *ngIf=\"!disabled\" class=\"current-file-actions\">\n <button\n impdcButton\n theme=\"close\"\n tabindex=\"0\"\n (keyup.enter)=\"removeFile(idx)\"\n (click)=\"removeFile(idx)\"></button>\n </div>\n </div>\n </ng-container>\n </div>\n</div>\n", styles: [":host{display:block}:host.impdc-file-upload--invalid .impdc-file-upload-dropzone{color:var(--impd-color-red-500);border-color:var(--impd-color-red-500)}:host.impdc-file-upload--invalid .impdc-file-upload-dropzone .upload-text{color:var(--impd-color-red-900)}:host.impdc-file-upload--invalid .impdc-file-upload-container .current-files .current-file{border-color:var(--impd-color-red-500)}:host.impdc-file-upload--disabled .impdc-file-upload-dropzone{color:var(--impd-color-gray-300);background-color:var(--impd-color-gray-50)}:host:not(.impdc-file-upload--disabled) .impdc-file-upload-dropzone:focus,:host:not(.impdc-file-upload--disabled) .impdc-file-upload-dropzone:has(label > button:focus){background-color:var(--impd-color-gray-50);border:2px solid var(--impd-color-motion-blue-500);border-radius:var(--impd-border-radius-md);outline:none}.impdc-file-upload-container{display:flex;flex-direction:column;gap:var(--impd-size-2);width:100%}.impdc-file-upload-container .file-hover:not(.disabled){background-color:var(--impd-color-gray-50);border:2px solid var(--impd-color-motion-blue-500);border-radius:var(--impd-border-radius-md);outline:none}.impdc-file-upload-container .current-files{display:flex;flex-direction:column;gap:var(--impd-size-2)}.impdc-file-upload-container .current-files .current-file{display:inline-flex;background-color:var(--impd-color-gray-50);padding:var(--impd-size-4);gap:var(--impd-size-4);border-radius:var(--impd-border-radius-md);border:1px solid var(--impd-color-gray-200);justify-content:space-between;align-items:center;color:var(--impd-color-gray-600)}.impdc-file-upload-container .current-files .current-file .current-file-details{display:flex;flex-direction:column}.impdc-file-upload-container .current-files .current-file .current-file-details .name{color:var(--impd-color-gray-900);font-size:1.4rem;font-weight:500}.impdc-file-upload-container .current-files .current-file .current-file-details .size{font-size:1.4rem}.impdc-file-upload-container .current-files .current-file .current-file-actions .btn.btn-close-fa{color:var(--impd-color-gray-600)}.impdc-file-upload-dropzone{position:relative;display:flex;flex-direction:column;width:100%;min-height:10rem;padding:3.2rem 1.6rem;gap:2rem;align-items:center;justify-content:center;text-align:center;border:2px dashed var(--impd-color-gray-200);color:var(--impd-color-motion-blue-600);border-radius:5px}.impdc-file-upload-dropzone.hide-upload{display:none}.impdc-file-upload-dropzone .upload-icon{font-size:33px;color:inherit}.impdc-file-upload-dropzone .upload-text{margin:0;font-size:14px;line-height:20px;color:inherit}.impdc-file-upload-dropzone .button-text{border-color:var(--impd-color-motion-blue-600);background-color:var(--impd-color-motion-blue-600);color:#fff}.impdc-file-upload-dropzone input{position:absolute;top:0;left:0;width:100%;height:100%;opacity:0;z-index:2;cursor:pointer}.impdc-file-upload-dropzone input:disabled{cursor:default}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.ButtonComponent, selector: "button[impdcButton]", inputs: ["type", "theme", "text", "disabled", "titleText", "ariaLabel"] }, { kind: "component", type: i5.IconComponent, selector: "impdc-icon, [impdc-icon]", inputs: ["name", "theme", "size"] }, { kind: "directive", type: i6.FileDropDirective, selector: "[impdcFileDrop]", outputs: ["filesDropped"] }, { kind: "pipe", type: i7.HumanReadableByteSizePipe, name: "humanReadableByteSize" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
280
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: FileUploadComponent, decorators: [{
280
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.1", ngImport: i0, type: FileUploadComponent, decorators: [{
281
281
  type: Component,
282
282
  args: [{ selector: 'impdc-file-upload, [impdc-file-upload]', inputs: ['disabled', 'tabIndex'], changeDetection: ChangeDetectionStrategy.OnPush, host: {
283
283
  class: 'impdc-file-upload',
@@ -297,8 +297,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
297
297
  provide: ImpdcFormFieldControl,
298
298
  useExisting: FileUploadComponent
299
299
  }
300
- ], template: "<div class=\"impdc-file-upload-container\">\n <div\n class=\"impdc-file-upload-dropzone\"\n [ngClass]=\"{\n 'hide-upload': !canUpload\n }\"\n impdcFileDrop\n (filesDropped)=\"handleDrop($event)\"\n (keyup.enter)=\"fileUploadInputElt.click()\"\n (focus)=\"_onFocus()\"\n (blur)=\"_onBlur()\"\n [tabindex]=\"disabled ? '-1' : '0'\">\n <input\n class=\"file-upload-input\"\n type=\"file\"\n #fileUploadInputElt\n [multiple]=\"multiple\"\n [disabled]=\"disabled\"\n [accept]=\"accept\"\n (change)=\"handleChange($event)\"\n tabindex=\"-1\" />\n <span\n impdc-icon\n theme=\"regular\"\n name=\"cloud-upload-alt\"\n class=\"upload-icon\"></span>\n <p class=\"upload-text\">{{ uploadText }}</p>\n </div>\n <div class=\"current-files\" *ngIf=\"filesForDisplay.length\">\n <ng-container *ngFor=\"let file of filesForDisplay; let idx = index\">\n <div class=\"current-file\">\n <div class=\"current-file-details\">\n <div class=\"name\">{{ file.name }}</div>\n <div class=\"size\">{{ file.size | humanReadableByteSize }}</div>\n </div>\n <div *ngIf=\"!disabled\" class=\"current-file-actions\">\n <button\n impdcButton\n theme=\"close\"\n tabindex=\"0\"\n (keyup.enter)=\"removeFile(idx)\"\n (click)=\"removeFile(idx)\"></button>\n </div>\n </div>\n </ng-container>\n </div>\n</div>\n", styles: [":host{display:block}:host.impdc-file-upload--invalid .impdc-file-upload-dropzone{color:var(--impd-color-red-500);border-color:var(--impd-color-red-500)}:host.impdc-file-upload--invalid .impdc-file-upload-dropzone .upload-text{color:var(--impd-color-red-900)}:host.impdc-file-upload--invalid .impdc-file-upload-container .current-files .current-file{border-color:var(--impd-color-red-500)}:host.impdc-file-upload--disabled .impdc-file-upload-dropzone{color:var(--impd-color-gray-300);background-color:var(--impd-color-gray-50)}:host:not(.impdc-file-upload--disabled) .impdc-file-upload-dropzone:focus,:host:not(.impdc-file-upload--disabled) .impdc-file-upload-dropzone:has(label > button:focus){background-color:var(--impd-color-gray-50);border:2px solid var(--impd-color-motion-blue-500);border-radius:var(--impd-border-radius-md);outline:none}.impdc-file-upload-container{display:flex;flex-direction:column;gap:var(--impd-size-2);width:100%}.impdc-file-upload-container .file-hover:not(.disabled){background-color:var(--impd-color-gray-50);border:2px solid var(--impd-color-motion-blue-500);border-radius:var(--impd-border-radius-md);outline:none}.impdc-file-upload-container .current-files{display:flex;flex-direction:column;gap:var(--impd-size-2)}.impdc-file-upload-container .current-files .current-file{display:inline-flex;background-color:var(--impd-color-gray-50);padding:var(--impd-size-4);gap:var(--impd-size-4);border-radius:var(--impd-border-radius-md);border:1px solid var(--impd-color-gray-200);justify-content:space-between;align-items:center;color:var(--impd-color-gray-600)}.impdc-file-upload-container .current-files .current-file .current-file-details{display:flex;flex-direction:column}.impdc-file-upload-container .current-files .current-file .current-file-details .name{color:var(--impd-color-gray-900);font-size:1.4rem;font-weight:500}.impdc-file-upload-container .current-files .current-file .current-file-details .size{font-size:1.4rem}.impdc-file-upload-container .current-files .current-file .current-file-actions .btn.btn-close-fa{color:var(--impd-color-gray-600)}.impdc-file-upload-dropzone{position:relative;display:flex;flex-direction:column;width:100%;min-height:10rem;padding:3.2rem 1.6rem;gap:2rem;align-items:center;justify-content:center;text-align:center;border:2px dashed var(--impd-color-gray-200);color:var(--impd-color-motion-blue-600);border-radius:5px}.impdc-file-upload-dropzone.hide-upload{display:none}.impdc-file-upload-dropzone .upload-icon{font-size:33px;color:inherit}.impdc-file-upload-dropzone .upload-text{margin:0;font-size:14px;line-height:20px;color:inherit}.impdc-file-upload-dropzone .button-text{border-color:var(--impd-color-motion-blue-600);background-color:var(--impd-color-motion-blue-600);color:#fff}.impdc-file-upload-dropzone input{position:absolute;top:0;left:0;width:100%;height:100%;opacity:0;z-index:2;cursor:pointer}.impdc-file-upload-dropzone input:disabled{cursor:default}\n"] }]
301
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.ErrorStateMatcher }, { type: undefined, decorators: [{
300
+ ], template: "<div class=\"impdc-file-upload-container\">\n <div\n class=\"impdc-file-upload-dropzone\"\n [ngClass]=\"{\n 'hide-upload': !canUpload\n }\"\n impdcFileDrop\n (filesDropped)=\"handleDrop($event)\"\n (keyup.enter)=\"fileUploadInputElt.click()\"\n (focus)=\"_onFocus()\"\n (blur)=\"_onBlur()\"\n [tabindex]=\"disabled ? '-1' : '0'\">\n <input\n class=\"file-upload-input\"\n type=\"file\"\n #fileUploadInputElt\n [multiple]=\"multiple\"\n [disabled]=\"disabled\"\n [accept]=\"accept\"\n (change)=\"handleChange($event)\"\n tabindex=\"-1\" />\n <span\n impdc-icon\n theme=\"regular\"\n name=\"cloud-upload-alt\"\n class=\"upload-icon\"></span>\n <p class=\"upload-text\">{{ uploadText }}</p>\n </div>\n <div class=\"current-files\" *ngIf=\"filesForDisplay.length\">\n <ng-container *ngFor=\"let file of filesForDisplay; let idx = index\">\n <div class=\"current-file\">\n <div class=\"current-file-details\">\n <div class=\"name\">{{ file.name }}</div>\n <div class=\"size\">{{ file.size | humanReadableByteSize }}</div>\n </div>\n <div *ngIf=\"!disabled\" class=\"current-file-actions\">\n <button\n impdcButton\n theme=\"close\"\n tabindex=\"0\"\n (keyup.enter)=\"removeFile(idx)\"\n (click)=\"removeFile(idx)\"></button>\n </div>\n </div>\n </ng-container>\n </div>\n</div>\n", styles: [":host{display:block}:host.impdc-file-upload--invalid .impdc-file-upload-dropzone{color:var(--impd-color-red-500);border-color:var(--impd-color-red-500)}:host.impdc-file-upload--invalid .impdc-file-upload-dropzone .upload-text{color:var(--impd-color-red-900)}:host.impdc-file-upload--invalid .impdc-file-upload-container .current-files .current-file{border-color:var(--impd-color-red-500)}:host.impdc-file-upload--disabled .impdc-file-upload-dropzone{color:var(--impd-color-gray-300);background-color:var(--impd-color-gray-50)}:host:not(.impdc-file-upload--disabled) .impdc-file-upload-dropzone:focus,:host:not(.impdc-file-upload--disabled) .impdc-file-upload-dropzone:has(label>button:focus){background-color:var(--impd-color-gray-50);border:2px solid var(--impd-color-motion-blue-500);border-radius:var(--impd-border-radius-md);outline:none}.impdc-file-upload-container{display:flex;flex-direction:column;gap:var(--impd-size-2);width:100%}.impdc-file-upload-container .file-hover:not(.disabled){background-color:var(--impd-color-gray-50);border:2px solid var(--impd-color-motion-blue-500);border-radius:var(--impd-border-radius-md);outline:none}.impdc-file-upload-container .current-files{display:flex;flex-direction:column;gap:var(--impd-size-2)}.impdc-file-upload-container .current-files .current-file{display:inline-flex;background-color:var(--impd-color-gray-50);padding:var(--impd-size-4);gap:var(--impd-size-4);border-radius:var(--impd-border-radius-md);border:1px solid var(--impd-color-gray-200);justify-content:space-between;align-items:center;color:var(--impd-color-gray-600)}.impdc-file-upload-container .current-files .current-file .current-file-details{display:flex;flex-direction:column}.impdc-file-upload-container .current-files .current-file .current-file-details .name{color:var(--impd-color-gray-900);font-size:1.4rem;font-weight:500}.impdc-file-upload-container .current-files .current-file .current-file-details .size{font-size:1.4rem}.impdc-file-upload-container .current-files .current-file .current-file-actions .btn.btn-close-fa{color:var(--impd-color-gray-600)}.impdc-file-upload-dropzone{position:relative;display:flex;flex-direction:column;width:100%;min-height:10rem;padding:3.2rem 1.6rem;gap:2rem;align-items:center;justify-content:center;text-align:center;border:2px dashed var(--impd-color-gray-200);color:var(--impd-color-motion-blue-600);border-radius:5px}.impdc-file-upload-dropzone.hide-upload{display:none}.impdc-file-upload-dropzone .upload-icon{font-size:33px;color:inherit}.impdc-file-upload-dropzone .upload-text{margin:0;font-size:14px;line-height:20px;color:inherit}.impdc-file-upload-dropzone .button-text{border-color:var(--impd-color-motion-blue-600);background-color:var(--impd-color-motion-blue-600);color:#fff}.impdc-file-upload-dropzone input{position:absolute;top:0;left:0;width:100%;height:100%;opacity:0;z-index:2;cursor:pointer}.impdc-file-upload-dropzone input:disabled{cursor:default}\n"] }]
301
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1.ErrorStateMatcher }, { type: undefined, decorators: [{
302
302
  type: Optional
303
303
  }, {
304
304
  type: Inject,
@@ -311,7 +311,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
311
311
  type: Self
312
312
  }, {
313
313
  type: Optional
314
- }] }]; }, propDecorators: { fileDropElementRef: [{
314
+ }] }], propDecorators: { fileDropElementRef: [{
315
315
  type: ViewChild,
316
316
  args: [FileDropDirective, { read: ElementRef }]
317
317
  }], fileUploadInputEltRef: [{
@@ -332,4 +332,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
332
332
  }], required: [{
333
333
  type: Input
334
334
  }] } });
335
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzaWduLWNvbXBvbmVudHMvc3JjL2xpYi9maWxlLXVwbG9hZC9maWxlLXVwbG9hZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tY29tcG9uZW50cy9zcmMvbGliL2ZpbGUtdXBsb2FkL2ZpbGUtdXBsb2FkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFFdkIsU0FBUyxFQUVULFVBQVUsRUFDVixNQUFNLEVBQ04sS0FBSyxFQUVMLFFBQVEsRUFDUixJQUFJLEVBQ0osU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFPTCxVQUFVLEVBQ1gsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQ2hDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFnQiwwQkFBMEIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNFLE9BQU8sRUFJTCxxQkFBcUIsRUFFckIsZUFBZSxFQUNmLGFBQWEsRUFDYixlQUFlLEVBQ2YsYUFBYSxFQUNkLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7Ozs7Ozs7O0FBRWpELE1BQU0sd0JBQXdCLEdBQUcsYUFBYSxDQUM1QyxhQUFhLENBQ1gsZUFBZSxDQUNiO0lBR0UsWUFDUyx5QkFBNEMsRUFDNUMsU0FBd0IsRUFDeEIsV0FBbUIsRUFDbkIsZ0JBQW9DLEVBQ3BDLFNBQTJCO1FBSjNCLDhCQUF5QixHQUF6Qix5QkFBeUIsQ0FBbUI7UUFDNUMsY0FBUyxHQUFULFNBQVMsQ0FBZTtRQUN4QixnQkFBVyxHQUFYLFdBQVcsQ0FBUTtRQUNuQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQW9CO1FBQ3BDLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBUHBCLGlCQUFZLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztJQVFoRCxDQUFDO0NBQ0wsQ0FDRixDQUNGLENBQ0YsQ0FBQztBQUVGOzs7R0FHRztBQThCSCxNQUFNLE9BQU8sbUJBQ1gsU0FBUSx3QkFBd0I7SUFpRWhDLFlBQ21CLGVBQWtDLEVBQ25ELHlCQUE0QyxFQUNQLFNBQXdCLEVBQ2pELFdBQW1CLEVBQ25CLGdCQUFvQyxFQUM1QixTQUEyQjtRQUUvQyxLQUFLLENBQ0gseUJBQXlCLEVBQ3pCLFNBQVMsRUFDVCxXQUFXLEVBQ1gsZ0JBQWdCLEVBQ2hCLFNBQVMsQ0FDVixDQUFDO1FBYmUsb0JBQWUsR0FBZixlQUFlLENBQW1CO1FBakRyRDs7V0FFRztRQUVILGFBQVEsR0FBRyxLQUFLLENBQUM7UUFFakI7O1dBRUc7UUFFSCxlQUFVLEdBQUcsNkNBQTZDLENBQUM7UUFFM0Q7O1dBRUc7UUFFSCxXQUFNLEdBQUcsRUFBRSxDQUFDO1FBOEJKLFNBQUksR0FBRyxxQkFBcUIsTUFBTSxFQUFFLEVBQUUsQ0FBQztRQXNHdkMsV0FBTSxHQUFvQixFQUFFLENBQUM7UUFvQzdCLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFFVCxnQkFBVyxHQUFXLG1CQUFtQixDQUFDO1FBQzFDLG9CQUFlLEdBQVksS0FBSyxDQUFDO1FBM0gvQyxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDbEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO1lBQ3BDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLGFBQWEsQ0FBQyxHQUFHLEVBQUU7Z0JBQ3pDLE9BQU8sSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3pCLENBQUMsQ0FBQyxDQUFDO1NBQ0o7UUFFRCxJQUFJLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQW5ERCxJQUFXLFNBQVM7UUFDbEIsT0FBTyxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRUQsSUFBWSxXQUFXO1FBQ3JCLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUU7WUFDdkMsT0FBTyxFQUFFLENBQUM7U0FDWDtRQUVELE9BQU8sSUFBSSxDQUFDLE1BQU07YUFDZixLQUFLLENBQUMsR0FBRyxDQUFDO2FBQ1YsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO2FBQ2xCLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN0QixDQUFDO0lBRUQsSUFBVyxLQUFLO1FBQ2QsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVELElBQWMsZUFBZTtRQUMzQixPQUFPLElBQUksQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFnQ0QsY0FBYztJQUNQLFlBQVksQ0FBQyxLQUFZO1FBQzlCLE1BQU0sUUFBUSxHQUFvQixDQUFFLEtBQUssQ0FBQyxNQUEyQixJQUFJLEVBQUUsQ0FBQzthQUN6RSxLQUFLLENBQUM7UUFFVCxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2IsT0FBTztTQUNSO1FBRUQsSUFBSSxDQUFDLCtCQUErQixDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFRCxjQUFjO0lBQ1AsVUFBVSxDQUFDLEtBQWU7UUFDL0IsSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQzNCLE9BQU87U0FDUjtRQUVELElBQUksQ0FBQywrQkFBK0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQsY0FBYztJQUNQLFVBQVUsQ0FBQyxTQUFpQjtRQUNqQyxNQUFNLFdBQVcsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3JDLFdBQVcsQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBRWpDLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRUQsY0FBYztJQUNQLEtBQUssQ0FBQyxPQUFzQjtRQUNqQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRUQscUJBQXFCO0lBRXJCLGNBQWM7SUFDUCxTQUFTO1FBQ2QsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVELGNBQWM7SUFDUCxXQUFXO1FBQ2hCLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUVELDJCQUEyQjtJQUUzQjs7O09BR0c7SUFDSCxJQUNXLEtBQUs7UUFDZCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUNELElBQVcsS0FBSyxDQUFDLFFBQThCO1FBQzdDLElBQUksUUFBUSxLQUFLLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDNUIsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFO2dCQUMzQixJQUFJLENBQUMsTUFBTSxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7YUFDN0M7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLE1BQU0sR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQzthQUMxQztTQUNGO1FBRUQsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFaEQsSUFDRSxJQUFJLENBQUMscUJBQXFCO1lBQzFCLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxhQUFhLEVBQ3hDO1lBQ0EsSUFBSSxDQUFDLHFCQUFxQixDQUFDLGFBQWEsQ0FBQyxLQUFLLEdBQUcsUUFBUSxDQUFDO1NBQzNEO0lBQ0gsQ0FBQztJQUdELGNBQWM7SUFDZCxJQUNXLEVBQUU7UUFDWCxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUM7SUFDbEIsQ0FBQztJQUNELElBQVcsRUFBRSxDQUFDLEtBQWE7UUFDekIsSUFBSSxDQUFDLEdBQUcsR0FBRyxLQUFLLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQztRQUM5QixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFHRDs7Ozs7T0FLRztJQUNILElBQ1csUUFBUTtRQUNqQixPQUFPLENBQ0wsSUFBSSxDQUFDLFNBQVM7WUFDZCxJQUFJLENBQUMsU0FBUyxFQUFFLE9BQU8sRUFBRSxZQUFZLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQztZQUMxRCxLQUFLLENBQ04sQ0FBQztJQUNKLENBQUM7SUFDRCxJQUFXLFFBQVEsQ0FBQyxLQUFtQjtRQUNyQyxJQUFJLENBQUMsU0FBUyxHQUFHLDBCQUEwQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ25ELElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUdELElBQVcsT0FBTztRQUNoQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdkIsQ0FBQztJQU1ELDBCQUEwQjtJQUUxQixjQUFjO0lBQ1AsVUFBVSxDQUFDLEtBQWE7UUFDN0IsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN0QyxDQUFDO0lBRUQsY0FBYztJQUNQLGdCQUFnQixDQUFDLEVBQVk7UUFDbEMsSUFBSSxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVELGNBQWM7SUFDUCxpQkFBaUIsQ0FBQyxFQUFZO1FBQ25DLElBQUksQ0FBQyxhQUFhLEdBQUcsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxlQUFlLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdEMsQ0FBQztJQUVELGNBQWM7SUFDUCxnQkFBZ0IsQ0FBRSxVQUFtQjtRQUMxQyxJQUFJLENBQUMsUUFBUSxHQUFHLFVBQVUsQ0FBQztJQUM3QixDQUFDO0lBRUQsZUFBZTtJQUVmOztPQUVHO0lBQ0ksUUFBUTtRQUNiLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEtBQUssQ0FBQztZQUNoRSxDQUFDLENBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO1lBQ3BCLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDWCxDQUFDO0lBRUQsZUFBZTtJQUVMLFFBQVE7UUFDaEIsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDbEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7WUFDckIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUMxQjtJQUNILENBQUM7SUFFUyxPQUFPO1FBQ2YsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7UUFFdEIsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDbEIsSUFBSSxDQUFDLGFBQWEsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDM0MsSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUNwQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxDQUFDO1NBQzFCO0lBQ0gsQ0FBQztJQUVPLDJCQUEyQixDQUFDLFFBQWdCO1FBQ2xELElBQUksQ0FBQyxLQUFLLEdBQUcsUUFBUSxDQUFDO1FBRXRCLElBQUksQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbkQsSUFBSSxDQUFDLGFBQWEsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDM0MsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRU8sK0JBQStCLENBQUMsUUFBeUI7UUFDL0QsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNiLE9BQU87U0FDUjtRQUVELElBQUksSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQzVELE9BQU87U0FDUjtRQUVELE1BQU0sU0FBUyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFbkMsS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDckMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7Z0JBQzFDLE9BQU87YUFDUjtZQUNELE1BQU0sWUFBWSxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQ2pDLFFBQVEsQ0FBQyxFQUFFLENBQ1QsUUFBUSxDQUFDLElBQUksS0FBSyxPQUFPLENBQUMsSUFBSTtnQkFDOUIsUUFBUSxDQUFDLFlBQVksS0FBSyxPQUFPLENBQUMsWUFBWTtnQkFDOUMsUUFBUSxDQUFDLElBQUksS0FBSyxPQUFPLENBQUMsSUFBSSxDQUNqQyxDQUFDO1lBRUYsSUFBSSxZQUFZLEVBQUU7Z0JBQ2hCLE9BQU87YUFDUjtZQUVELElBQUksSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUN0RCxTQUFTLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2FBQ3pCO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsMkJBQTJCLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVPLFlBQVksQ0FBQyxLQUFzQjtRQUN6QyxNQUFNLFlBQVksR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRXhDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDbkIsWUFBWSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDL0IsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLFlBQVksQ0FBQyxLQUFLLENBQUM7SUFDNUIsQ0FBQztJQUVPLGNBQWMsQ0FBQyxRQUFnQjtRQUNyQyxNQUFNLFlBQVksR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3pDLElBQUksVUFBVSxHQUFhLEVBQUUsQ0FBQztRQUU5QixJQUFJLFlBQVksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQzNCLE9BQU8sVUFBVSxDQUFDO1NBQ25CO1FBRUQsTUFBTSxTQUFTLEdBQUcsSUFBSSxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ3hELFVBQVUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFM0IsSUFBSSxZQUFZLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUM3QixPQUFPLFVBQVUsQ0FBQztTQUNuQjtRQUVELE1BQU0sR0FBRyxHQUFHLElBQUksWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUNsRCxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQy9DLFVBQVUsR0FBRyxDQUFDLEdBQUcsVUFBVSxFQUFFLEdBQUcsYUFBYSxDQUFDLENBQUM7UUFFL0MsT0FBTyxVQUFVLENBQUM7SUFDcEIsQ0FBQztJQUVPLGlCQUFpQixDQUFDLElBQVksRUFBRSxRQUFnQjtRQUN0RCxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDdEQsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUVELE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXZELElBQUksY0FBYyxFQUFFO1lBQ2xCLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFFRCxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRXJELElBQUksQ0FBQyxjQUFjLElBQUksY0FBYyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDbEQsT0FBTyxLQUFLLENBQUM7U0FDZDtRQUVELE1BQU0sbUJBQW1CLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FDdkQsY0FBYyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FDOUIsQ0FBQztRQUVGLE9BQU8sbUJBQW1CLENBQUM7SUFDN0IsQ0FBQzs7aUhBcldVLG1CQUFtQixvRkFxRVIsZUFBZTtxR0FyRTFCLG1CQUFtQiw0eEJBUG5CO1FBQ1Q7WUFDRSxPQUFPLEVBQUUscUJBQXFCO1lBQzlCLFdBQVcsRUFBRSxtQkFBbUI7U0FDakM7S0FDRiw4RUFhVSxpQkFBaUIsMkJBQVUsVUFBVSxrS0NwR2xELG0rQ0ErQ0E7NEZEMENhLG1CQUFtQjtrQkE3Qi9CLFNBQVM7K0JBQ0Usd0NBQXdDLFVBSTFDLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxtQkFDZix1QkFBdUIsQ0FBQyxNQUFNLFFBRXpDO3dCQUNKLEtBQUssRUFBRSxtQkFBbUI7d0JBQzFCLFdBQVcsRUFBRSxJQUFJO3dCQUNqQixpQkFBaUIsRUFBRSxVQUFVO3dCQUM3QixzQkFBc0IsRUFBRSxxQkFBcUI7d0JBQzdDLHNCQUFzQixFQUFFLHFCQUFxQjt3QkFDN0MscUJBQXFCLEVBQUUsWUFBWTt3QkFDbkMscUNBQXFDLEVBQUUsVUFBVTt3QkFDakQscUNBQXFDLEVBQUUsVUFBVTt3QkFDakQsb0NBQW9DLEVBQUUsWUFBWTt3QkFDbEQscUNBQXFDLEVBQUUsVUFBVTt3QkFDakQsa0NBQWtDLEVBQUUsT0FBTzt3QkFDM0MsU0FBUyxFQUFFLHFCQUFxQjtxQkFDakMsYUFDVTt3QkFDVDs0QkFDRSxPQUFPLEVBQUUscUJBQXFCOzRCQUM5QixXQUFXLHFCQUFxQjt5QkFDakM7cUJBQ0Y7OzBCQXVFRSxRQUFROzswQkFBSSxNQUFNOzJCQUFDLGVBQWU7OzBCQUNsQyxRQUFROzswQkFDUixRQUFROzswQkFDUixJQUFJOzswQkFBSSxRQUFROzRDQTVEVCxrQkFBa0I7c0JBRDNCLFNBQVM7dUJBQUMsaUJBQWlCLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFO2dCQUszQyxxQkFBcUI7c0JBRDNCLFNBQVM7dUJBQUMsb0JBQW9CLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQU9sRCxRQUFRO3NCQURQLEtBQUs7Z0JBT04sVUFBVTtzQkFEVCxLQUFLO2dCQU9OLE1BQU07c0JBREwsS0FBSztnQkFJVSxpQkFBaUI7c0JBRGhDLEtBQUs7Z0JBNkdLLEtBQUs7c0JBRGYsS0FBSztnQkEwQkssRUFBRTtzQkFEWixLQUFLO2dCQWlCSyxRQUFRO3NCQURsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIERvQ2hlY2ssXG4gIEVsZW1lbnRSZWYsXG4gIEluamVjdCxcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT3B0aW9uYWwsXG4gIFNlbGYsXG4gIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIENvbnRyb2xWYWx1ZUFjY2Vzc29yLFxuICBGb3JtR3JvdXBEaXJlY3RpdmUsXG4gIE5nQ29udHJvbCxcbiAgTmdGb3JtLFxuICBWYWxpZGF0aW9uRXJyb3JzLFxuICBWYWxpZGF0b3IsXG4gIFZhbGlkYXRvcnNcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgbmFub2lkIH0gZnJvbSAnbmFub2lkJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEJvb2xlYW5JbnB1dCwgY29lcmNlQm9vbGVhblByb3BlcnR5VmFsdWUgfSBmcm9tICcuLi8uLi91dGlsaXRpZXMnO1xuaW1wb3J0IHtcbiAgRXJyb3JTdGF0ZU1hdGNoZXIsXG4gIElDYW5VcGRhdGVFcnJvclN0YXRlLFxuICBJSGFzRXJyb3JTdGF0ZSxcbiAgSW1wZGNGb3JtRmllbGRDb250cm9sLFxuICBJbXBkY0Zvcm1Sb290LFxuICBJTVBEQ19GT1JNX1JPT1QsXG4gIG1peGluRGlzYWJsZWQsXG4gIG1peGluRXJyb3JTdGF0ZSxcbiAgbWl4aW5UYWJJbmRleFxufSBmcm9tICcuLi9mb3JtLWZpZWxkJztcbmltcG9ydCB7IEZpbGVEcm9wRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzJztcblxuY29uc3QgX0ZpbGVVcGxvYWRDb21wb25lbnRCYXNlID0gbWl4aW5UYWJJbmRleChcbiAgbWl4aW5EaXNhYmxlZChcbiAgICBtaXhpbkVycm9yU3RhdGUoXG4gICAgICBjbGFzcyB7XG4gICAgICAgIHB1YmxpYyByZWFkb25seSBzdGF0ZUNoYW5nZXMgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICAgICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICAgIHB1YmxpYyBfZGVmYXVsdEVycm9yU3RhdGVNYXRjaGVyOiBFcnJvclN0YXRlTWF0Y2hlcixcbiAgICAgICAgICBwdWJsaWMgX2Zvcm1Sb290OiBJbXBkY0Zvcm1Sb290LFxuICAgICAgICAgIHB1YmxpYyBfcGFyZW50Rm9ybTogTmdGb3JtLFxuICAgICAgICAgIHB1YmxpYyBfcGFyZW50Rm9ybUdyb3VwOiBGb3JtR3JvdXBEaXJlY3RpdmUsXG4gICAgICAgICAgcHVibGljIG5nQ29udHJvbDogTmdDb250cm9sIHwgbnVsbFxuICAgICAgICApIHt9XG4gICAgICB9XG4gICAgKVxuICApXG4pO1xuXG4vKipcbiAqIFRoZSBgRmlsZVVwbG9hZENvbXBvbmVudGAgKGA8aW1wZGMtZmlsZS11cGxvYWRgIG9yIGA8YW55IGltcGRjLWZpbGUtdXBsb2FkYCkgaXMgYSBmaWxlIHNlbGVjdG9yIHRoYXQgc3VwcG9ydHMgZHJhZyBhbmQgZHJvcC5cbiAqIFRvIHVzZSwgaW1wb3J0IGBGaWxlVXBsb2FkTW9kdWxlYCBvciBhbm90aGVyIG1vZHVsZSB0aGF0IGltcG9ydHMgYW5kIGV4cG9ydHMgdGhhdCBtb2R1bGUgZnJvbSBgQGltcGFydG5lci9kZXNpZ24tY29tcG9uZW50c2AuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2ltcGRjLWZpbGUtdXBsb2FkLCBbaW1wZGMtZmlsZS11cGxvYWRdJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ZpbGUtdXBsb2FkLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZmlsZS11cGxvYWQuY29tcG9uZW50LnNjc3MnXSxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2Rpc2FibGVkJywgJ3RhYkluZGV4J10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWhvc3QtbWV0YWRhdGEtcHJvcGVydHlcbiAgaG9zdDoge1xuICAgIGNsYXNzOiAnaW1wZGMtZmlsZS11cGxvYWQnLFxuICAgICdbYXR0ci5pZF0nOiAnaWQnLFxuICAgICdbYXR0ci50YWJpbmRleF0nOiAndGFiSW5kZXgnLFxuICAgICdbYXR0ci5hcmlhLXJlcXVpcmVkXSc6ICdyZXF1aXJlZC50b1N0cmluZygpJyxcbiAgICAnW2F0dHIuYXJpYS1kaXNhYmxlZF0nOiAnZGlzYWJsZWQudG9TdHJpbmcoKScsXG4gICAgJ1thdHRyLmFyaWEtaW52YWxpZF0nOiAnZXJyb3JTdGF0ZScsXG4gICAgJ1tjbGFzcy5pbXBkYy1maWxlLXVwbG9hZC0tcmVxdWlyZWRdJzogJ3JlcXVpcmVkJyxcbiAgICAnW2NsYXNzLmltcGRjLWZpbGUtdXBsb2FkLS1kaXNhYmxlZF0nOiAnZGlzYWJsZWQnLFxuICAgICdbY2xhc3MuaW1wZGMtZmlsZS11cGxvYWQtLWludmFsaWRdJzogJ2Vycm9yU3RhdGUnLFxuICAgICdbY2xhc3MuaW1wZGMtZmlsZS11cGxvYWQtLW11bHRpcGxlXSc6ICdtdWx0aXBsZScsXG4gICAgJ1tjbGFzcy5pbXBkYy1maWxlLXVwbG9hZC0tZW1wdHldJzogJ2VtcHR5JyxcbiAgICAnKGZvY3VzKSc6ICdfb25Gb2N1cygpOyBmb2N1cygpJ1xuICB9LFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBJbXBkY0Zvcm1GaWVsZENvbnRyb2wsXG4gICAgICB1c2VFeGlzdGluZzogRmlsZVVwbG9hZENvbXBvbmVudFxuICAgIH1cbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBGaWxlVXBsb2FkQ29tcG9uZW50XG4gIGV4dGVuZHMgX0ZpbGVVcGxvYWRDb21wb25lbnRCYXNlXG4gIGltcGxlbWVudHNcbiAgICBDb250cm9sVmFsdWVBY2Nlc3NvcixcbiAgICBWYWxpZGF0b3IsXG4gICAgSW1wZGNGb3JtRmllbGRDb250cm9sPEZpbGUgfCBGaWxlW10+LFxuICAgIElDYW5VcGRhdGVFcnJvclN0YXRlLFxuICAgIElIYXNFcnJvclN0YXRlLFxuICAgIERvQ2hlY2ssXG4gICAgT25EZXN0cm95XG57XG4gIEBWaWV3Q2hpbGQoRmlsZURyb3BEaXJlY3RpdmUsIHsgcmVhZDogRWxlbWVudFJlZiB9KVxuICBwcm90ZWN0ZWQgZmlsZURyb3BFbGVtZW50UmVmITogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgQFZpZXdDaGlsZCgnZmlsZVVwbG9hZElucHV0RWx0JywgeyBzdGF0aWM6IGZhbHNlIH0pXG4gIHB1YmxpYyBmaWxlVXBsb2FkSW5wdXRFbHRSZWYhOiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBjb250cm9sIHN1cHBvcnRzIHVwbG9hZGluZyBtdWx0aXBsZSBmaWxlcy5cbiAgICovXG4gIEBJbnB1dCgpXG4gIG11bHRpcGxlID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIFRoZSBpbnN0cnVjdGlvbmFsIHRleHQgdG8gZGlzcGxheSBpbiB0aGUgZmlsZSB1cGxvYWQgZHJvcHpvbmUuXG4gICAqL1xuICBASW5wdXQoKVxuICB1cGxvYWRUZXh0ID0gJ0RyYWcgYW5kIGRyb3AgZmlsZXMgaGVyZSBvciBjbGljayB0byB1cGxvYWQnO1xuXG4gIC8qKlxuICAgKiBUaGUgY29tbWEtZGVsaW1pdGVkIGxpc3Qgb2YgZmlsZSB0eXBlcyB0aGF0IGFyZSBhY2NlcHRlZCBieSB0aGUgY29udHJvbC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIGFjY2VwdCA9ICcnO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBvdmVycmlkZSBlcnJvclN0YXRlTWF0Y2hlciE6IEVycm9yU3RhdGVNYXRjaGVyO1xuXG4gIHB1YmxpYyBnZXQgY2FuVXBsb2FkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLm11bHRpcGxlIHx8IHRoaXMuX3ZhbHVlLmxlbmd0aCA9PT0gMDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0IGFjY2VwdFR5cGVzKCk6IHN0cmluZ1tdIHtcbiAgICBpZiAoIXRoaXMuYWNjZXB0IHx8ICF0aGlzLmFjY2VwdC5sZW5ndGgpIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5hY2NlcHRcbiAgICAgIC5zcGxpdCgnLCcpXG4gICAgICAubWFwKGEgPT4gYS50cmltKCkpXG4gICAgICAuZmlsdGVyKGEgPT4gISFhKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZW1wdHkoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX3ZhbHVlLmxlbmd0aCA9PT0gMDtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgZmlsZXNGb3JEaXNwbGF5KCk6IHJlYWRvbmx5IEZpbGVbXSB7XG4gICAgcmV0dXJuIHRoaXMuX3ZhbHVlIHx8IFtdO1xuICB9XG5cbiAgcHJpdmF0ZSBfY3ZhT25DaGFuZ2U6IEZ1bmN0aW9uIHwgdW5kZWZpbmVkO1xuICBwcml2YXRlIF9jdmFPblRvdWNoZWQ6IEZ1bmN0aW9uIHwgdW5kZWZpbmVkO1xuICBwcml2YXRlIF91aWQgPSBgaW1wZGMtZmlsZS11cGxvYWQtJHtuYW5vaWQoKX1gO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2NoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBfZGVmYXVsdEVycm9yU3RhdGVNYXRjaGVyOiBFcnJvclN0YXRlTWF0Y2hlcixcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KElNUERDX0ZPUk1fUk9PVCkgX2Zvcm1Sb290OiBJbXBkY0Zvcm1Sb290LFxuICAgIEBPcHRpb25hbCgpIF9wYXJlbnRGb3JtOiBOZ0Zvcm0sXG4gICAgQE9wdGlvbmFsKCkgX3BhcmVudEZvcm1Hcm91cDogRm9ybUdyb3VwRGlyZWN0aXZlLFxuICAgIEBTZWxmKCkgQE9wdGlvbmFsKCkgbmdDb250cm9sOiBOZ0NvbnRyb2wgfCBudWxsXG4gICkge1xuICAgIHN1cGVyKFxuICAgICAgX2RlZmF1bHRFcnJvclN0YXRlTWF0Y2hlcixcbiAgICAgIF9mb3JtUm9vdCxcbiAgICAgIF9wYXJlbnRGb3JtLFxuICAgICAgX3BhcmVudEZvcm1Hcm91cCxcbiAgICAgIG5nQ29udHJvbFxuICAgICk7XG5cbiAgICBpZiAodGhpcy5uZ0NvbnRyb2wpIHtcbiAgICAgIHRoaXMubmdDb250cm9sLnZhbHVlQWNjZXNzb3IgPSB0aGlzO1xuICAgICAgdGhpcy5uZ0NvbnRyb2wuY29udHJvbD8uYWRkVmFsaWRhdG9ycygoKSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLnZhbGlkYXRlKCk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICB0aGlzLmlkID0gdGhpcy5pZDtcbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIHB1YmxpYyBoYW5kbGVDaGFuZ2UoZXZlbnQ6IEV2ZW50KSB7XG4gICAgY29uc3QgZmlsZUxpc3Q6IEZpbGVMaXN0IHwgbnVsbCA9ICgoZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpIHx8IHt9KVxuICAgICAgLmZpbGVzO1xuXG4gICAgaWYgKCFmaWxlTGlzdCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuX21lcmdlTmV3RmlsZXNXaXRoRXhpc3RpbmdGaWxlcyhmaWxlTGlzdCk7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwdWJsaWMgaGFuZGxlRHJvcChldmVudDogRmlsZUxpc3QpIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCB8fCAhZXZlbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLl9tZXJnZU5ld0ZpbGVzV2l0aEV4aXN0aW5nRmlsZXMoZXZlbnQpO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHVibGljIHJlbW92ZUZpbGUoZmlsZUluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICBjb25zdCBuZXdGaWxlc0FyciA9IFsuLi50aGlzLl92YWx1ZV07XG4gICAgbmV3RmlsZXNBcnIuc3BsaWNlKGZpbGVJbmRleCwgMSk7XG5cbiAgICB0aGlzLl91cGRhdGVWYWx1ZUZyb21JbnRlcmFjdGlvbihuZXdGaWxlc0Fycik7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwdWJsaWMgZm9jdXMob3B0aW9ucz86IEZvY3VzT3B0aW9ucyk6IHZvaWQge1xuICAgIHRoaXMuZmlsZURyb3BFbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZm9jdXMob3B0aW9ucyk7XG4gIH1cblxuICAvKiBMaWZlY3ljbGUgSG9va3MgKi9cblxuICAvKiogQGlnbm9yZSAqL1xuICBwdWJsaWMgbmdEb0NoZWNrKCk6IHZvaWQge1xuICAgIHRoaXMudXBkYXRlRXJyb3JTdGF0ZSgpO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuc3RhdGVDaGFuZ2VzLmNvbXBsZXRlKCk7XG4gIH1cblxuICAvKiBJbXBkY0Zvcm1GaWVsZENvbnRyb2wgKi9cblxuICAvKipcbiAgICogVGhlIGZpbGUocykgY3VycmVudGx5IHVwbG9hZGVkIGludG8gdGhlIGNvbnRyb2wuIFJldHVybnMgYEZpbGUgfCBudWxsYCB3aGVuIGBtdWx0aXBsZWAgaXMgYGZhbHNlYCxcbiAgICogYW5kIGBGaWxlW11gIHdoZW4gYG11bHRpcGxlYCBpcyBgdHJ1ZWAuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgZ2V0IHZhbHVlKCk6IEZpbGUgfCBGaWxlW10gfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5tdWx0aXBsZSA/IFsuLi50aGlzLl92YWx1ZV0gOiB0aGlzLl92YWx1ZVswXTtcbiAgfVxuICBwdWJsaWMgc2V0IHZhbHVlKG5ld1ZhbHVlOiBGaWxlIHwgRmlsZVtdIHwgbnVsbCkge1xuICAgIGlmIChuZXdWYWx1ZSAhPT0gdGhpcy5fdmFsdWUpIHtcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KG5ld1ZhbHVlKSkge1xuICAgICAgICB0aGlzLl92YWx1ZSA9IG5ld1ZhbHVlID8gWy4uLm5ld1ZhbHVlXSA6IFtdO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5fdmFsdWUgPSBuZXdWYWx1ZSA/IFtuZXdWYWx1ZV0gOiBbXTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBmaWxlTGlzdCA9IHRoaXMuX2dldEZpbGVMaXN0KHRoaXMuX3ZhbHVlKTtcblxuICAgIGlmIChcbiAgICAgIHRoaXMuZmlsZVVwbG9hZElucHV0RWx0UmVmICYmXG4gICAgICB0aGlzLmZpbGVVcGxvYWRJbnB1dEVsdFJlZi5uYXRpdmVFbGVtZW50XG4gICAgKSB7XG4gICAgICB0aGlzLmZpbGVVcGxvYWRJbnB1dEVsdFJlZi5uYXRpdmVFbGVtZW50LmZpbGVzID0gZmlsZUxpc3Q7XG4gICAgfVxuICB9XG4gIHByaXZhdGUgX3ZhbHVlOiByZWFkb25seSBGaWxlW10gPSBbXTtcblxuICAvKiogQGlnbm9yZSAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgZ2V0IGlkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX2lkO1xuICB9XG4gIHB1YmxpYyBzZXQgaWQodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuX2lkID0gdmFsdWUgfHwgdGhpcy5fdWlkO1xuICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKTtcbiAgfVxuICBwcml2YXRlIF9pZCE6IHN0cmluZztcblxuICAvKipcbiAgICogVXNlZCB0byBzZXQgcmVxdWlyZWRuZXNzIG9mIGNvbnRyb2wgaW4gYSB0ZW1wbGF0ZS1iYXNlZCBtYW5uZXI7XG4gICAqIG5vdCBuZWNlc3Nhcnkgd2hlbiB1c2luZyB0aGUgQW5ndWxhciByZWFjdGl2ZSBmb3JtcyBBUEkgYW5kIGByZXF1aXJlZGAgdmFsaWRhdG9yLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGdldCByZXF1aXJlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5fcmVxdWlyZWQgPz9cbiAgICAgIHRoaXMubmdDb250cm9sPy5jb250cm9sPy5oYXNWYWxpZGF0b3IoVmFsaWRhdG9ycy5yZXF1aXJlZCkgPz9cbiAgICAgIGZhbHNlXG4gICAgKTtcbiAgfVxuICBwdWJsaWMgc2V0IHJlcXVpcmVkKHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICB0aGlzLl9yZXF1aXJlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eVZhbHVlKHZhbHVlKTtcbiAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XG4gIH1cbiAgcHJpdmF0ZSBfcmVxdWlyZWQ6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG5cbiAgcHVibGljIGdldCBmb2N1c2VkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9mb2N1c2VkO1xuICB9XG4gIHByaXZhdGUgX2ZvY3VzZWQgPSBmYWxzZTtcblxuICBwdWJsaWMgcmVhZG9ubHkgY29udHJvbFR5cGU6IHN0cmluZyA9ICdpbXBkYy1maWxlLXVwbG9hZCc7XG4gIHB1YmxpYyByZWFkb25seSBzdXBwb3J0c0FmZml4ZXM6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKiBDb250cm9sVmFsdWVBY2Nlc3NvciAqL1xuXG4gIC8qKiBAaWdub3JlICovXG4gIHB1YmxpYyB3cml0ZVZhbHVlKHZhbHVlOiBGaWxlW10pOiB2b2lkIHtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShmbjogRnVuY3Rpb24pOiB2b2lkIHtcbiAgICB0aGlzLl9jdmFPbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHVibGljIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBGdW5jdGlvbik6IHZvaWQge1xuICAgIHRoaXMuX2N2YU9uVG91Y2hlZCA9IGZuO1xuICAgIHRoaXMuX2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHVibGljIHNldERpc2FibGVkU3RhdGU/KGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgfVxuXG4gIC8qIFZhbGlkYXRvciAqL1xuXG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBwdWJsaWMgdmFsaWRhdGUoKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xuICAgIHJldHVybiAhdGhpcy5kaXNhYmxlZCAmJiB0aGlzLnJlcXVpcmVkICYmIHRoaXMuX3ZhbHVlLmxlbmd0aCA9PT0gMFxuICAgICAgPyB7IHJlcXVpcmVkOiB0cnVlIH1cbiAgICAgIDogbnVsbDtcbiAgfVxuXG4gIC8qIEludGVybmFscyAqL1xuXG4gIHByb3RlY3RlZCBfb25Gb2N1cygpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHRoaXMuX2ZvY3VzZWQgPSB0cnVlO1xuICAgICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBfb25CbHVyKCk6IHZvaWQge1xuICAgIHRoaXMuX2ZvY3VzZWQgPSBmYWxzZTtcblxuICAgIGlmICghdGhpcy5kaXNhYmxlZCkge1xuICAgICAgdGhpcy5fY3ZhT25Ub3VjaGVkICYmIHRoaXMuX2N2YU9uVG91Y2hlZCgpO1xuICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gICAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfdXBkYXRlVmFsdWVGcm9tSW50ZXJhY3Rpb24obmV3VmFsdWU6IEZpbGVbXSk6IHZvaWQge1xuICAgIHRoaXMudmFsdWUgPSBuZXdWYWx1ZTtcblxuICAgIHRoaXMuX2N2YU9uQ2hhbmdlICYmIHRoaXMuX2N2YU9uQ2hhbmdlKHRoaXMudmFsdWUpO1xuICAgIHRoaXMuX2N2YU9uVG91Y2hlZCAmJiB0aGlzLl9jdmFPblRvdWNoZWQoKTtcbiAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XG4gIH1cblxuICBwcml2YXRlIF9tZXJnZU5ld0ZpbGVzV2l0aEV4aXN0aW5nRmlsZXMoZmlsZUxpc3Q6IEZpbGVMaXN0IHwgbnVsbCkge1xuICAgIGlmICghZmlsZUxpc3QpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5fdmFsdWUgJiYgdGhpcy5fdmFsdWUubGVuZ3RoID09IDEgJiYgIXRoaXMubXVsdGlwbGUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCB0ZW1wRmlsZXMgPSBbLi4udGhpcy5fdmFsdWVdO1xuXG4gICAgQXJyYXkuZnJvbShmaWxlTGlzdCkuZm9yRWFjaChuZXdGaWxlID0+IHtcbiAgICAgIGlmICghdGhpcy5tdWx0aXBsZSAmJiB0ZW1wRmlsZXMubGVuZ3RoID4gMCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBjb25zdCBleGlzdGluZ0ZpbGUgPSB0ZW1wRmlsZXMuZmluZChcbiAgICAgICAgZXhpc3RpbmcgPT5cbiAgICAgICAgICBleGlzdGluZy5uYW1lID09PSBuZXdGaWxlLm5hbWUgJiZcbiAgICAgICAgICBleGlzdGluZy5sYXN0TW9kaWZpZWQgPT09IG5ld0ZpbGUubGFzdE1vZGlmaWVkICYmXG4gICAgICAgICAgZXhpc3Rpbmcuc2l6ZSA9PT0gbmV3RmlsZS5zaXplXG4gICAgICApO1xuXG4gICAgICBpZiAoZXhpc3RpbmdGaWxlKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMuX2FjY2VwdGVkRmlsZVR5cGUobmV3RmlsZS50eXBlLCBuZXdGaWxlLm5hbWUpKSB7XG4gICAgICAgIHRlbXBGaWxlcy5wdXNoKG5ld0ZpbGUpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdGhpcy5fdXBkYXRlVmFsdWVGcm9tSW50ZXJhY3Rpb24odGVtcEZpbGVzKTtcbiAgfVxuXG4gIHByaXZhdGUgX2dldEZpbGVMaXN0KGZpbGVzOiByZWFkb25seSBGaWxlW10pOiBGaWxlTGlzdCB7XG4gICAgY29uc3QgZGF0YVRyYW5zZmVyID0gbmV3IERhdGFUcmFuc2ZlcigpO1xuXG4gICAgZmlsZXMuZm9yRWFjaChmaWxlID0+IHtcbiAgICAgIGRhdGFUcmFuc2Zlci5pdGVtcy5hZGQoZmlsZSk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gZGF0YVRyYW5zZmVyLmZpbGVzO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0RXh0ZW5zaW9ucyhmaWxlTmFtZTogc3RyaW5nKTogc3RyaW5nW10ge1xuICAgIGNvbnN0IG5hbWVTZWdtZW50cyA9IGZpbGVOYW1lLnNwbGl0KCcuJyk7XG4gICAgbGV0IGV4dGVuc2lvbnM6IHN0cmluZ1tdID0gW107XG5cbiAgICBpZiAobmFtZVNlZ21lbnRzLmxlbmd0aCA8IDIpIHtcbiAgICAgIHJldHVybiBleHRlbnNpb25zO1xuICAgIH1cblxuICAgIGNvbnN0IGV4dGVuc2lvbiA9IGAuJHtuYW1lU2VnbWVudHMuc2xpY2UoMSkuam9pbignLicpfWA7XG4gICAgZXh0ZW5zaW9ucy5wdXNoKGV4dGVuc2lvbik7XG5cbiAgICBpZiAobmFtZVNlZ21lbnRzLmxlbmd0aCA9PT0gMikge1xuICAgICAgcmV0dXJuIGV4dGVuc2lvbnM7XG4gICAgfVxuXG4gICAgY29uc3Qgc3ViID0gYC4ke25hbWVTZWdtZW50cy5zbGljZSgyKS5qb2luKCcuJyl9YDtcbiAgICBjb25zdCBzdWJFeHRlbnNpb25zID0gdGhpcy5fZ2V0RXh0ZW5zaW9ucyhzdWIpO1xuICAgIGV4dGVuc2lvbnMgPSBbLi4uZXh0ZW5zaW9ucywgLi4uc3ViRXh0ZW5zaW9uc107XG5cbiAgICByZXR1cm4gZXh0ZW5zaW9ucztcbiAgfVxuXG4gIHByaXZhdGUgX2FjY2VwdGVkRmlsZVR5cGUodHlwZTogc3RyaW5nLCBmaWxlTmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgaWYgKCF0aGlzLmFjY2VwdFR5cGVzIHx8IHRoaXMuYWNjZXB0VHlwZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBjb25zdCBhY2NlcHRlZEJ5VHlwZSA9IHRoaXMuYWNjZXB0VHlwZXMuaW5jbHVkZXModHlwZSk7XG5cbiAgICBpZiAoYWNjZXB0ZWRCeVR5cGUpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGNvbnN0IGZpbGVFeHRlbnNpb25zID0gdGhpcy5fZ2V0RXh0ZW5zaW9ucyhmaWxlTmFtZSk7XG5cbiAgICBpZiAoIWZpbGVFeHRlbnNpb25zIHx8IGZpbGVFeHRlbnNpb25zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGNvbnN0IGFjY2VwdGVkQnlFeHRlbnNpb24gPSB0aGlzLmFjY2VwdFR5cGVzLnNvbWUodHlwZSA9PlxuICAgICAgZmlsZUV4dGVuc2lvbnMuaW5jbHVkZXModHlwZSlcbiAgICApO1xuXG4gICAgcmV0dXJuIGFjY2VwdGVkQnlFeHRlbnNpb247XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJpbXBkYy1maWxlLXVwbG9hZC1jb250YWluZXJcIj5cbiAgPGRpdlxuICAgIGNsYXNzPVwiaW1wZGMtZmlsZS11cGxvYWQtZHJvcHpvbmVcIlxuICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICdoaWRlLXVwbG9hZCc6ICFjYW5VcGxvYWRcbiAgICB9XCJcbiAgICBpbXBkY0ZpbGVEcm9wXG4gICAgKGZpbGVzRHJvcHBlZCk9XCJoYW5kbGVEcm9wKCRldmVudClcIlxuICAgIChrZXl1cC5lbnRlcik9XCJmaWxlVXBsb2FkSW5wdXRFbHQuY2xpY2soKVwiXG4gICAgKGZvY3VzKT1cIl9vbkZvY3VzKClcIlxuICAgIChibHVyKT1cIl9vbkJsdXIoKVwiXG4gICAgW3RhYmluZGV4XT1cImRpc2FibGVkID8gJy0xJyA6ICcwJ1wiPlxuICAgIDxpbnB1dFxuICAgICAgY2xhc3M9XCJmaWxlLXVwbG9hZC1pbnB1dFwiXG4gICAgICB0eXBlPVwiZmlsZVwiXG4gICAgICAjZmlsZVVwbG9hZElucHV0RWx0XG4gICAgICBbbXVsdGlwbGVdPVwibXVsdGlwbGVcIlxuICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgIFthY2NlcHRdPVwiYWNjZXB0XCJcbiAgICAgIChjaGFuZ2UpPVwiaGFuZGxlQ2hhbmdlKCRldmVudClcIlxuICAgICAgdGFiaW5kZXg9XCItMVwiIC8+XG4gICAgPHNwYW5cbiAgICAgIGltcGRjLWljb25cbiAgICAgIHRoZW1lPVwicmVndWxhclwiXG4gICAgICBuYW1lPVwiY2xvdWQtdXBsb2FkLWFsdFwiXG4gICAgICBjbGFzcz1cInVwbG9hZC1pY29uXCI+PC9zcGFuPlxuICAgIDxwIGNsYXNzPVwidXBsb2FkLXRleHRcIj57eyB1cGxvYWRUZXh0IH19PC9wPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImN1cnJlbnQtZmlsZXNcIiAqbmdJZj1cImZpbGVzRm9yRGlzcGxheS5sZW5ndGhcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBmaWxlIG9mIGZpbGVzRm9yRGlzcGxheTsgbGV0IGlkeCA9IGluZGV4XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiY3VycmVudC1maWxlXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjdXJyZW50LWZpbGUtZGV0YWlsc1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJuYW1lXCI+e3sgZmlsZS5uYW1lIH19PC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNpemVcIj57eyBmaWxlLnNpemUgfCBodW1hblJlYWRhYmxlQnl0ZVNpemUgfX08L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgKm5nSWY9XCIhZGlzYWJsZWRcIiBjbGFzcz1cImN1cnJlbnQtZmlsZS1hY3Rpb25zXCI+XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgaW1wZGNCdXR0b25cbiAgICAgICAgICAgIHRoZW1lPVwiY2xvc2VcIlxuICAgICAgICAgICAgdGFiaW5kZXg9XCIwXCJcbiAgICAgICAgICAgIChrZXl1cC5lbnRlcik9XCJyZW1vdmVGaWxlKGlkeClcIlxuICAgICAgICAgICAgKGNsaWNrKT1cInJlbW92ZUZpbGUoaWR4KVwiPjwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
335
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzaWduLWNvbXBvbmVudHMvc3JjL2xpYi9maWxlLXVwbG9hZC9maWxlLXVwbG9hZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tY29tcG9uZW50cy9zcmMvbGliL2ZpbGUtdXBsb2FkL2ZpbGUtdXBsb2FkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFFdkIsU0FBUyxFQUVULFVBQVUsRUFDVixNQUFNLEVBQ04sS0FBSyxFQUVMLFFBQVEsRUFDUixJQUFJLEVBQ0osU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFPTCxVQUFVLEVBQ1gsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQ2hDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFnQiwwQkFBMEIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNFLE9BQU8sRUFJTCxxQkFBcUIsRUFFckIsZUFBZSxFQUNmLGFBQWEsRUFDYixlQUFlLEVBQ2YsYUFBYSxFQUNkLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7Ozs7Ozs7O0FBRWpELE1BQU0sd0JBQXdCLEdBQUcsYUFBYSxDQUM1QyxhQUFhLENBQ1gsZUFBZSxDQUNiO0lBR0UsWUFDUyx5QkFBNEMsRUFDNUMsU0FBd0IsRUFDeEIsV0FBbUIsRUFDbkIsZ0JBQW9DLEVBQ3BDLFNBQTJCO1FBSjNCLDhCQUF5QixHQUF6Qix5QkFBeUIsQ0FBbUI7UUFDNUMsY0FBUyxHQUFULFNBQVMsQ0FBZTtRQUN4QixnQkFBVyxHQUFYLFdB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QkFDN0MscUJBQXFCLEVBQUUsWUFBWTt3QkFDbkMscUNBQXFDLEVBQUUsVUFBVTt3QkFDakQscUNBQXFDLEVBQUUsVUFBVTt3QkFDakQsb0NBQW9DLEVBQUUsWUFBWTt3QkFDbEQscUNBQXFDLEVBQUUsVUFBVTt3QkFDakQsa0NBQWtDLEVBQUUsT0FBTzt3QkFDM0MsU0FBUyxFQUFFLHFCQUFxQjtxQkFDakMsYUFDVTt3QkFDVDs0QkFDRSxPQUFPLEVBQUUscUJBQXFCOzRCQUM5QixXQUFXLHFCQUFxQjt5QkFDakM7cUJBQ0Y7OzBCQXVFRSxRQUFROzswQkFBSSxNQUFNOzJCQUFDLGVBQWU7OzBCQUNsQyxRQUFROzswQkFDUixRQUFROzswQkFDUixJQUFJOzswQkFBSSxRQUFRO3lDQTVEVCxrQkFBa0I7c0JBRDNCLFNBQVM7dUJBQUMsaUJBQWlCLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFO2dCQUszQyxxQkFBcUI7c0JBRDNCLFNBQVM7dUJBQUMsb0JBQW9CLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQU9sRCxRQUFRO3NCQURQLEtBQUs7Z0JBT04sVUFBVTtzQkFEVCxLQUFLO2dCQU9OLE1BQU07c0JBREwsS0FBSztnQkFJVSxpQkFBaUI7c0JBRGhDLEtBQUs7Z0JBNkdLLEtBQUs7c0JBRGYsS0FBSztnQkEwQkssRUFBRTtzQkFEWixLQUFLO2dCQWlCSyxRQUFRO3NCQURsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIERvQ2hlY2ssXG4gIEVsZW1lbnRSZWYsXG4gIEluamVjdCxcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT3B0aW9uYWwsXG4gIFNlbGYsXG4gIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIENvbnRyb2xWYWx1ZUFjY2Vzc29yLFxuICBGb3JtR3JvdXBEaXJlY3RpdmUsXG4gIE5nQ29udHJvbCxcbiAgTmdGb3JtLFxuICBWYWxpZGF0aW9uRXJyb3JzLFxuICBWYWxpZGF0b3IsXG4gIFZhbGlkYXRvcnNcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgbmFub2lkIH0gZnJvbSAnbmFub2lkJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEJvb2xlYW5JbnB1dCwgY29lcmNlQm9vbGVhblByb3BlcnR5VmFsdWUgfSBmcm9tICcuLi8uLi91dGlsaXRpZXMnO1xuaW1wb3J0IHtcbiAgRXJyb3JTdGF0ZU1hdGNoZXIsXG4gIElDYW5VcGRhdGVFcnJvclN0YXRlLFxuICBJSGFzRXJyb3JTdGF0ZSxcbiAgSW1wZGNGb3JtRmllbGRDb250cm9sLFxuICBJbXBkY0Zvcm1Sb290LFxuICBJTVBEQ19GT1JNX1JPT1QsXG4gIG1peGluRGlzYWJsZWQsXG4gIG1peGluRXJyb3JTdGF0ZSxcbiAgbWl4aW5UYWJJbmRleFxufSBmcm9tICcuLi9mb3JtLWZpZWxkJztcbmltcG9ydCB7IEZpbGVEcm9wRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzJztcblxuY29uc3QgX0ZpbGVVcGxvYWRDb21wb25lbnRCYXNlID0gbWl4aW5UYWJJbmRleChcbiAgbWl4aW5EaXNhYmxlZChcbiAgICBtaXhpbkVycm9yU3RhdGUoXG4gICAgICBjbGFzcyB7XG4gICAgICAgIHB1YmxpYyByZWFkb25seSBzdGF0ZUNoYW5nZXMgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICAgICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICAgIHB1YmxpYyBfZGVmYXVsdEVycm9yU3RhdGVNYXRjaGVyOiBFcnJvclN0YXRlTWF0Y2hlcixcbiAgICAgICAgICBwdWJsaWMgX2Zvcm1Sb290OiBJbXBkY0Zvcm1Sb290LFxuICAgICAgICAgIHB1YmxpYyBfcGFyZW50Rm9ybTogTmdGb3JtLFxuICAgICAgICAgIHB1YmxpYyBfcGFyZW50Rm9ybUdyb3VwOiBGb3JtR3JvdXBEaXJlY3RpdmUsXG4gICAgICAgICAgcHVibGljIG5nQ29udHJvbDogTmdDb250cm9sIHwgbnVsbFxuICAgICAgICApIHt9XG4gICAgICB9XG4gICAgKVxuICApXG4pO1xuXG4vKipcbiAqIFRoZSBgRmlsZVVwbG9hZENvbXBvbmVudGAgKGA8aW1wZGMtZmlsZS11cGxvYWRgIG9yIGA8YW55IGltcGRjLWZpbGUtdXBsb2FkYCkgaXMgYSBmaWxlIHNlbGVjdG9yIHRoYXQgc3VwcG9ydHMgZHJhZyBhbmQgZHJvcC5cbiAqIFRvIHVzZSwgaW1wb3J0IGBGaWxlVXBsb2FkTW9kdWxlYCBvciBhbm90aGVyIG1vZHVsZSB0aGF0IGltcG9ydHMgYW5kIGV4cG9ydHMgdGhhdCBtb2R1bGUgZnJvbSBgQGltcGFydG5lci9kZXNpZ24tY29tcG9uZW50c2AuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2ltcGRjLWZpbGUtdXBsb2FkLCBbaW1wZGMtZmlsZS11cGxvYWRdJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ZpbGUtdXBsb2FkLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZmlsZS11cGxvYWQuY29tcG9uZW50LnNjc3MnXSxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2Rpc2FibGVkJywgJ3RhYkluZGV4J10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWhvc3QtbWV0YWRhdGEtcHJvcGVydHlcbiAgaG9zdDoge1xuICAgIGNsYXNzOiAnaW1wZGMtZmlsZS11cGxvYWQnLFxuICAgICdbYXR0ci5pZF0nOiAnaWQnLFxuICAgICdbYXR0ci50YWJpbmRleF0nOiAndGFiSW5kZXgnLFxuICAgICdbYXR0ci5hcmlhLXJlcXVpcmVkXSc6ICdyZXF1aXJlZC50b1N0cmluZygpJyxcbiAgICAnW2F0dHIuYXJpYS1kaXNhYmxlZF0nOiAnZGlzYWJsZWQudG9TdHJpbmcoKScsXG4gICAgJ1thdHRyLmFyaWEtaW52YWxpZF0nOiAnZXJyb3JTdGF0ZScsXG4gICAgJ1tjbGFzcy5pbXBkYy1maWxlLXVwbG9hZC0tcmVxdWlyZWRdJzogJ3JlcXVpcmVkJyxcbiAgICAnW2NsYXNzLmltcGRjLWZpbGUtdXBsb2FkLS1kaXNhYmxlZF0nOiAnZGlzYWJsZWQnLFxuICAgICdbY2xhc3MuaW1wZGMtZmlsZS11cGxvYWQtLWludmFsaWRdJzogJ2Vycm9yU3RhdGUnLFxuICAgICdbY2xhc3MuaW1wZGMtZmlsZS11cGxvYWQtLW11bHRpcGxlXSc6ICdtdWx0aXBsZScsXG4gICAgJ1tjbGFzcy5pbXBkYy1maWxlLXVwbG9hZC0tZW1wdHldJzogJ2VtcHR5JyxcbiAgICAnKGZvY3VzKSc6ICdfb25Gb2N1cygpOyBmb2N1cygpJ1xuICB9LFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBJbXBkY0Zvcm1GaWVsZENvbnRyb2wsXG4gICAgICB1c2VFeGlzdGluZzogRmlsZVVwbG9hZENvbXBvbmVudFxuICAgIH1cbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBGaWxlVXBsb2FkQ29tcG9uZW50XG4gIGV4dGVuZHMgX0ZpbGVVcGxvYWRDb21wb25lbnRCYXNlXG4gIGltcGxlbWVudHNcbiAgICBDb250cm9sVmFsdWVBY2Nlc3NvcixcbiAgICBWYWxpZGF0b3IsXG4gICAgSW1wZGNGb3JtRmllbGRDb250cm9sPEZpbGUgfCBGaWxlW10+LFxuICAgIElDYW5VcGRhdGVFcnJvclN0YXRlLFxuICAgIElIYXNFcnJvclN0YXRlLFxuICAgIERvQ2hlY2ssXG4gICAgT25EZXN0cm95XG57XG4gIEBWaWV3Q2hpbGQoRmlsZURyb3BEaXJlY3RpdmUsIHsgcmVhZDogRWxlbWVudFJlZiB9KVxuICBwcm90ZWN0ZWQgZmlsZURyb3BFbGVtZW50UmVmITogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgQFZpZXdDaGlsZCgnZmlsZVVwbG9hZElucHV0RWx0JywgeyBzdGF0aWM6IGZhbHNlIH0pXG4gIHB1YmxpYyBmaWxlVXBsb2FkSW5wdXRFbHRSZWYhOiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBjb250cm9sIHN1cHBvcnRzIHVwbG9hZGluZyBtdWx0aXBsZSBmaWxlcy5cbiAgICovXG4gIEBJbnB1dCgpXG4gIG11bHRpcGxlID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIFRoZSBpbnN0cnVjdGlvbmFsIHRleHQgdG8gZGlzcGxheSBpbiB0aGUgZmlsZSB1cGxvYWQgZHJvcHpvbmUuXG4gICAqL1xuICBASW5wdXQoKVxuICB1cGxvYWRUZXh0ID0gJ0RyYWcgYW5kIGRyb3AgZmlsZXMgaGVyZSBvciBjbGljayB0byB1cGxvYWQnO1xuXG4gIC8qKlxuICAgKiBUaGUgY29tbWEtZGVsaW1pdGVkIGxpc3Qgb2YgZmlsZSB0eXBlcyB0aGF0IGFyZSBhY2NlcHRlZCBieSB0aGUgY29udHJvbC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIGFjY2VwdCA9ICcnO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBvdmVycmlkZSBlcnJvclN0YXRlTWF0Y2hlciE6IEVycm9yU3RhdGVNYXRjaGVyO1xuXG4gIHB1YmxpYyBnZXQgY2FuVXBsb2FkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLm11bHRpcGxlIHx8IHRoaXMuX3ZhbHVlLmxlbmd0aCA9PT0gMDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0IGFjY2VwdFR5cGVzKCk6IHN0cmluZ1tdIHtcbiAgICBpZiAoIXRoaXMuYWNjZXB0IHx8ICF0aGlzLmFjY2VwdC5sZW5ndGgpIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5hY2NlcHRcbiAgICAgIC5zcGxpdCgnLCcpXG4gICAgICAubWFwKGEgPT4gYS50cmltKCkpXG4gICAgICAuZmlsdGVyKGEgPT4gISFhKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZW1wdHkoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX3ZhbHVlLmxlbmd0aCA9PT0gMDtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgZmlsZXNGb3JEaXNwbGF5KCk6IHJlYWRvbmx5IEZpbGVbXSB7XG4gICAgcmV0dXJuIHRoaXMuX3ZhbHVlIHx8IFtdO1xuICB9XG5cbiAgcHJpdmF0ZSBfY3ZhT25DaGFuZ2U6IEZ1bmN0aW9uIHwgdW5kZWZpbmVkO1xuICBwcml2YXRlIF9jdmFPblRvdWNoZWQ6IEZ1bmN0aW9uIHwgdW5kZWZpbmVkO1xuICBwcml2YXRlIF91aWQgPSBgaW1wZGMtZmlsZS11cGxvYWQtJHtuYW5vaWQoKX1gO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2NoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBfZGVmYXVsdEVycm9yU3RhdGVNYXRjaGVyOiBFcnJvclN0YXRlTWF0Y2hlcixcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KElNUERDX0ZPUk1fUk9PVCkgX2Zvcm1Sb290OiBJbXBkY0Zvcm1Sb290LFxuICAgIEBPcHRpb25hbCgpIF9wYXJlbnRGb3JtOiBOZ0Zvcm0sXG4gICAgQE9wdGlvbmFsKCkgX3BhcmVudEZvcm1Hcm91cDogRm9ybUdyb3VwRGlyZWN0aXZlLFxuICAgIEBTZWxmKCkgQE9wdGlvbmFsKCkgbmdDb250cm9sOiBOZ0NvbnRyb2wgfCBudWxsXG4gICkge1xuICAgIHN1cGVyKFxuICAgICAgX2RlZmF1bHRFcnJvclN0YXRlTWF0Y2hlcixcbiAgICAgIF9mb3JtUm9vdCxcbiAgICAgIF9wYXJlbnRGb3JtLFxuICAgICAgX3BhcmVudEZvcm1Hcm91cCxcbiAgICAgIG5nQ29udHJvbFxuICAgICk7XG5cbiAgICBpZiAodGhpcy5uZ0NvbnRyb2wpIHtcbiAgICAgIHRoaXMubmdDb250cm9sLnZhbHVlQWNjZXNzb3IgPSB0aGlzO1xuICAgICAgdGhpcy5uZ0NvbnRyb2wuY29udHJvbD8uYWRkVmFsaWRhdG9ycygoKSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLnZhbGlkYXRlKCk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICB0aGlzLmlkID0gdGhpcy5pZDtcbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIHB1YmxpYyBoYW5kbGVDaGFuZ2UoZXZlbnQ6IEV2ZW50KSB7XG4gICAgY29uc3QgZmlsZUxpc3Q6IEZpbGVMaXN0IHwgbnVsbCA9ICgoZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpIHx8IHt9KVxuICAgICAgLmZpbGVzO1xuXG4gICAgaWYgKCFmaWxlTGlzdCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuX21lcmdlTmV3RmlsZXNXaXRoRXhpc3RpbmdGaWxlcyhmaWxlTGlzdCk7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwdWJsaWMgaGFuZGxlRHJvcChldmVudDogRmlsZUxpc3QpIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCB8fCAhZXZlbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLl9tZXJnZU5ld0ZpbGVzV2l0aEV4aXN0aW5nRmlsZXMoZXZlbnQpO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHVibGljIHJlbW92ZUZpbGUoZmlsZUluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICBjb25zdCBuZXdGaWxlc0FyciA9IFsuLi50aGlzLl92YWx1ZV07XG4gICAgbmV3RmlsZXNBcnIuc3BsaWNlKGZpbGVJbmRleCwgMSk7XG5cbiAgICB0aGlzLl91cGRhdGVWYWx1ZUZyb21JbnRlcmFjdGlvbihuZXdGaWxlc0Fycik7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwdWJsaWMgZm9jdXMob3B0aW9ucz86IEZvY3VzT3B0aW9ucyk6IHZvaWQge1xuICAgIHRoaXMuZmlsZURyb3BFbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZm9jdXMob3B0aW9ucyk7XG4gIH1cblxuICAvKiBMaWZlY3ljbGUgSG9va3MgKi9cblxuICAvKiogQGlnbm9yZSAqL1xuICBwdWJsaWMgbmdEb0NoZWNrKCk6IHZvaWQge1xuICAgIHRoaXMudXBkYXRlRXJyb3JTdGF0ZSgpO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuc3RhdGVDaGFuZ2VzLmNvbXBsZXRlKCk7XG4gIH1cblxuICAvKiBJbXBkY0Zvcm1GaWVsZENvbnRyb2wgKi9cblxuICAvKipcbiAgICogVGhlIGZpbGUocykgY3VycmVudGx5IHVwbG9hZGVkIGludG8gdGhlIGNvbnRyb2wuIFJldHVybnMgYEZpbGUgfCBudWxsYCB3aGVuIGBtdWx0aXBsZWAgaXMgYGZhbHNlYCxcbiAgICogYW5kIGBGaWxlW11gIHdoZW4gYG11bHRpcGxlYCBpcyBgdHJ1ZWAuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgZ2V0IHZhbHVlKCk6IEZpbGUgfCBGaWxlW10gfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5tdWx0aXBsZSA/IFsuLi50aGlzLl92YWx1ZV0gOiB0aGlzLl92YWx1ZVswXTtcbiAgfVxuICBwdWJsaWMgc2V0IHZhbHVlKG5ld1ZhbHVlOiBGaWxlIHwgRmlsZVtdIHwgbnVsbCkge1xuICAgIGlmIChuZXdWYWx1ZSAhPT0gdGhpcy5fdmFsdWUpIHtcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KG5ld1ZhbHVlKSkge1xuICAgICAgICB0aGlzLl92YWx1ZSA9IG5ld1ZhbHVlID8gWy4uLm5ld1ZhbHVlXSA6IFtdO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5fdmFsdWUgPSBuZXdWYWx1ZSA/IFtuZXdWYWx1ZV0gOiBbXTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBmaWxlTGlzdCA9IHRoaXMuX2dldEZpbGVMaXN0KHRoaXMuX3ZhbHVlKTtcblxuICAgIGlmIChcbiAgICAgIHRoaXMuZmlsZVVwbG9hZElucHV0RWx0UmVmICYmXG4gICAgICB0aGlzLmZpbGVVcGxvYWRJbnB1dEVsdFJlZi5uYXRpdmVFbGVtZW50XG4gICAgKSB7XG4gICAgICB0aGlzLmZpbGVVcGxvYWRJbnB1dEVsdFJlZi5uYXRpdmVFbGVtZW50LmZpbGVzID0gZmlsZUxpc3Q7XG4gICAgfVxuICB9XG4gIHByaXZhdGUgX3ZhbHVlOiByZWFkb25seSBGaWxlW10gPSBbXTtcblxuICAvKiogQGlnbm9yZSAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgZ2V0IGlkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX2lkO1xuICB9XG4gIHB1YmxpYyBzZXQgaWQodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuX2lkID0gdmFsdWUgfHwgdGhpcy5fdWlkO1xuICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKTtcbiAgfVxuICBwcml2YXRlIF9pZCE6IHN0cmluZztcblxuICAvKipcbiAgICogVXNlZCB0byBzZXQgcmVxdWlyZWRuZXNzIG9mIGNvbnRyb2wgaW4gYSB0ZW1wbGF0ZS1iYXNlZCBtYW5uZXI7XG4gICAqIG5vdCBuZWNlc3Nhcnkgd2hlbiB1c2luZyB0aGUgQW5ndWxhciByZWFjdGl2ZSBmb3JtcyBBUEkgYW5kIGByZXF1aXJlZGAgdmFsaWRhdG9yLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGdldCByZXF1aXJlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5fcmVxdWlyZWQgPz9cbiAgICAgIHRoaXMubmdDb250cm9sPy5jb250cm9sPy5oYXNWYWxpZGF0b3IoVmFsaWRhdG9ycy5yZXF1aXJlZCkgPz9cbiAgICAgIGZhbHNlXG4gICAgKTtcbiAgfVxuICBwdWJsaWMgc2V0IHJlcXVpcmVkKHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICB0aGlzLl9yZXF1aXJlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eVZhbHVlKHZhbHVlKTtcbiAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XG4gIH1cbiAgcHJpdmF0ZSBfcmVxdWlyZWQ6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG5cbiAgcHVibGljIGdldCBmb2N1c2VkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9mb2N1c2VkO1xuICB9XG4gIHByaXZhdGUgX2ZvY3VzZWQgPSBmYWxzZTtcblxuICBwdWJsaWMgcmVhZG9ubHkgY29udHJvbFR5cGU6IHN0cmluZyA9ICdpbXBkYy1maWxlLXVwbG9hZCc7XG4gIHB1YmxpYyByZWFkb25seSBzdXBwb3J0c0FmZml4ZXM6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKiBDb250cm9sVmFsdWVBY2Nlc3NvciAqL1xuXG4gIC8qKiBAaWdub3JlICovXG4gIHB1YmxpYyB3cml0ZVZhbHVlKHZhbHVlOiBGaWxlW10pOiB2b2lkIHtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShmbjogRnVuY3Rpb24pOiB2b2lkIHtcbiAgICB0aGlzLl9jdmFPbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHVibGljIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBGdW5jdGlvbik6IHZvaWQge1xuICAgIHRoaXMuX2N2YU9uVG91Y2hlZCA9IGZuO1xuICAgIHRoaXMuX2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHVibGljIHNldERpc2FibGVkU3RhdGU/KGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgfVxuXG4gIC8qIFZhbGlkYXRvciAqL1xuXG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBwdWJsaWMgdmFsaWRhdGUoKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xuICAgIHJldHVybiAhdGhpcy5kaXNhYmxlZCAmJiB0aGlzLnJlcXVpcmVkICYmIHRoaXMuX3ZhbHVlLmxlbmd0aCA9PT0gMFxuICAgICAgPyB7IHJlcXVpcmVkOiB0cnVlIH1cbiAgICAgIDogbnVsbDtcbiAgfVxuXG4gIC8qIEludGVybmFscyAqL1xuXG4gIHByb3RlY3RlZCBfb25Gb2N1cygpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHRoaXMuX2ZvY3VzZWQgPSB0cnVlO1xuICAgICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBfb25CbHVyKCk6IHZvaWQge1xuICAgIHRoaXMuX2ZvY3VzZWQgPSBmYWxzZTtcblxuICAgIGlmICghdGhpcy5kaXNhYmxlZCkge1xuICAgICAgdGhpcy5fY3ZhT25Ub3VjaGVkICYmIHRoaXMuX2N2YU9uVG91Y2hlZCgpO1xuICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gICAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfdXBkYXRlVmFsdWVGcm9tSW50ZXJhY3Rpb24obmV3VmFsdWU6IEZpbGVbXSk6IHZvaWQge1xuICAgIHRoaXMudmFsdWUgPSBuZXdWYWx1ZTtcblxuICAgIHRoaXMuX2N2YU9uQ2hhbmdlICYmIHRoaXMuX2N2YU9uQ2hhbmdlKHRoaXMudmFsdWUpO1xuICAgIHRoaXMuX2N2YU9uVG91Y2hlZCAmJiB0aGlzLl9jdmFPblRvdWNoZWQoKTtcbiAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XG4gIH1cblxuICBwcml2YXRlIF9tZXJnZU5ld0ZpbGVzV2l0aEV4aXN0aW5nRmlsZXMoZmlsZUxpc3Q6IEZpbGVMaXN0IHwgbnVsbCkge1xuICAgIGlmICghZmlsZUxpc3QpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5fdmFsdWUgJiYgdGhpcy5fdmFsdWUubGVuZ3RoID09IDEgJiYgIXRoaXMubXVsdGlwbGUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCB0ZW1wRmlsZXMgPSBbLi4udGhpcy5fdmFsdWVdO1xuXG4gICAgQXJyYXkuZnJvbShmaWxlTGlzdCkuZm9yRWFjaChuZXdGaWxlID0+IHtcbiAgICAgIGlmICghdGhpcy5tdWx0aXBsZSAmJiB0ZW1wRmlsZXMubGVuZ3RoID4gMCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBjb25zdCBleGlzdGluZ0ZpbGUgPSB0ZW1wRmlsZXMuZmluZChcbiAgICAgICAgZXhpc3RpbmcgPT5cbiAgICAgICAgICBleGlzdGluZy5uYW1lID09PSBuZXdGaWxlLm5hbWUgJiZcbiAgICAgICAgICBleGlzdGluZy5sYXN0TW9kaWZpZWQgPT09IG5ld0ZpbGUubGFzdE1vZGlmaWVkICYmXG4gICAgICAgICAgZXhpc3Rpbmcuc2l6ZSA9PT0gbmV3RmlsZS5zaXplXG4gICAgICApO1xuXG4gICAgICBpZiAoZXhpc3RpbmdGaWxlKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMuX2FjY2VwdGVkRmlsZVR5cGUobmV3RmlsZS50eXBlLCBuZXdGaWxlLm5hbWUpKSB7XG4gICAgICAgIHRlbXBGaWxlcy5wdXNoKG5ld0ZpbGUpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdGhpcy5fdXBkYXRlVmFsdWVGcm9tSW50ZXJhY3Rpb24odGVtcEZpbGVzKTtcbiAgfVxuXG4gIHByaXZhdGUgX2dldEZpbGVMaXN0KGZpbGVzOiByZWFkb25seSBGaWxlW10pOiBGaWxlTGlzdCB7XG4gICAgY29uc3QgZGF0YVRyYW5zZmVyID0gbmV3IERhdGFUcmFuc2ZlcigpO1xuXG4gICAgZmlsZXMuZm9yRWFjaChmaWxlID0+IHtcbiAgICAgIGRhdGFUcmFuc2Zlci5pdGVtcy5hZGQoZmlsZSk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gZGF0YVRyYW5zZmVyLmZpbGVzO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0RXh0ZW5zaW9ucyhmaWxlTmFtZTogc3RyaW5nKTogc3RyaW5nW10ge1xuICAgIGNvbnN0IG5hbWVTZWdtZW50cyA9IGZpbGVOYW1lLnNwbGl0KCcuJyk7XG4gICAgbGV0IGV4dGVuc2lvbnM6IHN0cmluZ1tdID0gW107XG5cbiAgICBpZiAobmFtZVNlZ21lbnRzLmxlbmd0aCA8IDIpIHtcbiAgICAgIHJldHVybiBleHRlbnNpb25zO1xuICAgIH1cblxuICAgIGNvbnN0IGV4dGVuc2lvbiA9IGAuJHtuYW1lU2VnbWVudHMuc2xpY2UoMSkuam9pbignLicpfWA7XG4gICAgZXh0ZW5zaW9ucy5wdXNoKGV4dGVuc2lvbik7XG5cbiAgICBpZiAobmFtZVNlZ21lbnRzLmxlbmd0aCA9PT0gMikge1xuICAgICAgcmV0dXJuIGV4dGVuc2lvbnM7XG4gICAgfVxuXG4gICAgY29uc3Qgc3ViID0gYC4ke25hbWVTZWdtZW50cy5zbGljZSgyKS5qb2luKCcuJyl9YDtcbiAgICBjb25zdCBzdWJFeHRlbnNpb25zID0gdGhpcy5fZ2V0RXh0ZW5zaW9ucyhzdWIpO1xuICAgIGV4dGVuc2lvbnMgPSBbLi4uZXh0ZW5zaW9ucywgLi4uc3ViRXh0ZW5zaW9uc107XG5cbiAgICByZXR1cm4gZXh0ZW5zaW9ucztcbiAgfVxuXG4gIHByaXZhdGUgX2FjY2VwdGVkRmlsZVR5cGUodHlwZTogc3RyaW5nLCBmaWxlTmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgaWYgKCF0aGlzLmFjY2VwdFR5cGVzIHx8IHRoaXMuYWNjZXB0VHlwZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBjb25zdCBhY2NlcHRlZEJ5VHlwZSA9IHRoaXMuYWNjZXB0VHlwZXMuaW5jbHVkZXModHlwZSk7XG5cbiAgICBpZiAoYWNjZXB0ZWRCeVR5cGUpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGNvbnN0IGZpbGVFeHRlbnNpb25zID0gdGhpcy5fZ2V0RXh0ZW5zaW9ucyhmaWxlTmFtZSk7XG5cbiAgICBpZiAoIWZpbGVFeHRlbnNpb25zIHx8IGZpbGVFeHRlbnNpb25zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGNvbnN0IGFjY2VwdGVkQnlFeHRlbnNpb24gPSB0aGlzLmFjY2VwdFR5cGVzLnNvbWUodHlwZSA9PlxuICAgICAgZmlsZUV4dGVuc2lvbnMuaW5jbHVkZXModHlwZSlcbiAgICApO1xuXG4gICAgcmV0dXJuIGFjY2VwdGVkQnlFeHRlbnNpb247XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJpbXBkYy1maWxlLXVwbG9hZC1jb250YWluZXJcIj5cbiAgPGRpdlxuICAgIGNsYXNzPVwiaW1wZGMtZmlsZS11cGxvYWQtZHJvcHpvbmVcIlxuICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICdoaWRlLXVwbG9hZCc6ICFjYW5VcGxvYWRcbiAgICB9XCJcbiAgICBpbXBkY0ZpbGVEcm9wXG4gICAgKGZpbGVzRHJvcHBlZCk9XCJoYW5kbGVEcm9wKCRldmVudClcIlxuICAgIChrZXl1cC5lbnRlcik9XCJmaWxlVXBsb2FkSW5wdXRFbHQuY2xpY2soKVwiXG4gICAgKGZvY3VzKT1cIl9vbkZvY3VzKClcIlxuICAgIChibHVyKT1cIl9vbkJsdXIoKVwiXG4gICAgW3RhYmluZGV4XT1cImRpc2FibGVkID8gJy0xJyA6ICcwJ1wiPlxuICAgIDxpbnB1dFxuICAgICAgY2xhc3M9XCJmaWxlLXVwbG9hZC1pbnB1dFwiXG4gICAgICB0eXBlPVwiZmlsZVwiXG4gICAgICAjZmlsZVVwbG9hZElucHV0RWx0XG4gICAgICBbbXVsdGlwbGVdPVwibXVsdGlwbGVcIlxuICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgIFthY2NlcHRdPVwiYWNjZXB0XCJcbiAgICAgIChjaGFuZ2UpPVwiaGFuZGxlQ2hhbmdlKCRldmVudClcIlxuICAgICAgdGFiaW5kZXg9XCItMVwiIC8+XG4gICAgPHNwYW5cbiAgICAgIGltcGRjLWljb25cbiAgICAgIHRoZW1lPVwicmVndWxhclwiXG4gICAgICBuYW1lPVwiY2xvdWQtdXBsb2FkLWFsdFwiXG4gICAgICBjbGFzcz1cInVwbG9hZC1pY29uXCI+PC9zcGFuPlxuICAgIDxwIGNsYXNzPVwidXBsb2FkLXRleHRcIj57eyB1cGxvYWRUZXh0IH19PC9wPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImN1cnJlbnQtZmlsZXNcIiAqbmdJZj1cImZpbGVzRm9yRGlzcGxheS5sZW5ndGhcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBmaWxlIG9mIGZpbGVzRm9yRGlzcGxheTsgbGV0IGlkeCA9IGluZGV4XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiY3VycmVudC1maWxlXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjdXJyZW50LWZpbGUtZGV0YWlsc1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJuYW1lXCI+e3sgZmlsZS5uYW1lIH19PC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNpemVcIj57eyBmaWxlLnNpemUgfCBodW1hblJlYWRhYmxlQnl0ZVNpemUgfX08L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgKm5nSWY9XCIhZGlzYWJsZWRcIiBjbGFzcz1cImN1cnJlbnQtZmlsZS1hY3Rpb25zXCI+XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgaW1wZGNCdXR0b25cbiAgICAgICAgICAgIHRoZW1lPVwiY2xvc2VcIlxuICAgICAgICAgICAgdGFiaW5kZXg9XCIwXCJcbiAgICAgICAgICAgIChrZXl1cC5lbnRlcik9XCJyZW1vdmVGaWxlKGlkeClcIlxuICAgICAgICAgICAgKGNsaWNrKT1cInJlbW92ZUZpbGUoaWR4KVwiPjwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -9,13 +9,13 @@ import { HumanReadableByteSizePipe } from './pipes';
9
9
  import * as i0 from "@angular/core";
10
10
  export class FileUploadModule {
11
11
  constructor() { }
12
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.1", ngImport: i0, type: FileUploadModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
13
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.1", ngImport: i0, type: FileUploadModule, declarations: [FileDropDirective,
14
+ FileUploadComponent,
15
+ HumanReadableByteSizePipe], imports: [CommonModule, FormsModule, ButtonModule, IconModule], exports: [IconModule, FileDropDirective, FileUploadComponent] }); }
16
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.1", ngImport: i0, type: FileUploadModule, imports: [CommonModule, FormsModule, ButtonModule, IconModule, IconModule] }); }
12
17
  }
13
- FileUploadModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: FileUploadModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
14
- FileUploadModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.12", ngImport: i0, type: FileUploadModule, declarations: [FileDropDirective,
15
- FileUploadComponent,
16
- HumanReadableByteSizePipe], imports: [CommonModule, FormsModule, ButtonModule, IconModule], exports: [IconModule, FileDropDirective, FileUploadComponent] });
17
- FileUploadModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: FileUploadModule, imports: [CommonModule, FormsModule, ButtonModule, IconModule, IconModule] });
18
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: FileUploadModule, decorators: [{
18
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.1", ngImport: i0, type: FileUploadModule, decorators: [{
19
19
  type: NgModule,
20
20
  args: [{
21
21
  imports: [CommonModule, FormsModule, ButtonModule, IconModule],
@@ -26,5 +26,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
26
26
  ],
27
27
  exports: [IconModule, FileDropDirective, FileUploadComponent]
28
28
  }]
29
- }], ctorParameters: function () { return []; } });
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzaWduLWNvbXBvbmVudHMvc3JjL2xpYi9maWxlLXVwbG9hZC9maWxlLXVwbG9hZC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ2pELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDckMsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sU0FBUyxDQUFDOztBQVdwRCxNQUFNLE9BQU8sZ0JBQWdCO0lBQzNCLGdCQUFlLENBQUM7OzhHQURMLGdCQUFnQjsrR0FBaEIsZ0JBQWdCLGlCQU56QixpQkFBaUI7UUFDakIsbUJBQW1CO1FBQ25CLHlCQUF5QixhQUpqQixZQUFZLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxVQUFVLGFBTW5ELFVBQVUsRUFBRSxpQkFBaUIsRUFBRSxtQkFBbUI7K0dBRWpELGdCQUFnQixZQVJqQixZQUFZLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBTW5ELFVBQVU7NEZBRVQsZ0JBQWdCO2tCQVQ1QixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLFVBQVUsQ0FBQztvQkFDOUQsWUFBWSxFQUFFO3dCQUNaLGlCQUFpQjt3QkFDakIsbUJBQW1CO3dCQUNuQix5QkFBeUI7cUJBQzFCO29CQUNELE9BQU8sRUFBRSxDQUFDLFVBQVUsRUFBRSxpQkFBaUIsRUFBRSxtQkFBbUIsQ0FBQztpQkFDOUQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBGaWxlRHJvcERpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcyc7XG5pbXBvcnQgeyBGaWxlVXBsb2FkQ29tcG9uZW50IH0gZnJvbSAnLi9maWxlLXVwbG9hZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEJ1dHRvbk1vZHVsZSB9IGZyb20gJy4uL2J1dHRvbic7XG5pbXBvcnQgeyBJY29uTW9kdWxlIH0gZnJvbSAnLi4vaWNvbic7XG5pbXBvcnQgeyBIdW1hblJlYWRhYmxlQnl0ZVNpemVQaXBlIH0gZnJvbSAnLi9waXBlcyc7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEZvcm1zTW9kdWxlLCBCdXR0b25Nb2R1bGUsIEljb25Nb2R1bGVdLFxuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBGaWxlRHJvcERpcmVjdGl2ZSxcbiAgICBGaWxlVXBsb2FkQ29tcG9uZW50LFxuICAgIEh1bWFuUmVhZGFibGVCeXRlU2l6ZVBpcGVcbiAgXSxcbiAgZXhwb3J0czogW0ljb25Nb2R1bGUsIEZpbGVEcm9wRGlyZWN0aXZlLCBGaWxlVXBsb2FkQ29tcG9uZW50XVxufSlcbmV4cG9ydCBjbGFzcyBGaWxlVXBsb2FkTW9kdWxlIHtcbiAgY29uc3RydWN0b3IoKSB7fVxufVxuIl19
29
+ }], ctorParameters: () => [] });
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzaWduLWNvbXBvbmVudHMvc3JjL2xpYi9maWxlLXVwbG9hZC9maWxlLXVwbG9hZC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ2pELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDckMsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sU0FBUyxDQUFDOztBQVdwRCxNQUFNLE9BQU8sZ0JBQWdCO0lBQzNCLGdCQUFlLENBQUM7OEdBREwsZ0JBQWdCOytHQUFoQixnQkFBZ0IsaUJBTnpCLGlCQUFpQjtZQUNqQixtQkFBbUI7WUFDbkIseUJBQXlCLGFBSmpCLFlBQVksRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLFVBQVUsYUFNbkQsVUFBVSxFQUFFLGlCQUFpQixFQUFFLG1CQUFtQjsrR0FFakQsZ0JBQWdCLFlBUmpCLFlBQVksRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFNbkQsVUFBVTs7MkZBRVQsZ0JBQWdCO2tCQVQ1QixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLFVBQVUsQ0FBQztvQkFDOUQsWUFBWSxFQUFFO3dCQUNaLGlCQUFpQjt3QkFDakIsbUJBQW1CO3dCQUNuQix5QkFBeUI7cUJBQzFCO29CQUNELE9BQU8sRUFBRSxDQUFDLFVBQVUsRUFBRSxpQkFBaUIsRUFBRSxtQkFBbUIsQ0FBQztpQkFDOUQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBGaWxlRHJvcERpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcyc7XG5pbXBvcnQgeyBGaWxlVXBsb2FkQ29tcG9uZW50IH0gZnJvbSAnLi9maWxlLXVwbG9hZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEJ1dHRvbk1vZHVsZSB9IGZyb20gJy4uL2J1dHRvbic7XG5pbXBvcnQgeyBJY29uTW9kdWxlIH0gZnJvbSAnLi4vaWNvbic7XG5pbXBvcnQgeyBIdW1hblJlYWRhYmxlQnl0ZVNpemVQaXBlIH0gZnJvbSAnLi9waXBlcyc7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEZvcm1zTW9kdWxlLCBCdXR0b25Nb2R1bGUsIEljb25Nb2R1bGVdLFxuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBGaWxlRHJvcERpcmVjdGl2ZSxcbiAgICBGaWxlVXBsb2FkQ29tcG9uZW50LFxuICAgIEh1bWFuUmVhZGFibGVCeXRlU2l6ZVBpcGVcbiAgXSxcbiAgZXhwb3J0czogW0ljb25Nb2R1bGUsIEZpbGVEcm9wRGlyZWN0aXZlLCBGaWxlVXBsb2FkQ29tcG9uZW50XVxufSlcbmV4cG9ydCBjbGFzcyBGaWxlVXBsb2FkTW9kdWxlIHtcbiAgY29uc3RydWN0b3IoKSB7fVxufVxuIl19
@@ -11,13 +11,13 @@ export class HumanReadableByteSizePipe {
11
11
  const display = round < 10 ? num.toFixed(2) : round < 100 ? num.toFixed(1) : round;
12
12
  return `${display}${'KMGTPEZY'[i - 1]}B`;
13
13
  }
14
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.1", ngImport: i0, type: HumanReadableByteSizePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
15
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.0.1", ngImport: i0, type: HumanReadableByteSizePipe, name: "humanReadableByteSize" }); }
14
16
  }
15
- HumanReadableByteSizePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: HumanReadableByteSizePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
16
- HumanReadableByteSizePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "14.2.12", ngImport: i0, type: HumanReadableByteSizePipe, name: "humanReadableByteSize" });
17
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: HumanReadableByteSizePipe, decorators: [{
17
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.1", ngImport: i0, type: HumanReadableByteSizePipe, decorators: [{
18
18
  type: Pipe,
19
19
  args: [{
20
20
  name: 'humanReadableByteSize'
21
21
  }]
22
22
  }] });
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHVtYW4tcmVhZGFibGUtYnl0ZS1zaXplLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tY29tcG9uZW50cy9zcmMvbGliL2ZpbGUtdXBsb2FkL3BpcGVzL2h1bWFuLXJlYWRhYmxlLWJ5dGUtc2l6ZS5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDOztBQUtwRCxNQUFNLE9BQU8seUJBQXlCO0lBQ3BDLFNBQVMsQ0FBQyxLQUFhO1FBQ3JCLElBQUksS0FBSyxHQUFHLElBQUksRUFBRTtZQUNoQixPQUFPLEdBQUcsS0FBSyxHQUFHLENBQUM7U0FDcEI7UUFFRCxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ3ZELE1BQU0sR0FBRyxHQUFHLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztRQUN0QyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzlCLE1BQU0sT0FBTyxHQUNYLEtBQUssR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUVyRSxPQUFPLEdBQUcsT0FBTyxHQUFHLFVBQVUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQztJQUMzQyxDQUFDOzt1SEFiVSx5QkFBeUI7cUhBQXpCLHlCQUF5Qjs0RkFBekIseUJBQXlCO2tCQUhyQyxJQUFJO21CQUFDO29CQUNKLElBQUksRUFBRSx1QkFBdUI7aUJBQzlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AUGlwZSh7XG4gIG5hbWU6ICdodW1hblJlYWRhYmxlQnl0ZVNpemUnXG59KVxuZXhwb3J0IGNsYXNzIEh1bWFuUmVhZGFibGVCeXRlU2l6ZVBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgdHJhbnNmb3JtKGJ5dGVzOiBudW1iZXIpOiBzdHJpbmcge1xuICAgIGlmIChieXRlcyA8IDEwMjQpIHtcbiAgICAgIHJldHVybiBgJHtieXRlc31CYDtcbiAgICB9XG5cbiAgICBjb25zdCBpID0gTWF0aC5mbG9vcihNYXRoLmxvZyhieXRlcykgLyBNYXRoLmxvZygxMDI0KSk7XG4gICAgY29uc3QgbnVtID0gYnl0ZXMgLyBNYXRoLnBvdygxMDI0LCBpKTtcbiAgICBjb25zdCByb3VuZCA9IE1hdGgucm91bmQobnVtKTtcbiAgICBjb25zdCBkaXNwbGF5ID1cbiAgICAgIHJvdW5kIDwgMTAgPyBudW0udG9GaXhlZCgyKSA6IHJvdW5kIDwgMTAwID8gbnVtLnRvRml4ZWQoMSkgOiByb3VuZDtcblxuICAgIHJldHVybiBgJHtkaXNwbGF5fSR7J0tNR1RQRVpZJ1tpIC0gMV19QmA7XG4gIH1cbn1cbiJdfQ==
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHVtYW4tcmVhZGFibGUtYnl0ZS1zaXplLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tY29tcG9uZW50cy9zcmMvbGliL2ZpbGUtdXBsb2FkL3BpcGVzL2h1bWFuLXJlYWRhYmxlLWJ5dGUtc2l6ZS5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDOztBQUtwRCxNQUFNLE9BQU8seUJBQXlCO0lBQ3BDLFNBQVMsQ0FBQyxLQUFhO1FBQ3JCLElBQUksS0FBSyxHQUFHLElBQUksRUFBRTtZQUNoQixPQUFPLEdBQUcsS0FBSyxHQUFHLENBQUM7U0FDcEI7UUFFRCxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ3ZELE1BQU0sR0FBRyxHQUFHLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztRQUN0QyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzlCLE1BQU0sT0FBTyxHQUNYLEtBQUssR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUVyRSxPQUFPLEdBQUcsT0FBTyxHQUFHLFVBQVUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQztJQUMzQyxDQUFDOzhHQWJVLHlCQUF5Qjs0R0FBekIseUJBQXlCOzsyRkFBekIseUJBQXlCO2tCQUhyQyxJQUFJO21CQUFDO29CQUNKLElBQUksRUFBRSx1QkFBdUI7aUJBQzlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AUGlwZSh7XG4gIG5hbWU6ICdodW1hblJlYWRhYmxlQnl0ZVNpemUnXG59KVxuZXhwb3J0IGNsYXNzIEh1bWFuUmVhZGFibGVCeXRlU2l6ZVBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgdHJhbnNmb3JtKGJ5dGVzOiBudW1iZXIpOiBzdHJpbmcge1xuICAgIGlmIChieXRlcyA8IDEwMjQpIHtcbiAgICAgIHJldHVybiBgJHtieXRlc31CYDtcbiAgICB9XG5cbiAgICBjb25zdCBpID0gTWF0aC5mbG9vcihNYXRoLmxvZyhieXRlcykgLyBNYXRoLmxvZygxMDI0KSk7XG4gICAgY29uc3QgbnVtID0gYnl0ZXMgLyBNYXRoLnBvdygxMDI0LCBpKTtcbiAgICBjb25zdCByb3VuZCA9IE1hdGgucm91bmQobnVtKTtcbiAgICBjb25zdCBkaXNwbGF5ID1cbiAgICAgIHJvdW5kIDwgMTAgPyBudW0udG9GaXhlZCgyKSA6IHJvdW5kIDwgMTAwID8gbnVtLnRvRml4ZWQoMSkgOiByb3VuZDtcblxuICAgIHJldHVybiBgJHtkaXNwbGF5fSR7J0tNR1RQRVpZJ1tpIC0gMV19QmA7XG4gIH1cbn1cbiJdfQ==