@energinet/watt 2.0.14 → 2.1.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 (388) hide show
  1. package/badge/energinet-watt-badge.d.ts +5 -0
  2. package/breadcrumbs/energinet-watt-breadcrumbs.d.ts +5 -0
  3. package/button/energinet-watt-button.d.ts +5 -0
  4. package/card/energinet-watt-card.d.ts +5 -0
  5. package/checkbox/energinet-watt-checkbox.d.ts +5 -0
  6. package/chip/energinet-watt-chip.d.ts +5 -0
  7. package/clipboard/energinet-watt-clipboard.d.ts +5 -0
  8. package/code/energinet-watt-code.d.ts +5 -0
  9. package/core/breakpoints/breakpoints-observer.d.ts +1 -19
  10. package/core/breakpoints/energinet-watt-core-breakpoints.d.ts +5 -0
  11. package/core/color/color-helper.service.d.ts +2 -4
  12. package/core/color/energinet-watt-core-color.d.ts +5 -0
  13. package/core/date/energinet-watt-core-date.d.ts +5 -0
  14. package/core/date/watt-locale.service.d.ts +1 -3
  15. package/data/energinet-watt-data.d.ts +5 -0
  16. package/datetime-field/energinet-watt-datetime-field.d.ts +5 -0
  17. package/description-list/energinet-watt-description-list.d.ts +5 -0
  18. package/drawer/energinet-watt-drawer.d.ts +5 -0
  19. package/dropdown/energinet-watt-dropdown.d.ts +5 -0
  20. package/dropzone/energinet-watt-dropzone.d.ts +5 -0
  21. package/empty-state/energinet-watt-empty-state.d.ts +5 -0
  22. package/energinet-watt.d.ts +5 -0
  23. package/esm2022/badge/energinet-watt-badge.js +5 -0
  24. package/esm2022/badge/index.js +20 -0
  25. package/{fesm2022/energinet-watt-badge.mjs → esm2022/badge/watt-badge.component.js} +7 -33
  26. package/esm2022/breadcrumbs/energinet-watt-breadcrumbs.js +5 -0
  27. package/esm2022/breadcrumbs/index.js +20 -0
  28. package/esm2022/breadcrumbs/watt-breadcrumbs.component.js +90 -0
  29. package/esm2022/button/energinet-watt-button.js +5 -0
  30. package/esm2022/button/index.js +20 -0
  31. package/{fesm2022/energinet-watt-button.mjs → esm2022/button/watt-button.component.js} +14 -40
  32. package/esm2022/card/energinet-watt-card.js +5 -0
  33. package/esm2022/card/index.js +21 -0
  34. package/esm2022/card/watt-card-title.component.js +33 -0
  35. package/esm2022/card/watt-card.component.js +61 -0
  36. package/esm2022/checkbox/energinet-watt-checkbox.js +5 -0
  37. package/esm2022/checkbox/index.js +20 -0
  38. package/{fesm2022/energinet-watt-checkbox.mjs → esm2022/checkbox/watt-checkbox.component.js} +9 -35
  39. package/esm2022/chip/energinet-watt-chip.js +5 -0
  40. package/esm2022/chip/index.js +26 -0
  41. package/esm2022/chip/watt-action-chip.component.js +68 -0
  42. package/esm2022/chip/watt-chip.component.js +55 -0
  43. package/esm2022/chip/watt-chip.directive.js +92 -0
  44. package/esm2022/chip/watt-date-chip.component.js +118 -0
  45. package/esm2022/chip/watt-date-range-chip.component.js +240 -0
  46. package/esm2022/chip/watt-filter-chip.component.js +94 -0
  47. package/esm2022/chip/watt-menu-chip.component.js +95 -0
  48. package/esm2022/clipboard/energinet-watt-clipboard.js +5 -0
  49. package/esm2022/clipboard/index.js +21 -0
  50. package/esm2022/clipboard/watt-clipboard-intl.service.js +31 -0
  51. package/esm2022/clipboard/watt-copy-to-clipboard.directive.js +64 -0
  52. package/esm2022/code/energinet-watt-code.js +5 -0
  53. package/esm2022/code/index.js +21 -0
  54. package/esm2022/code/watt-code.component.js +74 -0
  55. package/esm2022/code/watt-code.worker.token.js +21 -0
  56. package/esm2022/core/breakpoints/breakpoints-observer.js +41 -0
  57. package/esm2022/core/breakpoints/breakpoints.js +31 -0
  58. package/esm2022/core/breakpoints/energinet-watt-core-breakpoints.js +5 -0
  59. package/esm2022/core/breakpoints/index.js +21 -0
  60. package/esm2022/core/color/color-helper.service.js +41 -0
  61. package/esm2022/core/color/colors.js +58 -0
  62. package/esm2022/core/color/energinet-watt-core-color.js +5 -0
  63. package/esm2022/core/color/index.js +21 -0
  64. package/esm2022/core/date/dayjs.js +34 -0
  65. package/esm2022/core/date/energinet-watt-core-date.js +5 -0
  66. package/esm2022/core/date/index.js +25 -0
  67. package/esm2022/core/date/watt-danish-datetime.providers.js +31 -0
  68. package/esm2022/core/date/watt-date-adapter.js +43 -0
  69. package/esm2022/core/date/watt-date-range.js +2 -0
  70. package/esm2022/core/date/watt-date.pipe.js +38 -0
  71. package/esm2022/core/date/watt-format-date.js +50 -0
  72. package/esm2022/core/date/watt-locale.service.js +48 -0
  73. package/esm2022/data/energinet-watt-data.js +5 -0
  74. package/esm2022/data/index.js +23 -0
  75. package/esm2022/data/watt-data-actions.component.js +32 -0
  76. package/esm2022/data/watt-data-filters.component.js +32 -0
  77. package/esm2022/data/watt-data-intl.service.js +39 -0
  78. package/{fesm2022/energinet-watt-data.mjs → esm2022/data/watt-data-table.component.js} +15 -137
  79. package/esm2022/datetime-field/energinet-watt-datetime-field.js +5 -0
  80. package/esm2022/datetime-field/index.js +20 -0
  81. package/esm2022/datetime-field/watt-datetime-field.component.js +207 -0
  82. package/esm2022/description-list/energinet-watt-description-list.js +5 -0
  83. package/esm2022/description-list/index.js +20 -0
  84. package/esm2022/description-list/watt-description-list-item.component.js +49 -0
  85. package/{fesm2022/energinet-watt-description-list.mjs → esm2022/description-list/watt-description-list.component.js} +10 -79
  86. package/esm2022/drawer/energinet-watt-drawer.js +5 -0
  87. package/esm2022/drawer/index.js +24 -0
  88. package/esm2022/drawer/watt-drawer-actions.component.js +29 -0
  89. package/esm2022/drawer/watt-drawer-content.component.js +29 -0
  90. package/esm2022/drawer/watt-drawer-heading.component.js +29 -0
  91. package/esm2022/drawer/watt-drawer-topbar.component.js +29 -0
  92. package/esm2022/drawer/watt-drawer.component.js +177 -0
  93. package/esm2022/dropdown/energinet-watt-dropdown.js +5 -0
  94. package/esm2022/dropdown/index.js +20 -0
  95. package/esm2022/dropdown/watt-dropdown-option.js +2 -0
  96. package/esm2022/dropdown/watt-dropdown-value.js +2 -0
  97. package/esm2022/dropdown/watt-dropdown.component.js +396 -0
  98. package/esm2022/dropzone/energinet-watt-dropzone.js +5 -0
  99. package/esm2022/dropzone/index.js +22 -0
  100. package/esm2022/dropzone/watt-dropzone-intl.js +35 -0
  101. package/esm2022/dropzone/watt-dropzone-validators.js +67 -0
  102. package/esm2022/dropzone/watt-dropzone.js +179 -0
  103. package/esm2022/empty-state/energinet-watt-empty-state.js +5 -0
  104. package/esm2022/empty-state/icons/explore.js +54 -0
  105. package/esm2022/empty-state/icons/no-results.js +62 -0
  106. package/esm2022/empty-state/icons/power.js +46 -0
  107. package/esm2022/empty-state/index.js +23 -0
  108. package/esm2022/empty-state/watt-empty-state.component.js +120 -0
  109. package/esm2022/energinet-watt.js +5 -0
  110. package/esm2022/expandable-card/energinet-watt-expandable-card.js +5 -0
  111. package/esm2022/expandable-card/index.js +26 -0
  112. package/{fesm2022/energinet-watt-expandable-card.mjs → esm2022/expandable-card/watt-expandable-card.component.js} +18 -49
  113. package/esm2022/expansion/energinet-watt-expansion.js +5 -0
  114. package/{fesm2022/energinet-watt-expansion.mjs → esm2022/expansion/expansion.component.js} +10 -36
  115. package/esm2022/expansion/index.js +20 -0
  116. package/esm2022/field/energinet-watt-field.js +5 -0
  117. package/esm2022/field/index.js +23 -0
  118. package/esm2022/field/watt-field-error.component.js +29 -0
  119. package/esm2022/field/watt-field-hint.component.js +29 -0
  120. package/esm2022/field/watt-field-intl.service.js +32 -0
  121. package/{fesm2022/energinet-watt-field.mjs → esm2022/field/watt-field.component.js} +17 -125
  122. package/esm2022/icon/energinet-watt-icon.js +5 -0
  123. package/esm2022/icon/flags/energinet-watt-icon-flags.js +5 -0
  124. package/esm2022/icon/flags/index.js +26 -0
  125. package/esm2022/icon/flags/watt-flag-ch.js +52 -0
  126. package/esm2022/icon/flags/watt-flag-de.js +44 -0
  127. package/esm2022/icon/flags/watt-flag-dk.js +44 -0
  128. package/esm2022/icon/flags/watt-flag-fi.js +44 -0
  129. package/esm2022/icon/flags/watt-flag-nl.js +44 -0
  130. package/esm2022/icon/flags/watt-flag-no.js +48 -0
  131. package/esm2022/icon/flags/watt-flag-pl.js +46 -0
  132. package/esm2022/icon/flags/watt-flag-se.js +42 -0
  133. package/esm2022/icon/flags/watt-flag.js +116 -0
  134. package/{fesm2022/energinet-watt-icon.mjs → esm2022/icon/icon.component.js} +9 -131
  135. package/esm2022/icon/icons.js +97 -0
  136. package/esm2022/icon/index.js +20 -0
  137. package/esm2022/index.js +25 -0
  138. package/esm2022/modal/energinet-watt-modal.js +5 -0
  139. package/esm2022/modal/index.js +21 -0
  140. package/{fesm2022/energinet-watt-modal.mjs → esm2022/modal/watt-modal.component.js} +19 -127
  141. package/esm2022/modal/watt-modal.service.js +86 -0
  142. package/esm2022/paginator/energinet-watt-paginator.js +5 -0
  143. package/esm2022/paginator/index.js +21 -0
  144. package/esm2022/paginator/watt-paginator-intl.service.js +38 -0
  145. package/esm2022/paginator/watt-paginator.component.js +104 -0
  146. package/esm2022/phone-field/energinet-watt-phone-field.js +5 -0
  147. package/esm2022/phone-field/index.js +21 -0
  148. package/esm2022/phone-field/watt-phone-field-intl.service.js +40 -0
  149. package/esm2022/phone-field/watt-phone-field.component.js +262 -0
  150. package/esm2022/picker/__shared/energinet-watt-picker-__shared.js +5 -0
  151. package/esm2022/picker/__shared/index.js +21 -0
  152. package/esm2022/picker/__shared/placeholder-mask/watt-placeholder-mask.component.js +71 -0
  153. package/esm2022/picker/__shared/watt-picker-base.js +292 -0
  154. package/esm2022/picker/__shared/watt-picker-value.js +2 -0
  155. package/esm2022/picker/datepicker/energinet-watt-picker-datepicker.js +5 -0
  156. package/esm2022/picker/datepicker/index.js +22 -0
  157. package/esm2022/picker/datepicker/watt-datepicker-intl.service.js +31 -0
  158. package/esm2022/picker/datepicker/watt-datepicker.component.js +422 -0
  159. package/esm2022/picker/timepicker/energinet-watt-picker-timepicker.js +5 -0
  160. package/esm2022/picker/timepicker/index.js +20 -0
  161. package/esm2022/picker/timepicker/maskito-time-range-mask.js +81 -0
  162. package/esm2022/picker/timepicker/watt-timepicker.component.js +288 -0
  163. package/esm2022/progress-tracker/energinet-watt-progress-tracker.js +5 -0
  164. package/esm2022/progress-tracker/index.js +27 -0
  165. package/{fesm2022/energinet-watt-progress-tracker.mjs → esm2022/progress-tracker/watt-progress-tracker-step.component.js} +9 -67
  166. package/esm2022/progress-tracker/watt-progress-tracker.component.js +30 -0
  167. package/esm2022/query-params/energinet-watt-query-params.js +5 -0
  168. package/esm2022/query-params/index.js +20 -0
  169. package/esm2022/query-params/watt-query-params.directive.js +91 -0
  170. package/esm2022/radio/energinet-watt-radio.js +5 -0
  171. package/esm2022/radio/index.js +20 -0
  172. package/{fesm2022/energinet-watt-radio.mjs → esm2022/radio/watt-radio.component.js} +9 -35
  173. package/esm2022/search/energinet-watt-search.js +5 -0
  174. package/esm2022/search/index.js +20 -0
  175. package/{fesm2022/energinet-watt-search.mjs → esm2022/search/watt-search.component.js} +10 -36
  176. package/esm2022/segmented-buttons/energinet-watt-segmented-buttons.js +5 -0
  177. package/esm2022/segmented-buttons/index.js +21 -0
  178. package/esm2022/segmented-buttons/watt-segmented-button.component.js +38 -0
  179. package/esm2022/segmented-buttons/watt-segmented-buttons.component.js +88 -0
  180. package/esm2022/shell/energinet-watt-shell.js +5 -0
  181. package/esm2022/shell/index.js +21 -0
  182. package/esm2022/shell/nav-list/index.js +21 -0
  183. package/esm2022/shell/nav-list/watt-expand-on-active-link.directive.js +45 -0
  184. package/esm2022/shell/nav-list/watt-nav-list-item.component.js +84 -0
  185. package/esm2022/shell/nav-list/watt-nav-list.component.js +81 -0
  186. package/esm2022/shell/shell.component.js +75 -0
  187. package/esm2022/slide-toggle/energinet-watt-slide-toggle.js +5 -0
  188. package/esm2022/slide-toggle/index.js +20 -0
  189. package/esm2022/slide-toggle/watt-slide-toggle.component.js +78 -0
  190. package/esm2022/slider/energinet-watt-slider.js +5 -0
  191. package/esm2022/slider/index.js +20 -0
  192. package/esm2022/slider/watt-slider.component.js +133 -0
  193. package/esm2022/spinner/energinet-watt-spinner.js +5 -0
  194. package/esm2022/spinner/index.js +20 -0
  195. package/esm2022/spinner/watt-spinner.component.js +46 -0
  196. package/esm2022/stepper/energinet-watt-stepper.js +5 -0
  197. package/esm2022/stepper/index.js +21 -0
  198. package/esm2022/stepper/watt-stepper-step.component.js +52 -0
  199. package/{fesm2022/energinet-watt-stepper.mjs → esm2022/stepper/watt-stepper.component.js} +18 -91
  200. package/esm2022/table/energinet-watt-table.js +5 -0
  201. package/esm2022/table/index.js +21 -0
  202. package/esm2022/table/watt-table-data-source.js +17 -0
  203. package/esm2022/table/watt-table.component.js +400 -0
  204. package/esm2022/tabs/energinet-watt-tabs.js +5 -0
  205. package/esm2022/tabs/index.js +31 -0
  206. package/esm2022/tabs/watt-link-tab.component.js +34 -0
  207. package/esm2022/tabs/watt-link-tabs.component.js +71 -0
  208. package/esm2022/tabs/watt-tab.component.js +42 -0
  209. package/esm2022/tabs/watt-tabs-action.component.js +32 -0
  210. package/esm2022/tabs/watt-tabs.component.js +60 -0
  211. package/esm2022/text-field/energinet-watt-text-field.js +5 -0
  212. package/esm2022/text-field/index.js +20 -0
  213. package/esm2022/text-field/watt-text-field.component.js +289 -0
  214. package/esm2022/textarea-field/energinet-watt-textarea-field.js +5 -0
  215. package/esm2022/textarea-field/index.js +20 -0
  216. package/esm2022/textarea-field/watt-textarea-field.component.js +110 -0
  217. package/esm2022/toast/energinet-watt-toast.js +5 -0
  218. package/esm2022/toast/index.js +21 -0
  219. package/esm2022/toast/watt-toast.component.js +97 -0
  220. package/esm2022/toast/watt-toast.service.js +51 -0
  221. package/esm2022/tooltip/energinet-watt-tooltip.js +5 -0
  222. package/esm2022/tooltip/index.js +20 -0
  223. package/esm2022/tooltip/watt-tooltip.component.js +131 -0
  224. package/esm2022/tooltip/watt-tooltip.directive.js +60 -0
  225. package/esm2022/utils/css/css-custom-properties.service.js +39 -0
  226. package/esm2022/utils/css/energinet-watt-utils-css.js +5 -0
  227. package/esm2022/utils/css/index.js +20 -0
  228. package/esm2022/utils/intersection-observer/energinet-watt-utils-intersection-observer.js +5 -0
  229. package/esm2022/utils/intersection-observer/index.js +20 -0
  230. package/esm2022/utils/intersection-observer/watt-intersection-observer.service.js +57 -0
  231. package/esm2022/utils/resize-observer/energinet-watt-utils-resize-observer.js +5 -0
  232. package/esm2022/utils/resize-observer/index.js +21 -0
  233. package/esm2022/utils/resize-observer/watt-resize-observer.directive.js +53 -0
  234. package/esm2022/utils/resize-observer/watt-resize-observer.service.js +67 -0
  235. package/esm2022/validation-message/energinet-watt-validation-message.js +5 -0
  236. package/esm2022/validation-message/index.js +20 -0
  237. package/{fesm2022/energinet-watt-validation-message.mjs → esm2022/validation-message/watt-validation-message.component.js} +8 -34
  238. package/esm2022/validators/energinet-watt-validators.js +5 -0
  239. package/esm2022/validators/index.js +20 -0
  240. package/esm2022/validators/watt-range.validators.js +23 -0
  241. package/esm2022/vater/energinet-watt-vater.js +5 -0
  242. package/esm2022/vater/index.js +24 -0
  243. package/esm2022/vater/types.js +20 -0
  244. package/esm2022/vater/vater-flex.component.js +49 -0
  245. package/esm2022/vater/vater-layout.directive.js +65 -0
  246. package/esm2022/vater/vater-spacer.component.js +29 -0
  247. package/esm2022/vater/vater-stack.component.js +42 -0
  248. package/esm2022/vater/vater-utility.directive.js +53 -0
  249. package/esm2022/year-field/energinet-watt-year-field.js +5 -0
  250. package/esm2022/year-field/index.js +20 -0
  251. package/esm2022/year-field/watt-year-field.component.js +256 -0
  252. package/esm2022/yearmonth-field/energinet-watt-yearmonth-field.js +5 -0
  253. package/esm2022/yearmonth-field/index.js +21 -0
  254. package/esm2022/yearmonth-field/watt-yearmonth-field.component.js +258 -0
  255. package/esm2022/yearmonth-field/year-month.js +42 -0
  256. package/expandable-card/energinet-watt-expandable-card.d.ts +5 -0
  257. package/expansion/energinet-watt-expansion.d.ts +5 -0
  258. package/field/energinet-watt-field.d.ts +5 -0
  259. package/icon/energinet-watt-icon.d.ts +5 -0
  260. package/icon/flags/energinet-watt-icon-flags.d.ts +5 -0
  261. package/modal/energinet-watt-modal.d.ts +5 -0
  262. package/package.json +117 -117
  263. package/paginator/energinet-watt-paginator.d.ts +5 -0
  264. package/phone-field/energinet-watt-phone-field.d.ts +5 -0
  265. package/picker/__shared/energinet-watt-picker-__shared.d.ts +5 -0
  266. package/picker/__shared/watt-picker-base.d.ts +4 -1
  267. package/picker/datepicker/energinet-watt-picker-datepicker.d.ts +5 -0
  268. package/picker/timepicker/energinet-watt-picker-timepicker.d.ts +5 -0
  269. package/progress-tracker/energinet-watt-progress-tracker.d.ts +5 -0
  270. package/query-params/energinet-watt-query-params.d.ts +5 -0
  271. package/radio/energinet-watt-radio.d.ts +5 -0
  272. package/search/energinet-watt-search.d.ts +5 -0
  273. package/segmented-buttons/energinet-watt-segmented-buttons.d.ts +5 -0
  274. package/shell/energinet-watt-shell.d.ts +5 -0
  275. package/slide-toggle/energinet-watt-slide-toggle.d.ts +5 -0
  276. package/slider/energinet-watt-slider.d.ts +5 -0
  277. package/spinner/energinet-watt-spinner.d.ts +5 -0
  278. package/stepper/energinet-watt-stepper.d.ts +5 -0
  279. package/table/energinet-watt-table.d.ts +5 -0
  280. package/tabs/energinet-watt-tabs.d.ts +5 -0
  281. package/text-field/energinet-watt-text-field.d.ts +5 -0
  282. package/textarea-field/energinet-watt-textarea-field.d.ts +5 -0
  283. package/toast/energinet-watt-toast.d.ts +5 -0
  284. package/toast/watt-toast.service.d.ts +2 -3
  285. package/tooltip/energinet-watt-tooltip.d.ts +5 -0
  286. package/utils/css/css-custom-properties.service.d.ts +1 -2
  287. package/utils/css/energinet-watt-utils-css.d.ts +5 -0
  288. package/utils/intersection-observer/energinet-watt-utils-intersection-observer.d.ts +5 -0
  289. package/utils/resize-observer/energinet-watt-utils-resize-observer.d.ts +5 -0
  290. package/utils/resize-observer/watt-resize-observer.service.d.ts +2 -19
  291. package/validation-message/energinet-watt-validation-message.d.ts +5 -0
  292. package/validators/energinet-watt-validators.d.ts +5 -0
  293. package/vater/energinet-watt-vater.d.ts +5 -0
  294. package/year-field/energinet-watt-year-field.d.ts +5 -0
  295. package/yearmonth-field/energinet-watt-yearmonth-field.d.ts +5 -0
  296. package/fesm2022/energinet-watt-badge.mjs.map +0 -1
  297. package/fesm2022/energinet-watt-breadcrumbs.mjs +0 -116
  298. package/fesm2022/energinet-watt-breadcrumbs.mjs.map +0 -1
  299. package/fesm2022/energinet-watt-button.mjs.map +0 -1
  300. package/fesm2022/energinet-watt-card.mjs +0 -117
  301. package/fesm2022/energinet-watt-card.mjs.map +0 -1
  302. package/fesm2022/energinet-watt-checkbox.mjs.map +0 -1
  303. package/fesm2022/energinet-watt-chip.mjs +0 -760
  304. package/fesm2022/energinet-watt-chip.mjs.map +0 -1
  305. package/fesm2022/energinet-watt-clipboard.mjs +0 -118
  306. package/fesm2022/energinet-watt-clipboard.mjs.map +0 -1
  307. package/fesm2022/energinet-watt-code.mjs +0 -119
  308. package/fesm2022/energinet-watt-code.mjs.map +0 -1
  309. package/fesm2022/energinet-watt-core-breakpoints.mjs +0 -100
  310. package/fesm2022/energinet-watt-core-breakpoints.mjs.map +0 -1
  311. package/fesm2022/energinet-watt-core-color.mjs +0 -127
  312. package/fesm2022/energinet-watt-core-color.mjs.map +0 -1
  313. package/fesm2022/energinet-watt-core-date.mjs +0 -260
  314. package/fesm2022/energinet-watt-core-date.mjs.map +0 -1
  315. package/fesm2022/energinet-watt-data.mjs.map +0 -1
  316. package/fesm2022/energinet-watt-datetime-field.mjs +0 -233
  317. package/fesm2022/energinet-watt-datetime-field.mjs.map +0 -1
  318. package/fesm2022/energinet-watt-description-list.mjs.map +0 -1
  319. package/fesm2022/energinet-watt-drawer.mjs +0 -307
  320. package/fesm2022/energinet-watt-drawer.mjs.map +0 -1
  321. package/fesm2022/energinet-watt-dropdown.mjs +0 -423
  322. package/fesm2022/energinet-watt-dropdown.mjs.map +0 -1
  323. package/fesm2022/energinet-watt-dropzone.mjs +0 -298
  324. package/fesm2022/energinet-watt-dropzone.mjs.map +0 -1
  325. package/fesm2022/energinet-watt-empty-state.mjs +0 -299
  326. package/fesm2022/energinet-watt-empty-state.mjs.map +0 -1
  327. package/fesm2022/energinet-watt-expandable-card.mjs.map +0 -1
  328. package/fesm2022/energinet-watt-expansion.mjs.map +0 -1
  329. package/fesm2022/energinet-watt-field.mjs.map +0 -1
  330. package/fesm2022/energinet-watt-icon-flags.mjs +0 -482
  331. package/fesm2022/energinet-watt-icon-flags.mjs.map +0 -1
  332. package/fesm2022/energinet-watt-icon.mjs.map +0 -1
  333. package/fesm2022/energinet-watt-modal.mjs.map +0 -1
  334. package/fesm2022/energinet-watt-paginator.mjs +0 -164
  335. package/fesm2022/energinet-watt-paginator.mjs.map +0 -1
  336. package/fesm2022/energinet-watt-phone-field.mjs +0 -326
  337. package/fesm2022/energinet-watt-phone-field.mjs.map +0 -1
  338. package/fesm2022/energinet-watt-picker-__shared.mjs +0 -384
  339. package/fesm2022/energinet-watt-picker-__shared.mjs.map +0 -1
  340. package/fesm2022/energinet-watt-picker-datepicker.mjs +0 -477
  341. package/fesm2022/energinet-watt-picker-datepicker.mjs.map +0 -1
  342. package/fesm2022/energinet-watt-picker-timepicker.mjs +0 -394
  343. package/fesm2022/energinet-watt-picker-timepicker.mjs.map +0 -1
  344. package/fesm2022/energinet-watt-progress-tracker.mjs.map +0 -1
  345. package/fesm2022/energinet-watt-query-params.mjs +0 -117
  346. package/fesm2022/energinet-watt-query-params.mjs.map +0 -1
  347. package/fesm2022/energinet-watt-radio.mjs.map +0 -1
  348. package/fesm2022/energinet-watt-search.mjs.map +0 -1
  349. package/fesm2022/energinet-watt-segmented-buttons.mjs +0 -149
  350. package/fesm2022/energinet-watt-segmented-buttons.mjs.map +0 -1
  351. package/fesm2022/energinet-watt-shell.mjs +0 -315
  352. package/fesm2022/energinet-watt-shell.mjs.map +0 -1
  353. package/fesm2022/energinet-watt-slide-toggle.mjs +0 -104
  354. package/fesm2022/energinet-watt-slide-toggle.mjs.map +0 -1
  355. package/fesm2022/energinet-watt-slider.mjs +0 -159
  356. package/fesm2022/energinet-watt-slider.mjs.map +0 -1
  357. package/fesm2022/energinet-watt-spinner.mjs +0 -72
  358. package/fesm2022/energinet-watt-spinner.mjs.map +0 -1
  359. package/fesm2022/energinet-watt-stepper.mjs.map +0 -1
  360. package/fesm2022/energinet-watt-table.mjs +0 -441
  361. package/fesm2022/energinet-watt-table.mjs.map +0 -1
  362. package/fesm2022/energinet-watt-tabs.mjs +0 -254
  363. package/fesm2022/energinet-watt-tabs.mjs.map +0 -1
  364. package/fesm2022/energinet-watt-text-field.mjs +0 -316
  365. package/fesm2022/energinet-watt-text-field.mjs.map +0 -1
  366. package/fesm2022/energinet-watt-textarea-field.mjs +0 -136
  367. package/fesm2022/energinet-watt-textarea-field.mjs.map +0 -1
  368. package/fesm2022/energinet-watt-toast.mjs +0 -174
  369. package/fesm2022/energinet-watt-toast.mjs.map +0 -1
  370. package/fesm2022/energinet-watt-tooltip.mjs +0 -214
  371. package/fesm2022/energinet-watt-tooltip.mjs.map +0 -1
  372. package/fesm2022/energinet-watt-utils-css.mjs +0 -72
  373. package/fesm2022/energinet-watt-utils-css.mjs.map +0 -1
  374. package/fesm2022/energinet-watt-utils-intersection-observer.mjs +0 -83
  375. package/fesm2022/energinet-watt-utils-intersection-observer.mjs.map +0 -1
  376. package/fesm2022/energinet-watt-utils-resize-observer.mjs +0 -144
  377. package/fesm2022/energinet-watt-utils-resize-observer.mjs.map +0 -1
  378. package/fesm2022/energinet-watt-validation-message.mjs.map +0 -1
  379. package/fesm2022/energinet-watt-validators.mjs +0 -49
  380. package/fesm2022/energinet-watt-validators.mjs.map +0 -1
  381. package/fesm2022/energinet-watt-vater.mjs +0 -248
  382. package/fesm2022/energinet-watt-vater.mjs.map +0 -1
  383. package/fesm2022/energinet-watt-year-field.mjs +0 -282
  384. package/fesm2022/energinet-watt-year-field.mjs.map +0 -1
  385. package/fesm2022/energinet-watt-yearmonth-field.mjs +0 -324
  386. package/fesm2022/energinet-watt-yearmonth-field.mjs.map +0 -1
  387. package/fesm2022/energinet-watt.mjs +0 -31
  388. package/fesm2022/energinet-watt.mjs.map +0 -1
@@ -0,0 +1,396 @@
1
+ //#region License
2
+ /**
3
+ * @license
4
+ * Copyright 2020 Energinet DataHub A/S
5
+ *
6
+ * Licensed under the Apache License, Version 2.0 (the "License2");
7
+ * you may not use this file except in compliance with the License.
8
+ * You may obtain a copy of the License at
9
+ *
10
+ * http://www.apache.org/licenses/LICENSE-2.0
11
+ *
12
+ * Unless required by applicable law or agreed to in writing, software
13
+ * distributed under the License is distributed on an "AS IS" BASIS,
14
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ * See the License for the specific language governing permissions and
16
+ * limitations under the License.
17
+ */
18
+ //#endregion
19
+ import { Component, DestroyRef, HostBinding, Input, ViewChild, ViewEncapsulation, inject, } from '@angular/core';
20
+ import { FormControl, NgControl, UntypedFormControl, ReactiveFormsModule, } from '@angular/forms';
21
+ import { NgClass } from '@angular/common';
22
+ import { RxPush } from '@rx-angular/template/push';
23
+ import { MatSelectModule, MatSelect } from '@angular/material/select';
24
+ import { NgxMatSelectSearchModule } from 'ngx-mat-select-search';
25
+ import { of, ReplaySubject, map, take, filter } from 'rxjs';
26
+ import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
27
+ import { WattFieldComponent } from '@energinet/watt/field';
28
+ import { WattMenuChipComponent } from '@energinet/watt/chip';
29
+ import { WattIconComponent } from '@energinet/watt/icon';
30
+ import * as i0 from "@angular/core";
31
+ import * as i1 from "@angular/material/select";
32
+ import * as i2 from "@angular/forms";
33
+ import * as i3 from "ngx-mat-select-search";
34
+ export class WattDropdownComponent {
35
+ parentControlDirective = inject(NgControl, { host: true });
36
+ /**
37
+ * @ignore
38
+ */
39
+ _destroyRef = inject(DestroyRef);
40
+ /**
41
+ * @ignore
42
+ */
43
+ parentControl = null;
44
+ /**
45
+ * @ignore
46
+ */
47
+ validateParent;
48
+ /**
49
+ * @ignore
50
+ */
51
+ validateParentAsync;
52
+ /**
53
+ * @ignore
54
+ *
55
+ */
56
+ isDisabled = false;
57
+ /**
58
+ * @ignore
59
+ */
60
+ matSelectControl = new FormControl(null);
61
+ /**
62
+ * Control for the MatSelect filter keyword
63
+ *
64
+ * @ignore
65
+ */
66
+ filterControl = new UntypedFormControl();
67
+ /**
68
+ * List of options filtered by search keyword
69
+ *
70
+ * @ignore
71
+ */
72
+ filteredOptions$ = new ReplaySubject(1);
73
+ /**
74
+ * @ignore
75
+ */
76
+ emDash = '—';
77
+ /**
78
+ * @ignore
79
+ */
80
+ isToggleAllChecked = false;
81
+ /**
82
+ * @ignore
83
+ */
84
+ isToggleAllIndeterminate = false;
85
+ _options = [];
86
+ /**
87
+ * @ignore
88
+ */
89
+ get showTriggerValue() {
90
+ return (this.multiple &&
91
+ this.matSelectControl.value?.length === 1 &&
92
+ this.matSelectControl.value[0] !== '') ||
93
+ (!this.multiple && this.matSelect?.triggerValue)
94
+ ? true
95
+ : false;
96
+ }
97
+ /**
98
+ * @ignore
99
+ */
100
+ get showChipLabel() {
101
+ return this.multiple && this.matSelectControl.value && this.matSelectControl.value.length > 1
102
+ ? true
103
+ : false;
104
+ }
105
+ /**
106
+ * @ignore
107
+ */
108
+ matSelect;
109
+ hideSearch = false;
110
+ panelWidth = null;
111
+ getCustomTrigger;
112
+ /**
113
+ * Set the mode of the dropdown.
114
+ */
115
+ chipMode = false;
116
+ get chipModeClass() {
117
+ return this.chipMode;
118
+ }
119
+ disableSelectedMode = false;
120
+ sortDirection = undefined;
121
+ /**
122
+ * Sets the options for the dropdown.
123
+ */
124
+ set options(options) {
125
+ if (Array.isArray(options)) {
126
+ let optionsCopy = [...options];
127
+ if (this.sortDirection) {
128
+ optionsCopy = this.sortOptions(optionsCopy);
129
+ }
130
+ this._options = optionsCopy;
131
+ this.filteredOptions$.next(optionsCopy);
132
+ }
133
+ }
134
+ get options() {
135
+ return this._options;
136
+ }
137
+ /**
138
+ * Sets support for selecting multiple dropdown options.
139
+ */
140
+ multiple = false;
141
+ /**
142
+ * Sets support for hiding the reset option in "single" select mode.
143
+ */
144
+ showResetOption = true;
145
+ /**
146
+ * Sets the placeholder for the dropdown.
147
+ */
148
+ placeholder = '';
149
+ /**
150
+ * Sets the label for the dropdown.
151
+ */
152
+ label = '';
153
+ /**
154
+ * Label to be shown when no options are found after filtering.
155
+ *
156
+ * Note: The label is visible in "multiple" mode only.
157
+ */
158
+ noOptionsFoundLabel = '';
159
+ constructor() {
160
+ this.parentControlDirective.valueAccessor = this;
161
+ }
162
+ /**
163
+ * @ignore
164
+ */
165
+ ngOnInit() {
166
+ this.listenForFilterFieldValueChanges();
167
+ this.initializePropertiesFromParent();
168
+ this.bindParentValidatorsToControl();
169
+ this.bindControlToParent();
170
+ }
171
+ /**
172
+ * @ignore
173
+ */
174
+ writeValue(value) {
175
+ this.matSelectControl.setValue(value);
176
+ }
177
+ /**
178
+ * @ignore
179
+ */
180
+ registerOnChange(onChangeFn) {
181
+ this.changeParentValue = onChangeFn;
182
+ }
183
+ /**
184
+ * @ignore
185
+ */
186
+ registerOnTouched(onTouchFn) {
187
+ this.markParentControlAsTouched = onTouchFn;
188
+ }
189
+ /**
190
+ * @ignore
191
+ */
192
+ setDisabledState(shouldDisable) {
193
+ this.isDisabled = shouldDisable;
194
+ if (shouldDisable) {
195
+ this.matSelectControl.disable();
196
+ }
197
+ else {
198
+ this.matSelectControl.enable();
199
+ }
200
+ }
201
+ /**
202
+ * @ignore
203
+ */
204
+ onToggleAll(toggleAllState) {
205
+ this.filteredOptions$
206
+ .pipe(take(1), map((options) => options.map((option) => option.value)))
207
+ .subscribe((filteredOptions) => {
208
+ const optionsToSelect = toggleAllState ? filteredOptions : [];
209
+ this.matSelectControl.patchValue(optionsToSelect);
210
+ });
211
+ }
212
+ sortOptions(options) {
213
+ return [...options].sort((a, b) => {
214
+ return this.sortDirection === 'asc'
215
+ ? a.displayValue.localeCompare(b.displayValue)
216
+ : b.displayValue.localeCompare(a.displayValue);
217
+ });
218
+ }
219
+ /**
220
+ * @ignore
221
+ */
222
+ listenForFilterFieldValueChanges() {
223
+ this.filterControl.valueChanges.pipe(takeUntilDestroyed(this._destroyRef)).subscribe(() => {
224
+ this.filterOptions();
225
+ if (this.multiple) {
226
+ this.determineToggleAllCheckboxState();
227
+ }
228
+ });
229
+ }
230
+ /**
231
+ * @ignore
232
+ */
233
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
234
+ changeParentValue = (value) => {
235
+ // Intentionally left empty
236
+ };
237
+ /**
238
+ * @ignore
239
+ */
240
+ markParentControlAsTouched = () => {
241
+ // Intentionally left empty
242
+ };
243
+ /**
244
+ * @ignore
245
+ *
246
+ * Store the parent control, its validators and async validators in properties
247
+ * of this component.
248
+ */
249
+ initializePropertiesFromParent() {
250
+ this.parentControl = this.parentControlDirective.control;
251
+ this.validateParent =
252
+ (this.parentControl.validator && this.parentControl.validator.bind(this.parentControl)) ||
253
+ (() => null);
254
+ this.validateParentAsync =
255
+ (this.parentControl.asyncValidator &&
256
+ this.parentControl.asyncValidator.bind(this.parentControl)) ||
257
+ (() => of(null));
258
+ }
259
+ /**
260
+ * @ignore
261
+ *
262
+ * Inherit validators from parent form control.
263
+ */
264
+ bindParentValidatorsToControl() {
265
+ const validators = !this.matSelectControl.validator
266
+ ? [this.validateParent]
267
+ : Array.isArray(this.matSelectControl.validator)
268
+ ? [...this.matSelectControl.validator, this.validateParent]
269
+ : [this.matSelectControl.validator, this.validateParent];
270
+ this.matSelectControl.setValidators(validators);
271
+ const asyncValidators = !this.matSelectControl.asyncValidator
272
+ ? [this.validateParentAsync]
273
+ : Array.isArray(this.matSelectControl.asyncValidator)
274
+ ? [...this.matSelectControl.asyncValidator, this.validateParentAsync]
275
+ : [this.matSelectControl.asyncValidator, this.validateParentAsync];
276
+ this.matSelectControl.setAsyncValidators(asyncValidators);
277
+ this.matSelectControl.updateValueAndValidity();
278
+ }
279
+ /**
280
+ * @ignore
281
+ *
282
+ * Emit values to the parent form control when our form control's value
283
+ * changes.
284
+ *
285
+ * Reflect parent validation errors in our form control.
286
+ */
287
+ bindControlToParent() {
288
+ this.matSelectControl.valueChanges
289
+ .pipe(map((value) => (value === undefined ? null : value)), map((value) => {
290
+ if (Array.isArray(value) && value.length === 0) {
291
+ return null;
292
+ }
293
+ return value;
294
+ }), takeUntilDestroyed(this._destroyRef))
295
+ .subscribe((value) => {
296
+ if (this.multiple) {
297
+ this.determineToggleAllCheckboxState();
298
+ }
299
+ this.markParentControlAsTouched();
300
+ this.changeParentValue(value);
301
+ });
302
+ this.parentControl?.statusChanges
303
+ .pipe(map(() => ({
304
+ ...this.parentControl?.errors,
305
+ })), map((errors) => (Object.keys(errors).length > 0 ? errors : null)), takeUntilDestroyed(this._destroyRef))
306
+ .subscribe((errors) => {
307
+ this.matSelectControl.setErrors(errors);
308
+ });
309
+ }
310
+ /**
311
+ * @ignore
312
+ */
313
+ filterOptions() {
314
+ if (!this._options) {
315
+ return;
316
+ }
317
+ // get the search keyword
318
+ let search = this.filterControl.value.trim();
319
+ if (search) {
320
+ search = search.toLowerCase();
321
+ }
322
+ else {
323
+ return this.filteredOptions$.next(this._options.slice());
324
+ }
325
+ // filter the options
326
+ this.filteredOptions$.next(this._options.filter((option) => option.displayValue.toLowerCase().indexOf(search) > -1));
327
+ }
328
+ /**
329
+ * @ignore
330
+ */
331
+ determineToggleAllCheckboxState() {
332
+ this.filteredOptions$
333
+ .pipe(take(1), filter((options) => options != null && options !== undefined), map((options) => options.map((option) => option.value)))
334
+ .subscribe((filteredOptions) => {
335
+ const selectedOptions = this.matSelectControl.value;
336
+ if (Array.isArray(selectedOptions)) {
337
+ const selectedFilteredOptions = filteredOptions.filter((option) => selectedOptions.includes(option));
338
+ this.isToggleAllIndeterminate =
339
+ selectedFilteredOptions.length > 0 &&
340
+ selectedFilteredOptions.length < filteredOptions.length;
341
+ this.isToggleAllChecked =
342
+ selectedFilteredOptions.length > 0 &&
343
+ selectedFilteredOptions.length === filteredOptions.length;
344
+ }
345
+ });
346
+ }
347
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: WattDropdownComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
348
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.3", type: WattDropdownComponent, isStandalone: true, selector: "watt-dropdown", inputs: { hideSearch: "hideSearch", panelWidth: "panelWidth", getCustomTrigger: "getCustomTrigger", chipMode: "chipMode", disableSelectedMode: "disableSelectedMode", sortDirection: "sortDirection", options: "options", multiple: "multiple", showResetOption: "showResetOption", placeholder: "placeholder", label: "label", noOptionsFoundLabel: "noOptionsFoundLabel" }, host: { properties: { "attr.watt-field-disabled": "this.isDisabled", "class.watt-chip-mode": "this.chipModeClass" } }, viewQueries: [{ propertyName: "matSelect", first: true, predicate: ["matSelect"], descendants: true, static: true }], ngImport: i0, template: "<!--\n@license\nCopyright 2020 Energinet DataHub A/S\n\nLicensed under the Apache License, Version 2.0 (the \"License2\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n-->\n<watt-field\n [control]=\"parentControl\"\n [chipMode]=\"chipMode\"\n [label]=\"label\"\n (click)=\"matSelect.open()\"\n>\n @if (chipMode) {\n <watt-menu-chip\n [opened]=\"matSelect.panelOpen\"\n (toggle)=\"matSelect.open()\"\n [selected]=\"!!matSelect?.triggerValue && !disableSelectedMode\"\n [disabled]=\"matSelectControl.disabled\"\n >\n {{ placeholder }}\n @if (showTriggerValue) {\n <span>\n @if (placeholder) {\n :\n }\n {{ getCustomTrigger?.(matSelect.value) ?? matSelect?.triggerValue }}\n </span>\n }\n @if (showChipLabel) {\n <span class=\"watt-chip-label\">{{ matSelectControl.value?.length }}</span>\n }\n </watt-menu-chip>\n }\n\n <mat-select\n [attr.aria-label]=\"label\"\n [formControl]=\"matSelectControl\"\n [placeholder]=\"placeholder\"\n #matSelect\n [panelWidth]=\"panelWidth\"\n [multiple]=\"multiple\"\n [ngClass]=\"{ chip: chipMode }\"\n [panelClass]=\"{\n 'watt-dropdown-panel': true,\n 'watt-dropdown-panel-chip-mode': chipMode,\n }\"\n >\n <!-- We use this instead of ngIf, since it will trigger a NG0100: ExpressionChangedAfterItHasBeenCheckedError: Expression has changed after it was checked. -->\n <mat-option [style.display]=\"!hideSearch ? 'block' : 'none'\">\n <ngx-mat-select-search\n [formControl]=\"filterControl\"\n [placeholderLabel]=\"placeholder\"\n closeIcon=\"close\"\n [showToggleAllCheckbox]=\"multiple\"\n (toggleAll)=\"onToggleAll($event)\"\n [toggleAllCheckboxChecked]=\"isToggleAllChecked\"\n [toggleAllCheckboxIndeterminate]=\"isToggleAllIndeterminate\"\n [noEntriesFoundLabel]=\"noOptionsFoundLabel\"\n >\n <watt-icon ngxMatSelectSearchClear name=\"close\" size=\"s\" />\n </ngx-mat-select-search>\n </mat-option>\n\n @if (!multiple && showResetOption) {\n <mat-option>{{ emDash }}</mat-option>\n }\n\n @for (option of filteredOptions$ | push; track option) {\n <mat-option [value]=\"option.value\" [disabled]=\"option.disabled\">\n {{ option.displayValue }}\n </mat-option>\n }\n </mat-select>\n <ng-content />\n <ng-content ngProjectAs=\"watt-field-hint\" select=\"watt-field-hint\" />\n <ng-content ngProjectAs=\"watt-field-error\" select=\"watt-field-error\" />\n</watt-field>\n", styles: ["watt-dropdown:not(.watt-chip-mode){width:100%}watt-dropdown{--watt-input-color: var(--watt-typography-text-color);--watt-input-placeholder-color: var(--watt-on-light-high-emphasis);display:block;width:auto}watt-dropdown watt-field label .watt-field-wrapper{padding:0;position:relative}watt-dropdown.watt-chip-mode.ng-dirty.ng-invalid .watt-field-wrapper watt-chip label{border:1px solid var(--watt-color-state-danger)}watt-dropdown.watt-chip-mode[disabled=true] watt-field label .watt-field-wrapper{background-color:transparent}watt-dropdown .mat-input-element{font-size:.875rem;line-height:1.25rem;font-weight:400;text-transform:none;letter-spacing:0;color:var(--watt-input-color);caret-color:var(--watt-color-neutral-grey-900)!important;padding:0 12px}watt-dropdown .mat-mdc-select-arrow{color:var(--watt-dropdown-arrow-color, rgba(0, 0, 0, .54));border:none;width:auto;height:auto}watt-dropdown .mat-mdc-select-arrow:before{width:.6em;height:.6em;bottom:.2em;position:relative;display:inline-block;border-style:solid;border-width:0 0 .15em .15em;transform:rotate(315deg);border-color:var(--watt-color-primary);content:\"\"}watt-dropdown .mat-mdc-select-arrow svg{display:none}watt-dropdown .mat-mdc-select-trigger{font-size:.875rem;line-height:1.25rem;font-weight:400;text-transform:none;letter-spacing:0;padding:0 var(--watt-space-m)}watt-dropdown .mat-mdc-select-value{color:var(--watt-color-neutral-black);padding-right:var(--watt-space-m)}watt-dropdown .mat-mdc-select.mat-mdc-select-invalid.ng-pristine .mat-mdc-select-arrow{color:currentColor}watt-dropdown .watt-chip-label{float:right;margin-left:var(--watt-space-s);background:var(--watt-color-neutral-white)}watt-dropdown .watt-field--chip .mat-mdc-select{visibility:hidden;position:absolute;width:100%}watt-dropdown .mat-mdc-select-placeholder{color:var(--watt-input-placeholder-color)}watt-dropdown watt-field label .watt-field-wrapper{background-color:transparent}.watt-dropdown-panel{--watt-input-color: var(--watt-typography-text-color);padding:0}.watt-dropdown-panel mat-option:nth-of-type(2){border-top:1px solid var(--watt-color-neutral-grey-300)}.watt-dropdown-panel .mat-select-search-inner-row .mat-select-search-input,.watt-dropdown-panel mat-option.contains-mat-select-search{height:48px}.watt-dropdown-panel:not(.watt-dropdown-panel-chip-mode){min-width:calc(100% + 2px)!important;margin-top:-36px;margin-left:-1px;min-height:48px}.watt-dropdown-panel .mat-mdc-checkbox.mat-select-search-toggle-all-checkbox{padding:0;margin:0 var(--watt-space-m)}.watt-dropdown-panel .mat-datepicker-content .mat-mdc-icon-button{--mat-mdc-button-persistent-ripple-color: transparent;--mat-mdc-button-ripple-color: transparent}.watt-dropdown-panel.watt-dropdown-panel-chip-mode{margin-top:4px}.watt-dropdown-panel.mat-mdc-select-search-panel{transform:scaleY(1)!important}.watt-dropdown-panel .mat-mdc-option.mdc-list-item.contains-mat-select-search.mat-mdc-option-multiple{background-color:transparent}.watt-dropdown-panel ngx-mat-select-search .mat-select-search-inner-multiple .mat-select-search-inner-row{margin-left:5px}.watt-dropdown-panel ngx-mat-select-search .mat-mdc-checkbox.mat-select-search-toggle-all-checkbox{margin:0}.watt-dropdown-panel .mdc-list-item .mat-select-search-input,.watt-dropdown-panel .mat-mdc-option.mdc-list-item,.watt-dropdown-panel .mat-select-search-no-entries-found{font-size:.875rem;line-height:1.25rem;font-weight:400;text-transform:none;letter-spacing:0;color:var(--watt-input-color)}.watt-dropdown-panel .mat-mdc-option.mdc-list-item .mat-select-search-no-entries-found{padding:var(--watt-space-s)}.watt-dropdown-panel .mat-checkbox-frame,.watt-dropdown-panel .mat-mdc-checkbox{border-color:var(--watt-color-primary)}.watt-dropdown-panel :not(.mat-mdc-option-multiple) .mat-pseudo-checkbox{display:none}.watt-dropdown-panel .mat-pseudo-checkbox,.watt-dropdown-panel .mat-mdc-checkbox{color:var(--watt-color-primary)}.watt-dropdown-panel .mat-mdc-option{color:var(--watt-color-neutral-black);min-height:42px}.watt-dropdown-panel .mat-mdc-option[aria-disabled=true].contains-mat-select-search{margin-top:0;top:auto}.watt-dropdown-panel .mat-mdc-option.mdc-list-item.mat-mdc-option-active,.watt-dropdown-panel .mat-mdc-option.mdc-list-item.mdc-list-item--selected.mat-mdc-option-active:not(.mat-mdc-option-multiple),.watt-dropdown-panel .mat-mdc-option:hover:not(.mat-mdc-option-disabled,.contains-mat-select-search),.watt-dropdown-panel .mat-mdc-option:focus:not(.mat-mdc-option-disabled){background-color:var(--watt-color-primary-light)}.watt-dropdown-panel .mat-mdc-option .mat-mdc-select-search-no-entries-found{text-align:center;padding:0}.watt-dropdown-panel .mat-mdc-option.mat-mdc-option-disabled{color:var(--watt-color-neutral-grey-400);cursor:not-allowed}.watt-dropdown-panel .mat-mdc-select-search-input:not(.mat-mdc-select-search-hidden){color:var(--watt-color-neutral-black)}.watt-dropdown-panel .mat-mdc-select-search-clear{background-color:var(--watt-color-neutral-white);color:var(--watt-color-neutral-grey-400)}.watt-dropdown-panel .mat-mdc-select-search-clear mat-icon{line-height:20px!important}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i1.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth", "canSelectNullableOptions"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i1.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "pipe", type: RxPush, name: "push" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: NgxMatSelectSearchModule }, { kind: "component", type: i3.MatSelectSearchComponent, selector: "ngx-mat-select-search", inputs: ["placeholderLabel", "type", "closeIcon", "closeSvgIcon", "noEntriesFoundLabel", "clearSearchInput", "searching", "disableInitialFocus", "enableClearOnEscapePressed", "preventHomeEndKeyPropagation", "disableScrollToActiveOnOptionsChanged", "ariaLabel", "showToggleAllCheckbox", "toggleAllCheckboxChecked", "toggleAllCheckboxIndeterminate", "toggleAllCheckboxTooltipMessage", "toggleAllCheckboxTooltipPosition", "hideClearSearchButton", "alwaysRestoreSelectedOptionsMulti", "recreateValuesArray"], outputs: ["toggleAll"] }, { kind: "directive", type: i3.MatSelectSearchClearDirective, selector: "[ngxMatSelectSearchClear]" }, { kind: "component", type: WattMenuChipComponent, selector: "watt-menu-chip", inputs: ["opened", "disabled", "name", "value", "selected", "hasPopup"], outputs: ["toggle"] }, { kind: "component", type: WattFieldComponent, selector: "watt-field", inputs: ["control", "label", "id", "chipMode", "tooltip", "placeholder", "anchorName"] }, { kind: "component", type: WattIconComponent, selector: "watt-icon", inputs: ["name", "label", "size", "state"] }], encapsulation: i0.ViewEncapsulation.None });
349
+ }
350
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: WattDropdownComponent, decorators: [{
351
+ type: Component,
352
+ args: [{ selector: 'watt-dropdown', encapsulation: ViewEncapsulation.None, imports: [
353
+ NgClass,
354
+ MatSelectModule,
355
+ RxPush,
356
+ ReactiveFormsModule,
357
+ NgxMatSelectSearchModule,
358
+ WattMenuChipComponent,
359
+ WattFieldComponent,
360
+ WattIconComponent,
361
+ ], template: "<!--\n@license\nCopyright 2020 Energinet DataHub A/S\n\nLicensed under the Apache License, Version 2.0 (the \"License2\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n-->\n<watt-field\n [control]=\"parentControl\"\n [chipMode]=\"chipMode\"\n [label]=\"label\"\n (click)=\"matSelect.open()\"\n>\n @if (chipMode) {\n <watt-menu-chip\n [opened]=\"matSelect.panelOpen\"\n (toggle)=\"matSelect.open()\"\n [selected]=\"!!matSelect?.triggerValue && !disableSelectedMode\"\n [disabled]=\"matSelectControl.disabled\"\n >\n {{ placeholder }}\n @if (showTriggerValue) {\n <span>\n @if (placeholder) {\n :\n }\n {{ getCustomTrigger?.(matSelect.value) ?? matSelect?.triggerValue }}\n </span>\n }\n @if (showChipLabel) {\n <span class=\"watt-chip-label\">{{ matSelectControl.value?.length }}</span>\n }\n </watt-menu-chip>\n }\n\n <mat-select\n [attr.aria-label]=\"label\"\n [formControl]=\"matSelectControl\"\n [placeholder]=\"placeholder\"\n #matSelect\n [panelWidth]=\"panelWidth\"\n [multiple]=\"multiple\"\n [ngClass]=\"{ chip: chipMode }\"\n [panelClass]=\"{\n 'watt-dropdown-panel': true,\n 'watt-dropdown-panel-chip-mode': chipMode,\n }\"\n >\n <!-- We use this instead of ngIf, since it will trigger a NG0100: ExpressionChangedAfterItHasBeenCheckedError: Expression has changed after it was checked. -->\n <mat-option [style.display]=\"!hideSearch ? 'block' : 'none'\">\n <ngx-mat-select-search\n [formControl]=\"filterControl\"\n [placeholderLabel]=\"placeholder\"\n closeIcon=\"close\"\n [showToggleAllCheckbox]=\"multiple\"\n (toggleAll)=\"onToggleAll($event)\"\n [toggleAllCheckboxChecked]=\"isToggleAllChecked\"\n [toggleAllCheckboxIndeterminate]=\"isToggleAllIndeterminate\"\n [noEntriesFoundLabel]=\"noOptionsFoundLabel\"\n >\n <watt-icon ngxMatSelectSearchClear name=\"close\" size=\"s\" />\n </ngx-mat-select-search>\n </mat-option>\n\n @if (!multiple && showResetOption) {\n <mat-option>{{ emDash }}</mat-option>\n }\n\n @for (option of filteredOptions$ | push; track option) {\n <mat-option [value]=\"option.value\" [disabled]=\"option.disabled\">\n {{ option.displayValue }}\n </mat-option>\n }\n </mat-select>\n <ng-content />\n <ng-content ngProjectAs=\"watt-field-hint\" select=\"watt-field-hint\" />\n <ng-content ngProjectAs=\"watt-field-error\" select=\"watt-field-error\" />\n</watt-field>\n", styles: ["watt-dropdown:not(.watt-chip-mode){width:100%}watt-dropdown{--watt-input-color: var(--watt-typography-text-color);--watt-input-placeholder-color: var(--watt-on-light-high-emphasis);display:block;width:auto}watt-dropdown watt-field label .watt-field-wrapper{padding:0;position:relative}watt-dropdown.watt-chip-mode.ng-dirty.ng-invalid .watt-field-wrapper watt-chip label{border:1px solid var(--watt-color-state-danger)}watt-dropdown.watt-chip-mode[disabled=true] watt-field label .watt-field-wrapper{background-color:transparent}watt-dropdown .mat-input-element{font-size:.875rem;line-height:1.25rem;font-weight:400;text-transform:none;letter-spacing:0;color:var(--watt-input-color);caret-color:var(--watt-color-neutral-grey-900)!important;padding:0 12px}watt-dropdown .mat-mdc-select-arrow{color:var(--watt-dropdown-arrow-color, rgba(0, 0, 0, .54));border:none;width:auto;height:auto}watt-dropdown .mat-mdc-select-arrow:before{width:.6em;height:.6em;bottom:.2em;position:relative;display:inline-block;border-style:solid;border-width:0 0 .15em .15em;transform:rotate(315deg);border-color:var(--watt-color-primary);content:\"\"}watt-dropdown .mat-mdc-select-arrow svg{display:none}watt-dropdown .mat-mdc-select-trigger{font-size:.875rem;line-height:1.25rem;font-weight:400;text-transform:none;letter-spacing:0;padding:0 var(--watt-space-m)}watt-dropdown .mat-mdc-select-value{color:var(--watt-color-neutral-black);padding-right:var(--watt-space-m)}watt-dropdown .mat-mdc-select.mat-mdc-select-invalid.ng-pristine .mat-mdc-select-arrow{color:currentColor}watt-dropdown .watt-chip-label{float:right;margin-left:var(--watt-space-s);background:var(--watt-color-neutral-white)}watt-dropdown .watt-field--chip .mat-mdc-select{visibility:hidden;position:absolute;width:100%}watt-dropdown .mat-mdc-select-placeholder{color:var(--watt-input-placeholder-color)}watt-dropdown watt-field label .watt-field-wrapper{background-color:transparent}.watt-dropdown-panel{--watt-input-color: var(--watt-typography-text-color);padding:0}.watt-dropdown-panel mat-option:nth-of-type(2){border-top:1px solid var(--watt-color-neutral-grey-300)}.watt-dropdown-panel .mat-select-search-inner-row .mat-select-search-input,.watt-dropdown-panel mat-option.contains-mat-select-search{height:48px}.watt-dropdown-panel:not(.watt-dropdown-panel-chip-mode){min-width:calc(100% + 2px)!important;margin-top:-36px;margin-left:-1px;min-height:48px}.watt-dropdown-panel .mat-mdc-checkbox.mat-select-search-toggle-all-checkbox{padding:0;margin:0 var(--watt-space-m)}.watt-dropdown-panel .mat-datepicker-content .mat-mdc-icon-button{--mat-mdc-button-persistent-ripple-color: transparent;--mat-mdc-button-ripple-color: transparent}.watt-dropdown-panel.watt-dropdown-panel-chip-mode{margin-top:4px}.watt-dropdown-panel.mat-mdc-select-search-panel{transform:scaleY(1)!important}.watt-dropdown-panel .mat-mdc-option.mdc-list-item.contains-mat-select-search.mat-mdc-option-multiple{background-color:transparent}.watt-dropdown-panel ngx-mat-select-search .mat-select-search-inner-multiple .mat-select-search-inner-row{margin-left:5px}.watt-dropdown-panel ngx-mat-select-search .mat-mdc-checkbox.mat-select-search-toggle-all-checkbox{margin:0}.watt-dropdown-panel .mdc-list-item .mat-select-search-input,.watt-dropdown-panel .mat-mdc-option.mdc-list-item,.watt-dropdown-panel .mat-select-search-no-entries-found{font-size:.875rem;line-height:1.25rem;font-weight:400;text-transform:none;letter-spacing:0;color:var(--watt-input-color)}.watt-dropdown-panel .mat-mdc-option.mdc-list-item .mat-select-search-no-entries-found{padding:var(--watt-space-s)}.watt-dropdown-panel .mat-checkbox-frame,.watt-dropdown-panel .mat-mdc-checkbox{border-color:var(--watt-color-primary)}.watt-dropdown-panel :not(.mat-mdc-option-multiple) .mat-pseudo-checkbox{display:none}.watt-dropdown-panel .mat-pseudo-checkbox,.watt-dropdown-panel .mat-mdc-checkbox{color:var(--watt-color-primary)}.watt-dropdown-panel .mat-mdc-option{color:var(--watt-color-neutral-black);min-height:42px}.watt-dropdown-panel .mat-mdc-option[aria-disabled=true].contains-mat-select-search{margin-top:0;top:auto}.watt-dropdown-panel .mat-mdc-option.mdc-list-item.mat-mdc-option-active,.watt-dropdown-panel .mat-mdc-option.mdc-list-item.mdc-list-item--selected.mat-mdc-option-active:not(.mat-mdc-option-multiple),.watt-dropdown-panel .mat-mdc-option:hover:not(.mat-mdc-option-disabled,.contains-mat-select-search),.watt-dropdown-panel .mat-mdc-option:focus:not(.mat-mdc-option-disabled){background-color:var(--watt-color-primary-light)}.watt-dropdown-panel .mat-mdc-option .mat-mdc-select-search-no-entries-found{text-align:center;padding:0}.watt-dropdown-panel .mat-mdc-option.mat-mdc-option-disabled{color:var(--watt-color-neutral-grey-400);cursor:not-allowed}.watt-dropdown-panel .mat-mdc-select-search-input:not(.mat-mdc-select-search-hidden){color:var(--watt-color-neutral-black)}.watt-dropdown-panel .mat-mdc-select-search-clear{background-color:var(--watt-color-neutral-white);color:var(--watt-color-neutral-grey-400)}.watt-dropdown-panel .mat-mdc-select-search-clear mat-icon{line-height:20px!important}\n"] }]
362
+ }], ctorParameters: () => [], propDecorators: { isDisabled: [{
363
+ type: HostBinding,
364
+ args: ['attr.watt-field-disabled']
365
+ }], matSelect: [{
366
+ type: ViewChild,
367
+ args: ['matSelect', { static: true }]
368
+ }], hideSearch: [{
369
+ type: Input
370
+ }], panelWidth: [{
371
+ type: Input
372
+ }], getCustomTrigger: [{
373
+ type: Input
374
+ }], chipMode: [{
375
+ type: Input
376
+ }], chipModeClass: [{
377
+ type: HostBinding,
378
+ args: ['class.watt-chip-mode']
379
+ }], disableSelectedMode: [{
380
+ type: Input
381
+ }], sortDirection: [{
382
+ type: Input
383
+ }], options: [{
384
+ type: Input
385
+ }], multiple: [{
386
+ type: Input
387
+ }], showResetOption: [{
388
+ type: Input
389
+ }], placeholder: [{
390
+ type: Input
391
+ }], label: [{
392
+ type: Input
393
+ }], noOptionsFoundLabel: [{
394
+ type: Input
395
+ }] } });
396
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2F0dC1kcm9wZG93bi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL3dhdHQvcGFja2FnZS9kcm9wZG93bi93YXR0LWRyb3Bkb3duLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL2xpYnMvd2F0dC9wYWNrYWdlL2Ryb3Bkb3duL3dhdHQtZHJvcGRvd24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsaUJBQWlCO0FBQ2pCOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUNILFlBQVk7QUFDWixPQUFPLEVBQ0wsU0FBUyxFQUNULFVBQVUsRUFDVixXQUFXLEVBQ1gsS0FBSyxFQUVMLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFHTCxXQUFXLEVBQ1gsU0FBUyxFQUNULGtCQUFrQixFQUdsQixtQkFBbUIsR0FDcEIsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxlQUFlLEVBQUUsU0FBUyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdEUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDakUsT0FBTyxFQUFFLEVBQUUsRUFBRSxhQUFhLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDNUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFaEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFHM0QsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0s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QUFoQixLQUFLO2dCQUtHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBS0csV0FBVztzQkFBbkIsS0FBSztnQkFLRyxLQUFLO3NCQUFiLEtBQUs7Z0JBT0csbUJBQW1CO3NCQUEzQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLy8jcmVnaW9uIExpY2Vuc2Vcbi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCAyMDIwIEVuZXJnaW5ldCBEYXRhSHViIEEvU1xuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2UyXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8vI2VuZHJlZ2lvblxuaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBEZXN0cm95UmVmLFxuICBIb3N0QmluZGluZyxcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbiAgVmlld0NoaWxkLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgaW5qZWN0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEFzeW5jVmFsaWRhdG9yRm4sXG4gIENvbnRyb2xWYWx1ZUFjY2Vzc29yLFxuICBGb3JtQ29udHJvbCxcbiAgTmdDb250cm9sLFxuICBVbnR5cGVkRm9ybUNvbnRyb2wsXG4gIFZhbGlkYXRpb25FcnJvcnMsXG4gIFZhbGlkYXRvckZuLFxuICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBOZ0NsYXNzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFJ4UHVzaCB9IGZyb20gJ0ByeC1hbmd1bGFyL3RlbXBsYXRlL3B1c2gnO1xuaW1wb3J0IHsgTWF0U2VsZWN0TW9kdWxlLCBNYXRTZWxlY3QgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3QnO1xuaW1wb3J0IHsgTmd4TWF0U2VsZWN0U2VhcmNoTW9kdWxlIH0gZnJvbSAnbmd4LW1hdC1zZWxlY3Qtc2VhcmNoJztcbmltcG9ydCB7IG9mLCBSZXBsYXlTdWJqZWN0LCBtYXAsIHRha2UsIGZpbHRlciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuXG5pbXBvcnQgeyBXYXR0RmllbGRDb21wb25lbnQgfSBmcm9tICdAZW5lcmdpbmV0L3dhdHQvZmllbGQnO1xuaW1wb3J0IHR5cGUgeyBXYXR0RHJvcGRvd25PcHRpb25zIH0gZnJvbSAnLi93YXR0LWRyb3Bkb3duLW9wdGlvbic7XG5pbXBvcnQgdHlwZSB7IFdhdHREcm9wZG93blZhbHVlIH0gZnJvbSAnLi93YXR0LWRyb3Bkb3duLXZhbHVlJztcbmltcG9ydCB7IFdhdHRNZW51Q2hpcENvbXBvbmVudCB9IGZyb20gJ0BlbmVyZ2luZXQvd2F0dC9jaGlwJztcbmltcG9ydCB7IFdhdHRJY29uQ29tcG9uZW50IH0gZnJvbSAnQGVuZXJnaW5ldC93YXR0L2ljb24nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd3YXR0LWRyb3Bkb3duJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3dhdHQtZHJvcGRvd24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi93YXR0LWRyb3Bkb3duLmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGltcG9ydHM6IFtcbiAgICBOZ0NsYXNzLFxuICAgIE1hdFNlbGVjdE1vZHVsZSxcbiAgICBSeFB1c2gsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBOZ3hNYXRTZWxlY3RTZWFyY2hNb2R1bGUsXG4gICAgV2F0dE1lbnVDaGlwQ29tcG9uZW50LFxuICAgIFdhdHRGaWVsZENvbXBvbmVudCxcbiAgICBXYXR0SWNvbkNvbXBvbmVudCxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgV2F0dERyb3Bkb3duQ29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uSW5pdCB7XG4gIHByaXZhdGUgcGFyZW50Q29udHJvbERpcmVjdGl2ZSA9IGluamVjdChOZ0NvbnRyb2wsIHsgaG9zdDogdHJ1ZSB9KTtcbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIHByaXZhdGUgX2Rlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBwYXJlbnRDb250cm9sOiBGb3JtQ29udHJvbCB8IG51bGwgPSBudWxsO1xuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgcHJpdmF0ZSB2YWxpZGF0ZVBhcmVudD86IFZhbGlkYXRvckZuO1xuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgcHJpdmF0ZSB2YWxpZGF0ZVBhcmVudEFzeW5jPzogQXN5bmNWYWxpZGF0b3JGbjtcblxuICAvKipcbiAgICogQGlnbm9yZVxuICAgKlxuICAgKi9cbiAgQEhvc3RCaW5kaW5nKCdhdHRyLndhdHQtZmllbGQtZGlzYWJsZWQnKSBpc0Rpc2FibGVkID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIG1hdFNlbGVjdENvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2w8c3RyaW5nIHwgc3RyaW5nW10gfCB1bmRlZmluZWQgfCBudWxsPihudWxsKTtcblxuICAvKipcbiAgICogQ29udHJvbCBmb3IgdGhlIE1hdFNlbGVjdCBmaWx0ZXIga2V5d29yZFxuICAgKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBmaWx0ZXJDb250cm9sID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbCgpO1xuXG4gIC8qKlxuICAgKiBMaXN0IG9mIG9wdGlvbnMgZmlsdGVyZWQgYnkgc2VhcmNoIGtleXdvcmRcbiAgICpcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgZmlsdGVyZWRPcHRpb25zJCA9IG5ldyBSZXBsYXlTdWJqZWN0PFdhdHREcm9wZG93bk9wdGlvbnM+KDEpO1xuXG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBlbURhc2ggPSAn4oCUJztcblxuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgaXNUb2dnbGVBbGxDaGVja2VkID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIGlzVG9nZ2xlQWxsSW5kZXRlcm1pbmF0ZSA9IGZhbHNlO1xuXG4gIF9vcHRpb25zOiBXYXR0RHJvcGRvd25PcHRpb25zID0gW107XG5cbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIGdldCBzaG93VHJpZ2dlclZhbHVlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAodGhpcy5tdWx0aXBsZSAmJlxuICAgICAgdGhpcy5tYXRTZWxlY3RDb250cm9sLnZhbHVlPy5sZW5ndGggPT09IDEgJiZcbiAgICAgIHRoaXMubWF0U2VsZWN0Q29udHJvbC52YWx1ZVswXSAhPT0gJycpIHx8XG4gICAgICAoIXRoaXMubXVsdGlwbGUgJiYgdGhpcy5tYXRTZWxlY3Q/LnRyaWdnZXJWYWx1ZSlcbiAgICAgID8gdHJ1ZVxuICAgICAgOiBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBnZXQgc2hvd0NoaXBMYWJlbCgpIHtcbiAgICByZXR1cm4gdGhpcy5tdWx0aXBsZSAmJiB0aGlzLm1hdFNlbGVjdENvbnRyb2wudmFsdWUgJiYgdGhpcy5tYXRTZWxlY3RDb250cm9sLnZhbHVlLmxlbmd0aCA+IDFcbiAgICAgID8gdHJ1ZVxuICAgICAgOiBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBAVmlld0NoaWxkKCdtYXRTZWxlY3QnLCB7IHN0YXRpYzogdHJ1ZSB9KSBtYXRTZWxlY3Q/OiBNYXRTZWxlY3Q7XG5cbiAgQElucHV0KCkgaGlkZVNlYXJjaCA9IGZhbHNlO1xuICBASW5wdXQoKSBwYW5lbFdpZHRoOiBudWxsIHwgJ2F1dG8nID0gbnVsbDtcbiAgQElucHV0KCkgZ2V0Q3VzdG9tVHJpZ2dlcj86ICh2YWx1ZTogc3RyaW5nIHwgc3RyaW5nW10pID0+IHN0cmluZztcblxuICAvKipcbiAgICogU2V0IHRoZSBtb2RlIG9mIHRoZSBkcm9wZG93bi5cbiAgICovXG4gIEBJbnB1dCgpIGNoaXBNb2RlID0gZmFsc2U7XG4gIEBIb3N0QmluZGluZygnY2xhc3Mud2F0dC1jaGlwLW1vZGUnKVxuICBnZXQgY2hpcE1vZGVDbGFzcygpIHtcbiAgICByZXR1cm4gdGhpcy5jaGlwTW9kZTtcbiAgfVxuXG4gIEBJbnB1dCgpIGRpc2FibGVTZWxlY3RlZE1vZGUgPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBzb3J0RGlyZWN0aW9uOiAnYXNjJyB8ICdkZXNjJyB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogU2V0cyB0aGUgb3B0aW9ucyBmb3IgdGhlIGRyb3Bkb3duLlxuICAgKi9cbiAgQElucHV0KClcbiAgc2V0IG9wdGlvbnMob3B0aW9uczogV2F0dERyb3Bkb3duT3B0aW9ucykge1xuICAgIGlmIChBcnJheS5pc0FycmF5KG9wdGlvbnMpKSB7XG4gICAgICBsZXQgb3B0aW9uc0NvcHkgPSBbLi4ub3B0aW9uc107XG5cbiAgICAgIGlmICh0aGlzLnNvcnREaXJlY3Rpb24pIHtcbiAgICAgICAgb3B0aW9uc0NvcHkgPSB0aGlzLnNvcnRPcHRpb25zKG9wdGlvbnNDb3B5KTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5fb3B0aW9ucyA9IG9wdGlvbnNDb3B5O1xuICAgICAgdGhpcy5maWx0ZXJlZE9wdGlvbnMkLm5leHQob3B0aW9uc0NvcHkpO1xuICAgIH1cbiAgfVxuICBnZXQgb3B0aW9ucygpOiBXYXR0RHJvcGRvd25PcHRpb25zIHtcbiAgICByZXR1cm4gdGhpcy5fb3B0aW9ucztcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHN1cHBvcnQgZm9yIHNlbGVjdGluZyBtdWx0aXBsZSBkcm9wZG93biBvcHRpb25zLlxuICAgKi9cbiAgQElucHV0KCkgbXVsdGlwbGUgPSBmYWxzZTtcblxuICAvKipcbiAgICogU2V0cyBzdXBwb3J0IGZvciBoaWRpbmcgdGhlIHJlc2V0IG9wdGlvbiBpbiBcInNpbmdsZVwiIHNlbGVjdCBtb2RlLlxuICAgKi9cbiAgQElucHV0KCkgc2hvd1Jlc2V0T3B0aW9uID0gdHJ1ZTtcblxuICAvKipcbiAgICogU2V0cyB0aGUgcGxhY2Vob2xkZXIgZm9yIHRoZSBkcm9wZG93bi5cbiAgICovXG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyID0gJyc7XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIGxhYmVsIGZvciB0aGUgZHJvcGRvd24uXG4gICAqL1xuICBASW5wdXQoKSBsYWJlbCA9ICcnO1xuXG4gIC8qKlxuICAgKiBMYWJlbCB0byBiZSBzaG93biB3aGVuIG5vIG9wdGlvbnMgYXJlIGZvdW5kIGFmdGVyIGZpbHRlcmluZy5cbiAgICpcbiAgICogTm90ZTogVGhlIGxhYmVsIGlzIHZpc2libGUgaW4gXCJtdWx0aXBsZVwiIG1vZGUgb25seS5cbiAgICovXG4gIEBJbnB1dCgpIG5vT3B0aW9uc0ZvdW5kTGFiZWwgPSAnJztcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLnBhcmVudENvbnRyb2xEaXJlY3RpdmUudmFsdWVBY2Nlc3NvciA9IHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5saXN0ZW5Gb3JGaWx0ZXJGaWVsZFZhbHVlQ2hhbmdlcygpO1xuICAgIHRoaXMuaW5pdGlhbGl6ZVByb3BlcnRpZXNGcm9tUGFyZW50KCk7XG4gICAgdGhpcy5iaW5kUGFyZW50VmFsaWRhdG9yc1RvQ29udHJvbCgpO1xuICAgIHRoaXMuYmluZENvbnRyb2xUb1BhcmVudCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIHdyaXRlVmFsdWUodmFsdWU6IFdhdHREcm9wZG93blZhbHVlKTogdm9pZCB7XG4gICAgdGhpcy5tYXRTZWxlY3RDb250cm9sLnNldFZhbHVlKHZhbHVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICByZWdpc3Rlck9uQ2hhbmdlKG9uQ2hhbmdlRm46ICh2YWx1ZTogV2F0dERyb3Bkb3duVmFsdWUpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLmNoYW5nZVBhcmVudFZhbHVlID0gb25DaGFuZ2VGbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICByZWdpc3Rlck9uVG91Y2hlZChvblRvdWNoRm46ICgpID0+IHZvaWQpIHtcbiAgICB0aGlzLm1hcmtQYXJlbnRDb250cm9sQXNUb3VjaGVkID0gb25Ub3VjaEZuO1xuICB9XG5cbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIHNldERpc2FibGVkU3RhdGUoc2hvdWxkRGlzYWJsZTogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuaXNEaXNhYmxlZCA9IHNob3VsZERpc2FibGU7XG4gICAgaWYgKHNob3VsZERpc2FibGUpIHtcbiAgICAgIHRoaXMubWF0U2VsZWN0Q29udHJvbC5kaXNhYmxlKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubWF0U2VsZWN0Q29udHJvbC5lbmFibGUoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgb25Ub2dnbGVBbGwodG9nZ2xlQWxsU3RhdGU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmZpbHRlcmVkT3B0aW9ucyRcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlKDEpLFxuICAgICAgICBtYXAoKG9wdGlvbnMpID0+IG9wdGlvbnMubWFwKChvcHRpb24pID0+IG9wdGlvbi52YWx1ZSkpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKChmaWx0ZXJlZE9wdGlvbnM6IHN0cmluZ1tdKSA9PiB7XG4gICAgICAgIGNvbnN0IG9wdGlvbnNUb1NlbGVjdCA9IHRvZ2dsZUFsbFN0YXRlID8gZmlsdGVyZWRPcHRpb25zIDogW107XG4gICAgICAgIHRoaXMubWF0U2VsZWN0Q29udHJvbC5wYXRjaFZhbHVlKG9wdGlvbnNUb1NlbGVjdCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBzb3J0T3B0aW9ucyhvcHRpb25zOiBXYXR0RHJvcGRvd25PcHRpb25zKTogV2F0dERyb3Bkb3duT3B0aW9ucyB7XG4gICAgcmV0dXJuIFsuLi5vcHRpb25zXS5zb3J0KChhLCBiKSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5zb3J0RGlyZWN0aW9uID09PSAnYXNjJ1xuICAgICAgICA/IGEuZGlzcGxheVZhbHVlLmxvY2FsZUNvbXBhcmUoYi5kaXNwbGF5VmFsdWUpXG4gICAgICAgIDogYi5kaXNwbGF5VmFsdWUubG9jYWxlQ29tcGFyZShhLmRpc3BsYXlWYWx1ZSk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgcHJpdmF0ZSBsaXN0ZW5Gb3JGaWx0ZXJGaWVsZFZhbHVlQ2hhbmdlcygpIHtcbiAgICB0aGlzLmZpbHRlckNvbnRyb2wudmFsdWVDaGFuZ2VzLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuX2Rlc3Ryb3lSZWYpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5maWx0ZXJPcHRpb25zKCk7XG5cbiAgICAgIGlmICh0aGlzLm11bHRpcGxlKSB7XG4gICAgICAgIHRoaXMuZGV0ZXJtaW5lVG9nZ2xlQWxsQ2hlY2tib3hTdGF0ZSgpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgcHJpdmF0ZSBjaGFuZ2VQYXJlbnRWYWx1ZSA9ICh2YWx1ZTogV2F0dERyb3Bkb3duVmFsdWUpOiB2b2lkID0+IHtcbiAgICAvLyBJbnRlbnRpb25hbGx5IGxlZnQgZW1wdHlcbiAgfTtcblxuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgcHJpdmF0ZSBtYXJrUGFyZW50Q29udHJvbEFzVG91Y2hlZCA9ICgpOiB2b2lkID0+IHtcbiAgICAvLyBJbnRlbnRpb25hbGx5IGxlZnQgZW1wdHlcbiAgfTtcblxuICAvKipcbiAgICogQGlnbm9yZVxuICAgKlxuICAgKiBTdG9yZSB0aGUgcGFyZW50IGNvbnRyb2wsIGl0cyB2YWxpZGF0b3JzIGFuZCBhc3luYyB2YWxpZGF0b3JzIGluIHByb3BlcnRpZXNcbiAgICogb2YgdGhpcyBjb21wb25lbnQuXG4gICAqL1xuICBwcml2YXRlIGluaXRpYWxpemVQcm9wZXJ0aWVzRnJvbVBhcmVudCgpOiB2b2lkIHtcbiAgICB0aGlzLnBhcmVudENvbnRyb2wgPSB0aGlzLnBhcmVudENvbnRyb2xEaXJlY3RpdmUuY29udHJvbCBhcyBVbnR5cGVkRm9ybUNvbnRyb2w7XG5cbiAgICB0aGlzLnZhbGlkYXRlUGFyZW50ID1cbiAgICAgICh0aGlzLnBhcmVudENvbnRyb2wudmFsaWRhdG9yICYmIHRoaXMucGFyZW50Q29udHJvbC52YWxpZGF0b3IuYmluZCh0aGlzLnBhcmVudENvbnRyb2wpKSB8fFxuICAgICAgKCgpID0+IG51bGwpO1xuXG4gICAgdGhpcy52YWxpZGF0ZVBhcmVudEFzeW5jID1cbiAgICAgICh0aGlzLnBhcmVudENvbnRyb2wuYXN5bmNWYWxpZGF0b3IgJiZcbiAgICAgICAgdGhpcy5wYXJlbnRDb250cm9sLmFzeW5jVmFsaWRhdG9yLmJpbmQodGhpcy5wYXJlbnRDb250cm9sKSkgfHxcbiAgICAgICgoKSA9PiBvZihudWxsKSk7XG4gIH1cblxuICAvKipcbiAgICogQGlnbm9yZVxuICAgKlxuICAgKiBJbmhlcml0IHZhbGlkYXRvcnMgZnJvbSBwYXJlbnQgZm9ybSBjb250cm9sLlxuICAgKi9cbiAgcHJpdmF0ZSBiaW5kUGFyZW50VmFsaWRhdG9yc1RvQ29udHJvbCgpOiB2b2lkIHtcbiAgICBjb25zdCB2YWxpZGF0b3JzID0gIXRoaXMubWF0U2VsZWN0Q29udHJvbC52YWxpZGF0b3JcbiAgICAgID8gW3RoaXMudmFsaWRhdGVQYXJlbnRdXG4gICAgICA6IEFycmF5LmlzQXJyYXkodGhpcy5tYXRTZWxlY3RDb250cm9sLnZhbGlkYXRvcilcbiAgICAgICAgPyBbLi4udGhpcy5tYXRTZWxlY3RDb250cm9sLnZhbGlkYXRvciwgdGhpcy52YWxpZGF0ZVBhcmVudF1cbiAgICAgICAgOiBbdGhpcy5tYXRTZWxlY3RDb250cm9sLnZhbGlkYXRvciwgdGhpcy52YWxpZGF0ZVBhcmVudF07XG4gICAgdGhpcy5tYXRTZWxlY3RDb250cm9sLnNldFZhbGlkYXRvcnModmFsaWRhdG9ycyk7XG5cbiAgICBjb25zdCBhc3luY1ZhbGlkYXRvcnMgPSAhdGhpcy5tYXRTZWxlY3RDb250cm9sLmFzeW5jVmFsaWRhdG9yXG4gICAgICA/IFt0aGlzLnZhbGlkYXRlUGFyZW50QXN5bmNdXG4gICAgICA6IEFycmF5LmlzQXJyYXkodGhpcy5tYXRTZWxlY3RDb250cm9sLmFzeW5jVmFsaWRhdG9yKVxuICAgICAgICA/IFsuLi50aGlzLm1hdFNlbGVjdENvbnRyb2wuYXN5bmNWYWxpZGF0b3IsIHRoaXMudmFsaWRhdGVQYXJlbnRBc3luY11cbiAgICAgICAgOiBbdGhpcy5tYXRTZWxlY3RDb250cm9sLmFzeW5jVmFsaWRhdG9yLCB0aGlzLnZhbGlkYXRlUGFyZW50QXN5bmNdO1xuICAgIHRoaXMubWF0U2VsZWN0Q29udHJvbC5zZXRBc3luY1ZhbGlkYXRvcnMoYXN5bmNWYWxpZGF0b3JzKTtcblxuICAgIHRoaXMubWF0U2VsZWN0Q29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gIH1cblxuICAvKipcbiAgICogQGlnbm9yZVxuICAgKlxuICAgKiBFbWl0IHZhbHVlcyB0byB0aGUgcGFyZW50IGZvcm0gY29udHJvbCB3aGVuIG91ciBmb3JtIGNvbnRyb2wncyB2YWx1ZVxuICAgKiBjaGFuZ2VzLlxuICAgKlxuICAgKiBSZWZsZWN0IHBhcmVudCB2YWxpZGF0aW9uIGVycm9ycyBpbiBvdXIgZm9ybSBjb250cm9sLlxuICAgKi9cbiAgcHJpdmF0ZSBiaW5kQ29udHJvbFRvUGFyZW50KCk6IHZvaWQge1xuICAgIHRoaXMubWF0U2VsZWN0Q29udHJvbC52YWx1ZUNoYW5nZXNcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKHZhbHVlKSA9PiAodmFsdWUgPT09IHVuZGVmaW5lZCA/IG51bGwgOiB2YWx1ZSkpLFxuICAgICAgICBtYXAoKHZhbHVlOiBXYXR0RHJvcGRvd25WYWx1ZSkgPT4ge1xuICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSAmJiB2YWx1ZS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgfSksXG4gICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLl9kZXN0cm95UmVmKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgodmFsdWU6IFdhdHREcm9wZG93blZhbHVlKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLm11bHRpcGxlKSB7XG4gICAgICAgICAgdGhpcy5kZXRlcm1pbmVUb2dnbGVBbGxDaGVja2JveFN0YXRlKCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLm1hcmtQYXJlbnRDb250cm9sQXNUb3VjaGVkKCk7XG4gICAgICAgIHRoaXMuY2hhbmdlUGFyZW50VmFsdWUodmFsdWUpO1xuICAgICAgfSk7XG5cbiAgICB0aGlzLnBhcmVudENvbnRyb2w/LnN0YXR1c0NoYW5nZXNcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoXG4gICAgICAgICAgKCkgPT5cbiAgICAgICAgICAgICh7XG4gICAgICAgICAgICAgIC4uLnRoaXMucGFyZW50Q29udHJvbD8uZXJyb3JzLFxuICAgICAgICAgICAgfSkgYXMgVmFsaWRhdGlvbkVycm9yc1xuICAgICAgICApLFxuICAgICAgICBtYXAoKGVycm9ycykgPT4gKE9iamVjdC5rZXlzKGVycm9ycykubGVuZ3RoID4gMCA/IGVycm9ycyA6IG51bGwpKSxcbiAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuX2Rlc3Ryb3lSZWYpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKChlcnJvcnMpID0+IHtcbiAgICAgICAgdGhpcy5tYXRTZWxlY3RDb250cm9sLnNldEVycm9ycyhlcnJvcnMpO1xuICAgICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgcHJpdmF0ZSBmaWx0ZXJPcHRpb25zKCkge1xuICAgIGlmICghdGhpcy5fb3B0aW9ucykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIGdldCB0aGUgc2VhcmNoIGtleXdvcmRcbiAgICBsZXQgc2VhcmNoID0gKHRoaXMuZmlsdGVyQ29udHJvbC52YWx1ZSBhcyBzdHJpbmcpLnRyaW0oKTtcblxuICAgIGlmIChzZWFyY2gpIHtcbiAgICAgIHNlYXJjaCA9IHNlYXJjaC50b0xvd2VyQ2FzZSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy5maWx0ZXJlZE9wdGlvbnMkLm5leHQodGhpcy5fb3B0aW9ucy5zbGljZSgpKTtcbiAgICB9XG5cbiAgICAvLyBmaWx0ZXIgdGhlIG9wdGlvbnNcbiAgICB0aGlzLmZpbHRlcmVkT3B0aW9ucyQubmV4dChcbiAgICAgIHRoaXMuX29wdGlvbnMuZmlsdGVyKChvcHRpb24pID0+IG9wdGlvbi5kaXNwbGF5VmFsdWUudG9Mb3dlckNhc2UoKS5pbmRleE9mKHNlYXJjaCkgPiAtMSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIHByaXZhdGUgZGV0ZXJtaW5lVG9nZ2xlQWxsQ2hlY2tib3hTdGF0ZSgpOiB2b2lkIHtcbiAgICB0aGlzLmZpbHRlcmVkT3B0aW9ucyRcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlKDEpLFxuICAgICAgICBmaWx0ZXIoKG9wdGlvbnMpID0+IG9wdGlvbnMgIT0gbnVsbCAmJiBvcHRpb25zICE9PSB1bmRlZmluZWQpLFxuICAgICAgICBtYXAoKG9wdGlvbnMpID0+IG9wdGlvbnMubWFwKChvcHRpb24pID0+IG9wdGlvbi52YWx1ZSkpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKChmaWx0ZXJlZE9wdGlvbnM6IHN0cmluZ1tdKSA9PiB7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkT3B0aW9ucyA9IHRoaXMubWF0U2VsZWN0Q29udHJvbC52YWx1ZTtcblxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShzZWxlY3RlZE9wdGlvbnMpKSB7XG4gICAgICAgICAgY29uc3Qgc2VsZWN0ZWRGaWx0ZXJlZE9wdGlvbnMgPSBmaWx0ZXJlZE9wdGlvbnMuZmlsdGVyKChvcHRpb24pID0+XG4gICAgICAgICAgICBzZWxlY3RlZE9wdGlvbnMuaW5jbHVkZXMob3B0aW9uKVxuICAgICAgICAgICk7XG5cbiAgICAgICAgICB0aGlzLmlzVG9nZ2xlQWxsSW5kZXRlcm1pbmF0ZSA9XG4gICAgICAgICAgICBzZWxlY3RlZEZpbHRlcmVkT3B0aW9ucy5sZW5ndGggPiAwICYmXG4gICAgICAgICAgICBzZWxlY3RlZEZpbHRlcmVkT3B0aW9ucy5sZW5ndGggPCBmaWx0ZXJlZE9wdGlvbnMubGVuZ3RoO1xuXG4gICAgICAgICAgdGhpcy5pc1RvZ2dsZUFsbENoZWNrZWQgPVxuICAgICAgICAgICAgc2VsZWN0ZWRGaWx0ZXJlZE9wdGlvbnMubGVuZ3RoID4gMCAmJlxuICAgICAgICAgICAgc2VsZWN0ZWRGaWx0ZXJlZE9wdGlvbnMubGVuZ3RoID09PSBmaWx0ZXJlZE9wdGlvbnMubGVuZ3RoO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxufVxuIiwiPCEtLVxuQGxpY2Vuc2VcbkNvcHlyaWdodCAyMDIwIEVuZXJnaW5ldCBEYXRhSHViIEEvU1xuXG5MaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlMlwiKTtcbnlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbllvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuXG4gICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG5cblVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbmRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbldJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxubGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4tLT5cbjx3YXR0LWZpZWxkXG4gIFtjb250cm9sXT1cInBhcmVudENvbnRyb2xcIlxuICBbY2hpcE1vZGVdPVwiY2hpcE1vZGVcIlxuICBbbGFiZWxdPVwibGFiZWxcIlxuICAoY2xpY2spPVwibWF0U2VsZWN0Lm9wZW4oKVwiXG4+XG4gIEBpZiAoY2hpcE1vZGUpIHtcbiAgICA8d2F0dC1tZW51LWNoaXBcbiAgICAgIFtvcGVuZWRdPVwibWF0U2VsZWN0LnBhbmVsT3BlblwiXG4gICAgICAodG9nZ2xlKT1cIm1hdFNlbGVjdC5vcGVuKClcIlxuICAgICAgW3NlbGVjdGVkXT1cIiEhbWF0U2VsZWN0Py50cmlnZ2VyVmFsdWUgJiYgIWRpc2FibGVTZWxlY3RlZE1vZGVcIlxuICAgICAgW2Rpc2FibGVkXT1cIm1hdFNlbGVjdENvbnRyb2wuZGlzYWJsZWRcIlxuICAgID5cbiAgICAgIHt7IHBsYWNlaG9sZGVyIH19XG4gICAgICBAaWYgKHNob3dUcmlnZ2VyVmFsdWUpIHtcbiAgICAgICAgPHNwYW4+XG4gICAgICAgICAgQGlmIChwbGFjZWhvbGRlcikge1xuICAgICAgICAgICAgOlxuICAgICAgICAgIH1cbiAgICAgICAgICB7eyBnZXRDdXN0b21UcmlnZ2VyPy4obWF0U2VsZWN0LnZhbHVlKSA/PyBtYXRTZWxlY3Q/LnRyaWdnZXJWYWx1ZSB9fVxuICAgICAgICA8L3NwYW4+XG4gICAgICB9XG4gICAgICBAaWYgKHNob3dDaGlwTGFiZWwpIHtcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJ3YXR0LWNoaXAtbGFiZWxcIj57eyBtYXRTZWxlY3RDb250cm9sLnZhbHVlPy5sZW5ndGggfX08L3NwYW4+XG4gICAgICB9XG4gICAgPC93YXR0LW1lbnUtY2hpcD5cbiAgfVxuXG4gIDxtYXQtc2VsZWN0XG4gICAgW2F0dHIuYXJpYS1sYWJlbF09XCJsYWJlbFwiXG4gICAgW2Zvcm1Db250cm9sXT1cIm1hdFNlbGVjdENvbnRyb2xcIlxuICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgI21hdFNlbGVjdFxuICAgIFtwYW5lbFdpZHRoXT1cInBhbmVsV2lkdGhcIlxuICAgIFttdWx0aXBsZV09XCJtdWx0aXBsZVwiXG4gICAgW25nQ2xhc3NdPVwieyBjaGlwOiBjaGlwTW9kZSB9XCJcbiAgICBbcGFuZWxDbGFzc109XCJ7XG4gICAgICAnd2F0dC1kcm9wZG93bi1wYW5lbCc6IHRydWUsXG4gICAgICAnd2F0dC1kcm9wZG93bi1wYW5lbC1jaGlwLW1vZGUnOiBjaGlwTW9kZSxcbiAgICB9XCJcbiAgPlxuICAgIDwhLS0gV2UgdXNlIHRoaXMgaW5zdGVhZCBvZiBuZ0lmLCBzaW5jZSBpdCB3aWxsIHRyaWdnZXIgYSBORzAxMDA6IEV4cHJlc3Npb25DaGFuZ2VkQWZ0ZXJJdEhhc0JlZW5DaGVja2VkRXJyb3I6IEV4cHJlc3Npb24gaGFzIGNoYW5nZWQgYWZ0ZXIgaXQgd2FzIGNoZWNrZWQuIC0tPlxuICAgIDxtYXQtb3B0aW9uIFtzdHlsZS5kaXNwbGF5XT1cIiFoaWRlU2VhcmNoID8gJ2Jsb2NrJyA6ICdub25lJ1wiPlxuICAgICAgPG5neC1tYXQtc2VsZWN0LXNlYXJjaFxuICAgICAgICBbZm9ybUNvbnRyb2xdPVwiZmlsdGVyQ29udHJvbFwiXG4gICAgICAgIFtwbGFjZWhvbGRlckxhYmVsXT1cInBsYWNlaG9sZGVyXCJcbiAgICAgICAgY2xvc2VJY29uPVwiY2xvc2VcIlxuICAgICAgICBbc2hvd1RvZ2dsZUFsbENoZWNrYm94XT1cIm11bHRpcGxlXCJcbiAgICAgICAgKHRvZ2dsZUFsbCk9XCJvblRvZ2dsZUFsbCgkZXZlbnQpXCJcbiAgICAgICAgW3RvZ2dsZUFsbENoZWNrYm94Q2hlY2tlZF09XCJpc1RvZ2dsZUFsbENoZWNrZWRcIlxuICAgICAgICBbdG9nZ2xlQWxsQ2hlY2tib3hJbmRldGVybWluYXRlXT1cImlzVG9nZ2xlQWxsSW5kZXRlcm1pbmF0ZVwiXG4gICAgICAgIFtub0VudHJpZXNGb3VuZExhYmVsXT1cIm5vT3B0aW9uc0ZvdW5kTGFiZWxcIlxuICAgICAgPlxuICAgICAgICA8d2F0dC1pY29uIG5neE1hdFNlbGVjdFNlYXJjaENsZWFyIG5hbWU9XCJjbG9zZVwiIHNpemU9XCJzXCIgLz5cbiAgICAgIDwvbmd4LW1hdC1zZWxlY3Qtc2VhcmNoPlxuICAgIDwvbWF0LW9wdGlvbj5cblxuICAgIEBpZiAoIW11bHRpcGxlICYmIHNob3dSZXNldE9wdGlvbikge1xuICAgICAgPG1hdC1vcHRpb24+e3sgZW1EYXNoIH19PC9tYXQtb3B0aW9uPlxuICAgIH1cblxuICAgIEBmb3IgKG9wdGlvbiBvZiBmaWx0ZXJlZE9wdGlvbnMkIHwgcHVzaDsgdHJhY2sgb3B0aW9uKSB7XG4gICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwib3B0aW9uLnZhbHVlXCIgW2Rpc2FibGVkXT1cIm9wdGlvbi5kaXNhYmxlZFwiPlxuICAgICAgICB7eyBvcHRpb24uZGlzcGxheVZhbHVlIH19XG4gICAgICA8L21hdC1vcHRpb24+XG4gICAgfVxuICA8L21hdC1zZWxlY3Q+XG4gIDxuZy1jb250ZW50IC8+XG4gIDxuZy1jb250ZW50IG5nUHJvamVjdEFzPVwid2F0dC1maWVsZC1oaW50XCIgc2VsZWN0PVwid2F0dC1maWVsZC1oaW50XCIgLz5cbiAgPG5nLWNvbnRlbnQgbmdQcm9qZWN0QXM9XCJ3YXR0LWZpZWxkLWVycm9yXCIgc2VsZWN0PVwid2F0dC1maWVsZC1lcnJvclwiIC8+XG48L3dhdHQtZmllbGQ+XG4iXX0=
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './index';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5lcmdpbmV0LXdhdHQtZHJvcHpvbmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL3dhdHQvcGFja2FnZS9kcm9wem9uZS9lbmVyZ2luZXQtd2F0dC1kcm9wem9uZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==
@@ -0,0 +1,22 @@
1
+ //#region License
2
+ /**
3
+ * @license
4
+ * Copyright 2020 Energinet DataHub A/S
5
+ *
6
+ * Licensed under the Apache License, Version 2.0 (the "License2");
7
+ * you may not use this file except in compliance with the License.
8
+ * You may obtain a copy of the License at
9
+ *
10
+ * http://www.apache.org/licenses/LICENSE-2.0
11
+ *
12
+ * Unless required by applicable law or agreed to in writing, software
13
+ * distributed under the License is distributed on an "AS IS" BASIS,
14
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ * See the License for the specific language governing permissions and
16
+ * limitations under the License.
17
+ */
18
+ //#endregion
19
+ export { WattDropZone } from './watt-dropzone';
20
+ export { WattDropZoneIntlService } from './watt-dropzone-intl';
21
+ export { FileTypeValidator, MultipleFilesValidator, maxFileSize, limitFiles, } from './watt-dropzone-validators';
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL3dhdHQvcGFja2FnZS9kcm9wem9uZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxpQkFBaUI7QUFDakI7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBQ0gsWUFBWTtBQUNaLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMvRCxPQUFPLEVBQ0wsaUJBQWlCLEVBQ2pCLHNCQUFzQixFQUN0QixXQUFXLEVBQ1gsVUFBVSxHQUNYLE1BQU0sNEJBQTRCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyNyZWdpb24gTGljZW5zZVxuLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IDIwMjAgRW5lcmdpbmV0IERhdGFIdWIgQS9TXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZTJcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLy8jZW5kcmVnaW9uXG5leHBvcnQgeyBXYXR0RHJvcFpvbmUgfSBmcm9tICcuL3dhdHQtZHJvcHpvbmUnO1xuZXhwb3J0IHsgV2F0dERyb3Bab25lSW50bFNlcnZpY2UgfSBmcm9tICcuL3dhdHQtZHJvcHpvbmUtaW50bCc7XG5leHBvcnQge1xuICBGaWxlVHlwZVZhbGlkYXRvcixcbiAgTXVsdGlwbGVGaWxlc1ZhbGlkYXRvcixcbiAgbWF4RmlsZVNpemUsXG4gIGxpbWl0RmlsZXMsXG59IGZyb20gJy4vd2F0dC1kcm9wem9uZS12YWxpZGF0b3JzJztcbiJdfQ==
@@ -0,0 +1,35 @@
1
+ //#region License
2
+ /**
3
+ * @license
4
+ * Copyright 2020 Energinet DataHub A/S
5
+ *
6
+ * Licensed under the Apache License, Version 2.0 (the "License2");
7
+ * you may not use this file except in compliance with the License.
8
+ * You may obtain a copy of the License at
9
+ *
10
+ * http://www.apache.org/licenses/LICENSE-2.0
11
+ *
12
+ * Unless required by applicable law or agreed to in writing, software
13
+ * distributed under the License is distributed on an "AS IS" BASIS,
14
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ * See the License for the specific language governing permissions and
16
+ * limitations under the License.
17
+ */
18
+ //#endregion
19
+ import { Injectable } from '@angular/core';
20
+ import * as i0 from "@angular/core";
21
+ export class WattDropZoneIntlService {
22
+ prompt = 'Drop file here';
23
+ promptMultiple = 'Drop files here';
24
+ separator = 'or';
25
+ button = 'Choose file';
26
+ buttonMultiple = 'Choose files';
27
+ loadingMessage = 'Loading';
28
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: WattDropZoneIntlService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
29
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: WattDropZoneIntlService, providedIn: 'root' });
30
+ }
31
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: WattDropZoneIntlService, decorators: [{
32
+ type: Injectable,
33
+ args: [{ providedIn: 'root' }]
34
+ }] });
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2F0dC1kcm9wem9uZS1pbnRsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGlicy93YXR0L3BhY2thZ2UvZHJvcHpvbmUvd2F0dC1kcm9wem9uZS1pbnRsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGlCQUFpQjtBQUNqQjs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFDSCxZQUFZO0FBQ1osT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFHM0MsTUFBTSxPQUFPLHVCQUF1QjtJQUNsQyxNQUFNLEdBQUcsZ0JBQWdCLENBQUM7SUFDMUIsY0FBYyxHQUFHLGlCQUFpQixDQUFDO0lBQ25DLFNBQVMsR0FBRyxJQUFJLENBQUM7SUFDakIsTUFBTSxHQUFHLGFBQWEsQ0FBQztJQUN2QixjQUFjLEdBQUcsY0FBYyxDQUFDO0lBQ2hDLGNBQWMsR0FBRyxTQUFTLENBQUM7dUdBTmhCLHVCQUF1QjsyR0FBdkIsdUJBQXVCLGNBRFYsTUFBTTs7MkZBQ25CLHVCQUF1QjtrQkFEbkMsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyIvLyNyZWdpb24gTGljZW5zZVxuLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IDIwMjAgRW5lcmdpbmV0IERhdGFIdWIgQS9TXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZTJcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLy8jZW5kcmVnaW9uXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgV2F0dERyb3Bab25lSW50bFNlcnZpY2Uge1xuICBwcm9tcHQgPSAnRHJvcCBmaWxlIGhlcmUnO1xuICBwcm9tcHRNdWx0aXBsZSA9ICdEcm9wIGZpbGVzIGhlcmUnO1xuICBzZXBhcmF0b3IgPSAnb3InO1xuICBidXR0b24gPSAnQ2hvb3NlIGZpbGUnO1xuICBidXR0b25NdWx0aXBsZSA9ICdDaG9vc2UgZmlsZXMnO1xuICBsb2FkaW5nTWVzc2FnZSA9ICdMb2FkaW5nJztcbn1cbiJdfQ==