@energinet/watt 2.0.14 → 2.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (391) 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/data/watt-data-table.component.d.ts +2 -1
  17. package/datetime-field/energinet-watt-datetime-field.d.ts +5 -0
  18. package/description-list/energinet-watt-description-list.d.ts +5 -0
  19. package/drawer/energinet-watt-drawer.d.ts +5 -0
  20. package/dropdown/energinet-watt-dropdown.d.ts +5 -0
  21. package/dropzone/energinet-watt-dropzone.d.ts +5 -0
  22. package/empty-state/energinet-watt-empty-state.d.ts +5 -0
  23. package/energinet-watt.d.ts +5 -0
  24. package/esm2022/badge/energinet-watt-badge.js +5 -0
  25. package/esm2022/badge/index.js +20 -0
  26. package/{fesm2022/energinet-watt-badge.mjs → esm2022/badge/watt-badge.component.js} +7 -33
  27. package/esm2022/breadcrumbs/energinet-watt-breadcrumbs.js +5 -0
  28. package/esm2022/breadcrumbs/index.js +20 -0
  29. package/esm2022/breadcrumbs/watt-breadcrumbs.component.js +90 -0
  30. package/esm2022/button/energinet-watt-button.js +5 -0
  31. package/esm2022/button/index.js +20 -0
  32. package/{fesm2022/energinet-watt-button.mjs → esm2022/button/watt-button.component.js} +14 -40
  33. package/esm2022/card/energinet-watt-card.js +5 -0
  34. package/esm2022/card/index.js +21 -0
  35. package/esm2022/card/watt-card-title.component.js +33 -0
  36. package/esm2022/card/watt-card.component.js +61 -0
  37. package/esm2022/checkbox/energinet-watt-checkbox.js +5 -0
  38. package/esm2022/checkbox/index.js +20 -0
  39. package/{fesm2022/energinet-watt-checkbox.mjs → esm2022/checkbox/watt-checkbox.component.js} +9 -35
  40. package/esm2022/chip/energinet-watt-chip.js +5 -0
  41. package/esm2022/chip/index.js +26 -0
  42. package/esm2022/chip/watt-action-chip.component.js +68 -0
  43. package/esm2022/chip/watt-chip.component.js +55 -0
  44. package/esm2022/chip/watt-chip.directive.js +92 -0
  45. package/esm2022/chip/watt-date-chip.component.js +118 -0
  46. package/esm2022/chip/watt-date-range-chip.component.js +240 -0
  47. package/esm2022/chip/watt-filter-chip.component.js +94 -0
  48. package/esm2022/chip/watt-menu-chip.component.js +95 -0
  49. package/esm2022/clipboard/energinet-watt-clipboard.js +5 -0
  50. package/esm2022/clipboard/index.js +21 -0
  51. package/esm2022/clipboard/watt-clipboard-intl.service.js +31 -0
  52. package/esm2022/clipboard/watt-copy-to-clipboard.directive.js +64 -0
  53. package/esm2022/code/energinet-watt-code.js +5 -0
  54. package/esm2022/code/index.js +21 -0
  55. package/esm2022/code/watt-code.component.js +74 -0
  56. package/esm2022/code/watt-code.worker.token.js +21 -0
  57. package/esm2022/core/breakpoints/breakpoints-observer.js +41 -0
  58. package/esm2022/core/breakpoints/breakpoints.js +31 -0
  59. package/esm2022/core/breakpoints/energinet-watt-core-breakpoints.js +5 -0
  60. package/esm2022/core/breakpoints/index.js +21 -0
  61. package/esm2022/core/color/color-helper.service.js +41 -0
  62. package/esm2022/core/color/colors.js +58 -0
  63. package/esm2022/core/color/energinet-watt-core-color.js +5 -0
  64. package/esm2022/core/color/index.js +21 -0
  65. package/esm2022/core/date/dayjs.js +34 -0
  66. package/esm2022/core/date/energinet-watt-core-date.js +5 -0
  67. package/esm2022/core/date/index.js +25 -0
  68. package/esm2022/core/date/watt-danish-datetime.providers.js +31 -0
  69. package/esm2022/core/date/watt-date-adapter.js +43 -0
  70. package/esm2022/core/date/watt-date-range.js +2 -0
  71. package/esm2022/core/date/watt-date.pipe.js +38 -0
  72. package/esm2022/core/date/watt-format-date.js +50 -0
  73. package/esm2022/core/date/watt-locale.service.js +48 -0
  74. package/esm2022/data/energinet-watt-data.js +5 -0
  75. package/esm2022/data/index.js +23 -0
  76. package/esm2022/data/watt-data-actions.component.js +32 -0
  77. package/esm2022/data/watt-data-filters.component.js +32 -0
  78. package/esm2022/data/watt-data-intl.service.js +39 -0
  79. package/esm2022/data/watt-data-table.component.js +193 -0
  80. package/esm2022/datetime-field/energinet-watt-datetime-field.js +5 -0
  81. package/esm2022/datetime-field/index.js +20 -0
  82. package/esm2022/datetime-field/watt-datetime-field.component.js +207 -0
  83. package/esm2022/description-list/energinet-watt-description-list.js +5 -0
  84. package/esm2022/description-list/index.js +20 -0
  85. package/esm2022/description-list/watt-description-list-item.component.js +49 -0
  86. package/{fesm2022/energinet-watt-description-list.mjs → esm2022/description-list/watt-description-list.component.js} +10 -79
  87. package/esm2022/drawer/energinet-watt-drawer.js +5 -0
  88. package/esm2022/drawer/index.js +24 -0
  89. package/esm2022/drawer/watt-drawer-actions.component.js +29 -0
  90. package/esm2022/drawer/watt-drawer-content.component.js +29 -0
  91. package/esm2022/drawer/watt-drawer-heading.component.js +29 -0
  92. package/esm2022/drawer/watt-drawer-topbar.component.js +29 -0
  93. package/esm2022/drawer/watt-drawer.component.js +177 -0
  94. package/esm2022/dropdown/energinet-watt-dropdown.js +5 -0
  95. package/esm2022/dropdown/index.js +20 -0
  96. package/esm2022/dropdown/watt-dropdown-option.js +2 -0
  97. package/esm2022/dropdown/watt-dropdown-value.js +2 -0
  98. package/esm2022/dropdown/watt-dropdown.component.js +396 -0
  99. package/esm2022/dropzone/energinet-watt-dropzone.js +5 -0
  100. package/esm2022/dropzone/index.js +22 -0
  101. package/esm2022/dropzone/watt-dropzone-intl.js +35 -0
  102. package/esm2022/dropzone/watt-dropzone-validators.js +67 -0
  103. package/esm2022/dropzone/watt-dropzone.js +179 -0
  104. package/esm2022/empty-state/energinet-watt-empty-state.js +5 -0
  105. package/esm2022/empty-state/icons/explore.js +54 -0
  106. package/esm2022/empty-state/icons/no-results.js +62 -0
  107. package/esm2022/empty-state/icons/power.js +46 -0
  108. package/esm2022/empty-state/index.js +23 -0
  109. package/esm2022/empty-state/watt-empty-state.component.js +120 -0
  110. package/esm2022/energinet-watt.js +5 -0
  111. package/esm2022/expandable-card/energinet-watt-expandable-card.js +5 -0
  112. package/esm2022/expandable-card/index.js +26 -0
  113. package/{fesm2022/energinet-watt-expandable-card.mjs → esm2022/expandable-card/watt-expandable-card.component.js} +18 -49
  114. package/esm2022/expansion/energinet-watt-expansion.js +5 -0
  115. package/{fesm2022/energinet-watt-expansion.mjs → esm2022/expansion/expansion.component.js} +10 -36
  116. package/esm2022/expansion/index.js +20 -0
  117. package/esm2022/field/energinet-watt-field.js +5 -0
  118. package/esm2022/field/index.js +23 -0
  119. package/esm2022/field/watt-field-error.component.js +29 -0
  120. package/esm2022/field/watt-field-hint.component.js +29 -0
  121. package/esm2022/field/watt-field-intl.service.js +32 -0
  122. package/{fesm2022/energinet-watt-field.mjs → esm2022/field/watt-field.component.js} +17 -125
  123. package/esm2022/icon/energinet-watt-icon.js +5 -0
  124. package/esm2022/icon/flags/energinet-watt-icon-flags.js +5 -0
  125. package/esm2022/icon/flags/index.js +26 -0
  126. package/esm2022/icon/flags/watt-flag-ch.js +52 -0
  127. package/esm2022/icon/flags/watt-flag-de.js +44 -0
  128. package/esm2022/icon/flags/watt-flag-dk.js +44 -0
  129. package/esm2022/icon/flags/watt-flag-fi.js +44 -0
  130. package/esm2022/icon/flags/watt-flag-nl.js +44 -0
  131. package/esm2022/icon/flags/watt-flag-no.js +48 -0
  132. package/esm2022/icon/flags/watt-flag-pl.js +46 -0
  133. package/esm2022/icon/flags/watt-flag-se.js +42 -0
  134. package/esm2022/icon/flags/watt-flag.js +116 -0
  135. package/{fesm2022/energinet-watt-icon.mjs → esm2022/icon/icon.component.js} +9 -131
  136. package/esm2022/icon/icons.js +97 -0
  137. package/esm2022/icon/index.js +20 -0
  138. package/esm2022/index.js +25 -0
  139. package/esm2022/modal/energinet-watt-modal.js +5 -0
  140. package/esm2022/modal/index.js +21 -0
  141. package/{fesm2022/energinet-watt-modal.mjs → esm2022/modal/watt-modal.component.js} +19 -127
  142. package/esm2022/modal/watt-modal.service.js +86 -0
  143. package/esm2022/paginator/energinet-watt-paginator.js +5 -0
  144. package/esm2022/paginator/index.js +21 -0
  145. package/esm2022/paginator/watt-paginator-intl.service.js +38 -0
  146. package/esm2022/paginator/watt-paginator.component.js +104 -0
  147. package/esm2022/phone-field/energinet-watt-phone-field.js +5 -0
  148. package/esm2022/phone-field/index.js +21 -0
  149. package/esm2022/phone-field/watt-phone-field-intl.service.js +40 -0
  150. package/esm2022/phone-field/watt-phone-field.component.js +262 -0
  151. package/esm2022/picker/__shared/energinet-watt-picker-__shared.js +5 -0
  152. package/esm2022/picker/__shared/index.js +21 -0
  153. package/esm2022/picker/__shared/placeholder-mask/watt-placeholder-mask.component.js +71 -0
  154. package/esm2022/picker/__shared/watt-picker-base.js +292 -0
  155. package/esm2022/picker/__shared/watt-picker-value.js +2 -0
  156. package/esm2022/picker/datepicker/energinet-watt-picker-datepicker.js +5 -0
  157. package/esm2022/picker/datepicker/index.js +22 -0
  158. package/esm2022/picker/datepicker/watt-datepicker-intl.service.js +31 -0
  159. package/esm2022/picker/datepicker/watt-datepicker.component.js +422 -0
  160. package/esm2022/picker/timepicker/energinet-watt-picker-timepicker.js +5 -0
  161. package/esm2022/picker/timepicker/index.js +20 -0
  162. package/esm2022/picker/timepicker/maskito-time-range-mask.js +81 -0
  163. package/esm2022/picker/timepicker/watt-timepicker.component.js +288 -0
  164. package/esm2022/progress-tracker/energinet-watt-progress-tracker.js +5 -0
  165. package/esm2022/progress-tracker/index.js +27 -0
  166. package/{fesm2022/energinet-watt-progress-tracker.mjs → esm2022/progress-tracker/watt-progress-tracker-step.component.js} +9 -67
  167. package/esm2022/progress-tracker/watt-progress-tracker.component.js +30 -0
  168. package/esm2022/query-params/energinet-watt-query-params.js +5 -0
  169. package/esm2022/query-params/index.js +20 -0
  170. package/esm2022/query-params/watt-query-params.directive.js +91 -0
  171. package/esm2022/radio/energinet-watt-radio.js +5 -0
  172. package/esm2022/radio/index.js +20 -0
  173. package/{fesm2022/energinet-watt-radio.mjs → esm2022/radio/watt-radio.component.js} +9 -35
  174. package/esm2022/search/energinet-watt-search.js +5 -0
  175. package/esm2022/search/index.js +20 -0
  176. package/{fesm2022/energinet-watt-search.mjs → esm2022/search/watt-search.component.js} +24 -39
  177. package/esm2022/segmented-buttons/energinet-watt-segmented-buttons.js +5 -0
  178. package/esm2022/segmented-buttons/index.js +21 -0
  179. package/esm2022/segmented-buttons/watt-segmented-button.component.js +38 -0
  180. package/esm2022/segmented-buttons/watt-segmented-buttons.component.js +88 -0
  181. package/esm2022/shell/energinet-watt-shell.js +5 -0
  182. package/esm2022/shell/index.js +21 -0
  183. package/esm2022/shell/nav-list/index.js +21 -0
  184. package/esm2022/shell/nav-list/watt-expand-on-active-link.directive.js +45 -0
  185. package/esm2022/shell/nav-list/watt-nav-list-item.component.js +84 -0
  186. package/esm2022/shell/nav-list/watt-nav-list.component.js +81 -0
  187. package/esm2022/shell/shell.component.js +75 -0
  188. package/esm2022/slide-toggle/energinet-watt-slide-toggle.js +5 -0
  189. package/esm2022/slide-toggle/index.js +20 -0
  190. package/esm2022/slide-toggle/watt-slide-toggle.component.js +78 -0
  191. package/esm2022/slider/energinet-watt-slider.js +5 -0
  192. package/esm2022/slider/index.js +20 -0
  193. package/esm2022/slider/watt-slider.component.js +133 -0
  194. package/esm2022/spinner/energinet-watt-spinner.js +5 -0
  195. package/esm2022/spinner/index.js +20 -0
  196. package/esm2022/spinner/watt-spinner.component.js +46 -0
  197. package/esm2022/stepper/energinet-watt-stepper.js +5 -0
  198. package/esm2022/stepper/index.js +21 -0
  199. package/esm2022/stepper/watt-stepper-step.component.js +52 -0
  200. package/{fesm2022/energinet-watt-stepper.mjs → esm2022/stepper/watt-stepper.component.js} +18 -91
  201. package/esm2022/table/energinet-watt-table.js +5 -0
  202. package/esm2022/table/index.js +21 -0
  203. package/esm2022/table/watt-table-data-source.js +17 -0
  204. package/esm2022/table/watt-table.component.js +400 -0
  205. package/esm2022/tabs/energinet-watt-tabs.js +5 -0
  206. package/esm2022/tabs/index.js +31 -0
  207. package/esm2022/tabs/watt-link-tab.component.js +34 -0
  208. package/esm2022/tabs/watt-link-tabs.component.js +71 -0
  209. package/esm2022/tabs/watt-tab.component.js +42 -0
  210. package/esm2022/tabs/watt-tabs-action.component.js +32 -0
  211. package/esm2022/tabs/watt-tabs.component.js +60 -0
  212. package/esm2022/text-field/energinet-watt-text-field.js +5 -0
  213. package/esm2022/text-field/index.js +20 -0
  214. package/esm2022/text-field/watt-text-field.component.js +289 -0
  215. package/esm2022/textarea-field/energinet-watt-textarea-field.js +5 -0
  216. package/esm2022/textarea-field/index.js +20 -0
  217. package/esm2022/textarea-field/watt-textarea-field.component.js +110 -0
  218. package/esm2022/toast/energinet-watt-toast.js +5 -0
  219. package/esm2022/toast/index.js +21 -0
  220. package/esm2022/toast/watt-toast.component.js +97 -0
  221. package/esm2022/toast/watt-toast.service.js +51 -0
  222. package/esm2022/tooltip/energinet-watt-tooltip.js +5 -0
  223. package/esm2022/tooltip/index.js +20 -0
  224. package/esm2022/tooltip/watt-tooltip.component.js +131 -0
  225. package/esm2022/tooltip/watt-tooltip.directive.js +60 -0
  226. package/esm2022/utils/css/css-custom-properties.service.js +39 -0
  227. package/esm2022/utils/css/energinet-watt-utils-css.js +5 -0
  228. package/esm2022/utils/css/index.js +20 -0
  229. package/esm2022/utils/intersection-observer/energinet-watt-utils-intersection-observer.js +5 -0
  230. package/esm2022/utils/intersection-observer/index.js +20 -0
  231. package/esm2022/utils/intersection-observer/watt-intersection-observer.service.js +57 -0
  232. package/esm2022/utils/resize-observer/energinet-watt-utils-resize-observer.js +5 -0
  233. package/esm2022/utils/resize-observer/index.js +21 -0
  234. package/esm2022/utils/resize-observer/watt-resize-observer.directive.js +53 -0
  235. package/esm2022/utils/resize-observer/watt-resize-observer.service.js +67 -0
  236. package/esm2022/validation-message/energinet-watt-validation-message.js +5 -0
  237. package/esm2022/validation-message/index.js +20 -0
  238. package/{fesm2022/energinet-watt-validation-message.mjs → esm2022/validation-message/watt-validation-message.component.js} +8 -34
  239. package/esm2022/validators/energinet-watt-validators.js +5 -0
  240. package/esm2022/validators/index.js +20 -0
  241. package/esm2022/validators/watt-range.validators.js +23 -0
  242. package/esm2022/vater/energinet-watt-vater.js +5 -0
  243. package/esm2022/vater/index.js +24 -0
  244. package/esm2022/vater/types.js +20 -0
  245. package/esm2022/vater/vater-flex.component.js +49 -0
  246. package/esm2022/vater/vater-layout.directive.js +65 -0
  247. package/esm2022/vater/vater-spacer.component.js +29 -0
  248. package/esm2022/vater/vater-stack.component.js +42 -0
  249. package/esm2022/vater/vater-utility.directive.js +53 -0
  250. package/esm2022/year-field/energinet-watt-year-field.js +5 -0
  251. package/esm2022/year-field/index.js +20 -0
  252. package/esm2022/year-field/watt-year-field.component.js +256 -0
  253. package/esm2022/yearmonth-field/energinet-watt-yearmonth-field.js +5 -0
  254. package/esm2022/yearmonth-field/index.js +21 -0
  255. package/esm2022/yearmonth-field/watt-yearmonth-field.component.js +258 -0
  256. package/esm2022/yearmonth-field/year-month.js +42 -0
  257. package/expandable-card/energinet-watt-expandable-card.d.ts +5 -0
  258. package/expansion/energinet-watt-expansion.d.ts +5 -0
  259. package/field/energinet-watt-field.d.ts +5 -0
  260. package/icon/energinet-watt-icon.d.ts +5 -0
  261. package/icon/flags/energinet-watt-icon-flags.d.ts +5 -0
  262. package/modal/energinet-watt-modal.d.ts +5 -0
  263. package/package.json +117 -117
  264. package/paginator/energinet-watt-paginator.d.ts +5 -0
  265. package/phone-field/energinet-watt-phone-field.d.ts +5 -0
  266. package/picker/__shared/energinet-watt-picker-__shared.d.ts +5 -0
  267. package/picker/__shared/watt-picker-base.d.ts +4 -1
  268. package/picker/datepicker/energinet-watt-picker-datepicker.d.ts +5 -0
  269. package/picker/timepicker/energinet-watt-picker-timepicker.d.ts +5 -0
  270. package/progress-tracker/energinet-watt-progress-tracker.d.ts +5 -0
  271. package/query-params/energinet-watt-query-params.d.ts +5 -0
  272. package/radio/energinet-watt-radio.d.ts +5 -0
  273. package/search/energinet-watt-search.d.ts +5 -0
  274. package/search/watt-search.component.d.ts +9 -1
  275. package/segmented-buttons/energinet-watt-segmented-buttons.d.ts +5 -0
  276. package/shell/energinet-watt-shell.d.ts +5 -0
  277. package/slide-toggle/energinet-watt-slide-toggle.d.ts +5 -0
  278. package/slider/energinet-watt-slider.d.ts +5 -0
  279. package/spinner/energinet-watt-spinner.d.ts +5 -0
  280. package/stepper/energinet-watt-stepper.d.ts +5 -0
  281. package/table/energinet-watt-table.d.ts +5 -0
  282. package/tabs/energinet-watt-tabs.d.ts +5 -0
  283. package/text-field/energinet-watt-text-field.d.ts +5 -0
  284. package/textarea-field/energinet-watt-textarea-field.d.ts +5 -0
  285. package/toast/energinet-watt-toast.d.ts +5 -0
  286. package/toast/watt-toast.service.d.ts +2 -3
  287. package/tooltip/energinet-watt-tooltip.d.ts +5 -0
  288. package/utils/css/css-custom-properties.service.d.ts +1 -2
  289. package/utils/css/energinet-watt-utils-css.d.ts +5 -0
  290. package/utils/intersection-observer/energinet-watt-utils-intersection-observer.d.ts +5 -0
  291. package/utils/resize-observer/energinet-watt-utils-resize-observer.d.ts +5 -0
  292. package/utils/resize-observer/watt-resize-observer.service.d.ts +2 -19
  293. package/validation-message/energinet-watt-validation-message.d.ts +5 -0
  294. package/validators/energinet-watt-validators.d.ts +5 -0
  295. package/vater/energinet-watt-vater.d.ts +5 -0
  296. package/year-field/energinet-watt-year-field.d.ts +5 -0
  297. package/yearmonth-field/energinet-watt-yearmonth-field.d.ts +5 -0
  298. package/fesm2022/energinet-watt-badge.mjs.map +0 -1
  299. package/fesm2022/energinet-watt-breadcrumbs.mjs +0 -116
  300. package/fesm2022/energinet-watt-breadcrumbs.mjs.map +0 -1
  301. package/fesm2022/energinet-watt-button.mjs.map +0 -1
  302. package/fesm2022/energinet-watt-card.mjs +0 -117
  303. package/fesm2022/energinet-watt-card.mjs.map +0 -1
  304. package/fesm2022/energinet-watt-checkbox.mjs.map +0 -1
  305. package/fesm2022/energinet-watt-chip.mjs +0 -760
  306. package/fesm2022/energinet-watt-chip.mjs.map +0 -1
  307. package/fesm2022/energinet-watt-clipboard.mjs +0 -118
  308. package/fesm2022/energinet-watt-clipboard.mjs.map +0 -1
  309. package/fesm2022/energinet-watt-code.mjs +0 -119
  310. package/fesm2022/energinet-watt-code.mjs.map +0 -1
  311. package/fesm2022/energinet-watt-core-breakpoints.mjs +0 -100
  312. package/fesm2022/energinet-watt-core-breakpoints.mjs.map +0 -1
  313. package/fesm2022/energinet-watt-core-color.mjs +0 -127
  314. package/fesm2022/energinet-watt-core-color.mjs.map +0 -1
  315. package/fesm2022/energinet-watt-core-date.mjs +0 -260
  316. package/fesm2022/energinet-watt-core-date.mjs.map +0 -1
  317. package/fesm2022/energinet-watt-data.mjs +0 -306
  318. package/fesm2022/energinet-watt-data.mjs.map +0 -1
  319. package/fesm2022/energinet-watt-datetime-field.mjs +0 -233
  320. package/fesm2022/energinet-watt-datetime-field.mjs.map +0 -1
  321. package/fesm2022/energinet-watt-description-list.mjs.map +0 -1
  322. package/fesm2022/energinet-watt-drawer.mjs +0 -307
  323. package/fesm2022/energinet-watt-drawer.mjs.map +0 -1
  324. package/fesm2022/energinet-watt-dropdown.mjs +0 -423
  325. package/fesm2022/energinet-watt-dropdown.mjs.map +0 -1
  326. package/fesm2022/energinet-watt-dropzone.mjs +0 -298
  327. package/fesm2022/energinet-watt-dropzone.mjs.map +0 -1
  328. package/fesm2022/energinet-watt-empty-state.mjs +0 -299
  329. package/fesm2022/energinet-watt-empty-state.mjs.map +0 -1
  330. package/fesm2022/energinet-watt-expandable-card.mjs.map +0 -1
  331. package/fesm2022/energinet-watt-expansion.mjs.map +0 -1
  332. package/fesm2022/energinet-watt-field.mjs.map +0 -1
  333. package/fesm2022/energinet-watt-icon-flags.mjs +0 -482
  334. package/fesm2022/energinet-watt-icon-flags.mjs.map +0 -1
  335. package/fesm2022/energinet-watt-icon.mjs.map +0 -1
  336. package/fesm2022/energinet-watt-modal.mjs.map +0 -1
  337. package/fesm2022/energinet-watt-paginator.mjs +0 -164
  338. package/fesm2022/energinet-watt-paginator.mjs.map +0 -1
  339. package/fesm2022/energinet-watt-phone-field.mjs +0 -326
  340. package/fesm2022/energinet-watt-phone-field.mjs.map +0 -1
  341. package/fesm2022/energinet-watt-picker-__shared.mjs +0 -384
  342. package/fesm2022/energinet-watt-picker-__shared.mjs.map +0 -1
  343. package/fesm2022/energinet-watt-picker-datepicker.mjs +0 -477
  344. package/fesm2022/energinet-watt-picker-datepicker.mjs.map +0 -1
  345. package/fesm2022/energinet-watt-picker-timepicker.mjs +0 -394
  346. package/fesm2022/energinet-watt-picker-timepicker.mjs.map +0 -1
  347. package/fesm2022/energinet-watt-progress-tracker.mjs.map +0 -1
  348. package/fesm2022/energinet-watt-query-params.mjs +0 -117
  349. package/fesm2022/energinet-watt-query-params.mjs.map +0 -1
  350. package/fesm2022/energinet-watt-radio.mjs.map +0 -1
  351. package/fesm2022/energinet-watt-search.mjs.map +0 -1
  352. package/fesm2022/energinet-watt-segmented-buttons.mjs +0 -149
  353. package/fesm2022/energinet-watt-segmented-buttons.mjs.map +0 -1
  354. package/fesm2022/energinet-watt-shell.mjs +0 -315
  355. package/fesm2022/energinet-watt-shell.mjs.map +0 -1
  356. package/fesm2022/energinet-watt-slide-toggle.mjs +0 -104
  357. package/fesm2022/energinet-watt-slide-toggle.mjs.map +0 -1
  358. package/fesm2022/energinet-watt-slider.mjs +0 -159
  359. package/fesm2022/energinet-watt-slider.mjs.map +0 -1
  360. package/fesm2022/energinet-watt-spinner.mjs +0 -72
  361. package/fesm2022/energinet-watt-spinner.mjs.map +0 -1
  362. package/fesm2022/energinet-watt-stepper.mjs.map +0 -1
  363. package/fesm2022/energinet-watt-table.mjs +0 -441
  364. package/fesm2022/energinet-watt-table.mjs.map +0 -1
  365. package/fesm2022/energinet-watt-tabs.mjs +0 -254
  366. package/fesm2022/energinet-watt-tabs.mjs.map +0 -1
  367. package/fesm2022/energinet-watt-text-field.mjs +0 -316
  368. package/fesm2022/energinet-watt-text-field.mjs.map +0 -1
  369. package/fesm2022/energinet-watt-textarea-field.mjs +0 -136
  370. package/fesm2022/energinet-watt-textarea-field.mjs.map +0 -1
  371. package/fesm2022/energinet-watt-toast.mjs +0 -174
  372. package/fesm2022/energinet-watt-toast.mjs.map +0 -1
  373. package/fesm2022/energinet-watt-tooltip.mjs +0 -214
  374. package/fesm2022/energinet-watt-tooltip.mjs.map +0 -1
  375. package/fesm2022/energinet-watt-utils-css.mjs +0 -72
  376. package/fesm2022/energinet-watt-utils-css.mjs.map +0 -1
  377. package/fesm2022/energinet-watt-utils-intersection-observer.mjs +0 -83
  378. package/fesm2022/energinet-watt-utils-intersection-observer.mjs.map +0 -1
  379. package/fesm2022/energinet-watt-utils-resize-observer.mjs +0 -144
  380. package/fesm2022/energinet-watt-utils-resize-observer.mjs.map +0 -1
  381. package/fesm2022/energinet-watt-validation-message.mjs.map +0 -1
  382. package/fesm2022/energinet-watt-validators.mjs +0 -49
  383. package/fesm2022/energinet-watt-validators.mjs.map +0 -1
  384. package/fesm2022/energinet-watt-vater.mjs +0 -248
  385. package/fesm2022/energinet-watt-vater.mjs.map +0 -1
  386. package/fesm2022/energinet-watt-year-field.mjs +0 -282
  387. package/fesm2022/energinet-watt-year-field.mjs.map +0 -1
  388. package/fesm2022/energinet-watt-yearmonth-field.mjs +0 -324
  389. package/fesm2022/energinet-watt-yearmonth-field.mjs.map +0 -1
  390. package/fesm2022/energinet-watt.mjs +0 -31
  391. package/fesm2022/energinet-watt.mjs.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"energinet-watt-drawer.mjs","sources":["../../../libs/watt/package/drawer/watt-drawer-topbar.component.ts","../../../libs/watt/package/drawer/watt-drawer-actions.component.ts","../../../libs/watt/package/drawer/watt-drawer-content.component.ts","../../../libs/watt/package/drawer/watt-drawer-heading.component.ts","../../../libs/watt/package/drawer/watt-drawer.component.ts","../../../libs/watt/package/drawer/watt-drawer.component.html","../../../libs/watt/package/drawer/index.ts","../../../libs/watt/package/drawer/energinet-watt-drawer.ts"],"sourcesContent":["//#region License\n/**\n * @license\n * Copyright 2020 Energinet DataHub A/S\n *\n * Licensed under the Apache License, Version 2.0 (the \"License2\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n//#endregion\nimport { Component } from '@angular/core';\n\n@Component({\n selector: 'watt-drawer-topbar',\n template: `<ng-content />`,\n styleUrls: ['./watt-drawer-topbar.component.scss'],\n})\nexport class WattDrawerTopbarComponent {}\n","//#region License\n/**\n * @license\n * Copyright 2020 Energinet DataHub A/S\n *\n * Licensed under the Apache License, Version 2.0 (the \"License2\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n//#endregion\nimport { Component } from '@angular/core';\n\n@Component({\n selector: 'watt-drawer-actions',\n styles: `\n :host {\n flex-shrink: 0;\n display: flex;\n justify-content: flex-end;\n align-items: flex-start;\n gap: var(--watt-space-m);\n margin-left: auto;\n margin-right: var(--watt-space-ml);\n }\n `,\n template: `<ng-content select=\"watt-button\" />`,\n})\nexport class WattDrawerActionsComponent {}\n","//#region License\n/**\n * @license\n * Copyright 2020 Energinet DataHub A/S\n *\n * Licensed under the Apache License, Version 2.0 (the \"License2\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n//#endregion\nimport { Component } from '@angular/core';\n\n@Component({\n selector: 'watt-drawer-content',\n template: `<ng-content />`,\n styles: [\n `\n :host {\n overflow: auto;\n }\n `,\n ],\n})\nexport class WattDrawerContentComponent {}\n","//#region License\n/**\n * @license\n * Copyright 2020 Energinet DataHub A/S\n *\n * Licensed under the Apache License, Version 2.0 (the \"License2\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n//#endregion\nimport { Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'watt-drawer-heading',\n encapsulation: ViewEncapsulation.None,\n template: `<ng-content />`,\n styles: [\n `\n watt-drawer-heading {\n margin-left: var(--watt-space-ml);\n }\n\n watt-drawer-heading h1,\n watt-drawer-heading h2,\n watt-drawer-heading h3,\n watt-drawer-heading h4,\n watt-drawer-heading h5,\n watt-drawer-heading h6 {\n margin: 0;\n line-height: 48px !important; /* align with actions */\n }\n `,\n ],\n})\nexport class WattDrawerHeadingComponent {}\n","//#region License\n/**\n * @license\n * Copyright 2020 Energinet DataHub A/S\n *\n * Licensed under the Apache License, Version 2.0 (the \"License2\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n//#endregion\nimport {\n inject,\n input,\n output,\n Component,\n OnDestroy,\n viewChild,\n ElementRef,\n ChangeDetectionStrategy,\n signal,\n untracked,\n booleanAttribute,\n contentChild,\n effect,\n} from '@angular/core';\n\nimport { OverlayContainer } from '@angular/cdk/overlay';\nimport { CdkTrapFocus, A11yModule } from '@angular/cdk/a11y';\nimport { MatSidenavModule } from '@angular/material/sidenav';\n\nimport { WattButtonComponent } from '@energinet/watt/button';\nimport { WattSpinnerComponent } from '@energinet/watt/spinner';\n\nimport { WattDrawerTopbarComponent } from './watt-drawer-topbar.component';\nimport { WattDrawerActionsComponent } from './watt-drawer-actions.component';\nimport { WattDrawerContentComponent } from './watt-drawer-content.component';\nimport { WattDrawerHeadingComponent } from './watt-drawer-heading.component';\n\nexport type WattDrawerSize = 'small' | 'normal' | 'large';\n\nconst APPEAR_ANIMATION_DELAY = 250;\nconst APPEAR_ANIMATION_FRAMES = {\n transform: ['translateX(30px)', 'translateX(0)'],\n opacity: ['0', '1'],\n};\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'watt-drawer',\n styleUrls: ['./watt-drawer.component.scss'],\n templateUrl: './watt-drawer.component.html',\n host: {\n '(document:click)': 'handleDocumentClick($event)',\n '(keydown.escape)': 'handleEscKeyPressed()',\n },\n imports: [A11yModule, MatSidenavModule, WattButtonComponent, WattSpinnerComponent],\n})\nexport class WattDrawerComponent implements OnDestroy {\n private elementRef = inject(ElementRef);\n private overlayContainer = inject(OverlayContainer);\n private content = contentChild(WattDrawerContentComponent, { read: ElementRef });\n private heading = contentChild(WattDrawerHeadingComponent, { read: ElementRef });\n private topBar = contentChild(WattDrawerTopbarComponent, { read: ElementRef });\n private cdkTrapFocus = viewChild.required(CdkTrapFocus);\n private bypassClickCheck = false;\n private writableIsOpen = signal(false);\n\n // Multiple drawers open at the same time are not allowed. This keeps track of\n // the currently opened drawer and closes it when a new drawer is opened.\n private static currentDrawer?: WattDrawerComponent;\n\n /** Used to adjust drawer size to best fit the content. */\n size = input<WattDrawerSize>('normal');\n\n /**\n * Whether the drawer should open automatically. If `key` is provided and\n * `autoOpen` is true, the drawer will open every time the key changes.\n */\n autoOpen = input(false, { transform: booleanAttribute });\n\n /**\n * Used to track the current drawer when reusing the same drawer instance to\n * render different content. This is required when interactions outside the\n * drawer should result in updating the drawer's content instead of closing it.\n */\n key = input<unknown>();\n\n /** Whether the drawer should show a loading state. */\n loading = input(false);\n\n /** Adds a brief animation to indicate that the content has changed. */\n animateOnKeyChange = input(false);\n\n /** Emits whenever the drawer is fully closed. */\n closed = output<void>();\n\n /** Whether the drawer is open. */\n isOpen = this.writableIsOpen.asReadonly();\n\n constructor() {\n effect(() => {\n this.key();\n if (this.autoOpen()) this.open();\n if (!this.animateOnKeyChange()) return;\n untracked(() => {\n if (!this.isOpen()) return;\n this.content()?.nativeElement.animate(APPEAR_ANIMATION_FRAMES, APPEAR_ANIMATION_DELAY);\n this.heading()?.nativeElement.animate(APPEAR_ANIMATION_FRAMES, APPEAR_ANIMATION_DELAY);\n this.topBar()?.nativeElement.animate(APPEAR_ANIMATION_FRAMES, APPEAR_ANIMATION_DELAY);\n });\n });\n\n // Who doesn't love a good workaround, right?\n // Let's make the drawer resize itself whenever the `size` input changes.\n //\n // The `mat-drawer` component offers the `autosize` input for this.\n // However, it is specifically mentioned that this options should be used at own risk,\n // as it could cause performance issues.\n // See: https://material.angular.dev/components/sidenav/overview#resizing-an-open-sidenav\n //\n // So to work around this, a simple `resize` event is dispatched whenever the `size` input changes.\n // This works because `mat-drawer` uses `ViewportRuler` from `@angular/cdk/scrolling`\n // (see https://github.com/angular/components/blob/19.2.1/src/material/sidenav/drawer.ts#L811-L816)\n // to listen to `resize` events and re-calculates margins applied to the drawer content\n // (see https://github.com/angular/components/blob/20.0.0-rc.2/src/cdk/scrolling/viewport-ruler.ts#L50-L53).\n effect(() => {\n this.size();\n\n document.dispatchEvent(new Event('resize', { bubbles: true }));\n });\n }\n\n /** @ignore */\n handleDocumentClick(event: MouseEvent) {\n // Prevent closing when the click triggered a call to `open`\n if (this.bypassClickCheck) return;\n\n // Check if the click originated from within the drawer element\n const isClickInside = this.elementRef.nativeElement.contains(event.target);\n if (isClickInside) return;\n\n // Check if the click originated from within an overlay (such as a modal)\n const overlayContainerEl = this.overlayContainer.getContainerElement();\n const isOverlayClick = overlayContainerEl.contains(event.target as Node);\n if (isOverlayClick) return;\n\n // Click is allowed to close the drawer now\n this.close();\n }\n\n /** @ignore */\n handleEscKeyPressed() {\n this.close();\n }\n\n /** @ignore */\n ngOnDestroy(): void {\n if (WattDrawerComponent.currentDrawer === this) {\n WattDrawerComponent.currentDrawer = undefined;\n }\n }\n\n /** Opens the drawer. Subsequent calls are ignored while the drawer is opened. */\n open() {\n // Trap focus whenever open is called. This doesn't work on the\n // initial call (when first opening the drawer), but this is\n // handled by the autoFocus property on mat-drawer.\n this.cdkTrapFocus().focusTrap.focusInitialElementWhenReady();\n\n // Disable click outside check until the current event loop is finished.\n // This might seem hackish, but the order of execution is stable here.\n // Also prevents an issue when the drawer is destroyed and then recreated,\n // causing the click outside check to trigger immediately if the drawer\n // is created and opened in response to a click event.\n this.bypassClickCheck = true;\n setTimeout(() => {\n this.bypassClickCheck = false;\n }, 0);\n\n // Without `untracked`, if this is called in a reactive context (such as an `effect`),\n // it will be triggered twice due to `isOpen` being tracked and immediately updated.\n if (untracked(this.isOpen)) return;\n WattDrawerComponent.currentDrawer?.close();\n WattDrawerComponent.currentDrawer = this;\n this.writableIsOpen.set(true);\n }\n\n /** Closes the drawer. */\n close() {\n if (!untracked(this.isOpen)) return;\n WattDrawerComponent.currentDrawer = undefined;\n this.writableIsOpen.set(false);\n }\n}\n\nexport const WATT_DRAWER = [\n WattDrawerComponent,\n WattDrawerTopbarComponent,\n WattDrawerActionsComponent,\n WattDrawerContentComponent,\n WattDrawerHeadingComponent,\n];\n","<!--\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<mat-drawer-container class=\"watt-drawer-container\" [hasBackdrop]=\"false\">\n <mat-drawer\n class=\"watt-drawer watt-space-inset-s watt-drawer--{{ size() }}\"\n mode=\"side\"\n position=\"end\"\n [opened]=\"isOpen()\"\n (closed)=\"closed.emit()\"\n [disableClose]=\"true\"\n [autoFocus]=\"true\"\n [cdkTrapFocus]=\"true\"\n >\n <div class=\"watt-drawer__grid-container\">\n <header>\n <ng-content select=\"watt-drawer-topbar\" />\n <watt-button class=\"close-btn\" variant=\"icon\" icon=\"close\" (click)=\"close()\" />\n </header>\n\n <article class=\"watt-drawer__content\">\n <div class=\"watt-drawer__actions\">\n <ng-content select=\"watt-drawer-heading\" />\n <ng-content select=\"watt-drawer-actions\" />\n </div>\n <ng-content select=\"watt-drawer-content\" />\n </article>\n </div>\n\n @if (loading()) {\n <div class=\"watt-drawer__spinner\">\n <watt-spinner />\n </div>\n }\n </mat-drawer>\n</mat-drawer-container>\n","//#region License\n/**\n * @license\n * Copyright 2020 Energinet DataHub A/S\n *\n * Licensed under the Apache License, Version 2.0 (the \"License2\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n//#endregion\nexport { WattDrawerTopbarComponent } from './watt-drawer-topbar.component';\nexport { WattDrawerActionsComponent } from './watt-drawer-actions.component';\nexport { WattDrawerContentComponent } from './watt-drawer-content.component';\nexport { WattDrawerHeadingComponent } from './watt-drawer-heading.component';\nexport { WattDrawerComponent, WATT_DRAWER, WattDrawerSize } from './watt-drawer.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,423 +0,0 @@
1
- import * as i0 from '@angular/core';
2
- import { inject, DestroyRef, Input, HostBinding, ViewChild, ViewEncapsulation, Component } from '@angular/core';
3
- import * as i3 from '@angular/forms';
4
- import { NgControl, FormControl, UntypedFormControl, ReactiveFormsModule } from '@angular/forms';
5
- import { NgClass } from '@angular/common';
6
- import { RxPush } from '@rx-angular/template/push';
7
- import * as i1 from '@angular/material/select';
8
- import { MatSelectModule } from '@angular/material/select';
9
- import * as i4 from 'ngx-mat-select-search';
10
- import { NgxMatSelectSearchModule } from 'ngx-mat-select-search';
11
- import { ReplaySubject, take, map, of, filter } from 'rxjs';
12
- import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
13
- import { WattFieldComponent } from '@energinet/watt/field';
14
- import { WattMenuChipComponent } from '@energinet/watt/chip';
15
- import { WattIconComponent } from '@energinet/watt/icon';
16
- import * as i2 from '@angular/material/core';
17
-
18
- //#region License
19
- /**
20
- * @license
21
- * Copyright 2020 Energinet DataHub A/S
22
- *
23
- * Licensed under the Apache License, Version 2.0 (the "License2");
24
- * you may not use this file except in compliance with the License.
25
- * You may obtain a copy of the License at
26
- *
27
- * http://www.apache.org/licenses/LICENSE-2.0
28
- *
29
- * Unless required by applicable law or agreed to in writing, software
30
- * distributed under the License is distributed on an "AS IS" BASIS,
31
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
32
- * See the License for the specific language governing permissions and
33
- * limitations under the License.
34
- */
35
- //#endregion
36
- class WattDropdownComponent {
37
- parentControlDirective = inject(NgControl, { host: true });
38
- /**
39
- * @ignore
40
- */
41
- _destroyRef = inject(DestroyRef);
42
- /**
43
- * @ignore
44
- */
45
- parentControl = null;
46
- /**
47
- * @ignore
48
- */
49
- validateParent;
50
- /**
51
- * @ignore
52
- */
53
- validateParentAsync;
54
- /**
55
- * @ignore
56
- *
57
- */
58
- isDisabled = false;
59
- /**
60
- * @ignore
61
- */
62
- matSelectControl = new FormControl(null);
63
- /**
64
- * Control for the MatSelect filter keyword
65
- *
66
- * @ignore
67
- */
68
- filterControl = new UntypedFormControl();
69
- /**
70
- * List of options filtered by search keyword
71
- *
72
- * @ignore
73
- */
74
- filteredOptions$ = new ReplaySubject(1);
75
- /**
76
- * @ignore
77
- */
78
- emDash = '—';
79
- /**
80
- * @ignore
81
- */
82
- isToggleAllChecked = false;
83
- /**
84
- * @ignore
85
- */
86
- isToggleAllIndeterminate = false;
87
- _options = [];
88
- /**
89
- * @ignore
90
- */
91
- get showTriggerValue() {
92
- return (this.multiple &&
93
- this.matSelectControl.value?.length === 1 &&
94
- this.matSelectControl.value[0] !== '') ||
95
- (!this.multiple && this.matSelect?.triggerValue)
96
- ? true
97
- : false;
98
- }
99
- /**
100
- * @ignore
101
- */
102
- get showChipLabel() {
103
- return this.multiple && this.matSelectControl.value && this.matSelectControl.value.length > 1
104
- ? true
105
- : false;
106
- }
107
- /**
108
- * @ignore
109
- */
110
- matSelect;
111
- hideSearch = false;
112
- panelWidth = null;
113
- getCustomTrigger;
114
- /**
115
- * Set the mode of the dropdown.
116
- */
117
- chipMode = false;
118
- get chipModeClass() {
119
- return this.chipMode;
120
- }
121
- disableSelectedMode = false;
122
- sortDirection = undefined;
123
- /**
124
- * Sets the options for the dropdown.
125
- */
126
- set options(options) {
127
- if (Array.isArray(options)) {
128
- let optionsCopy = [...options];
129
- if (this.sortDirection) {
130
- optionsCopy = this.sortOptions(optionsCopy);
131
- }
132
- this._options = optionsCopy;
133
- this.filteredOptions$.next(optionsCopy);
134
- }
135
- }
136
- get options() {
137
- return this._options;
138
- }
139
- /**
140
- * Sets support for selecting multiple dropdown options.
141
- */
142
- multiple = false;
143
- /**
144
- * Sets support for hiding the reset option in "single" select mode.
145
- */
146
- showResetOption = true;
147
- /**
148
- * Sets the placeholder for the dropdown.
149
- */
150
- placeholder = '';
151
- /**
152
- * Sets the label for the dropdown.
153
- */
154
- label = '';
155
- /**
156
- * Label to be shown when no options are found after filtering.
157
- *
158
- * Note: The label is visible in "multiple" mode only.
159
- */
160
- noOptionsFoundLabel = '';
161
- constructor() {
162
- this.parentControlDirective.valueAccessor = this;
163
- }
164
- /**
165
- * @ignore
166
- */
167
- ngOnInit() {
168
- this.listenForFilterFieldValueChanges();
169
- this.initializePropertiesFromParent();
170
- this.bindParentValidatorsToControl();
171
- this.bindControlToParent();
172
- }
173
- /**
174
- * @ignore
175
- */
176
- writeValue(value) {
177
- this.matSelectControl.setValue(value);
178
- }
179
- /**
180
- * @ignore
181
- */
182
- registerOnChange(onChangeFn) {
183
- this.changeParentValue = onChangeFn;
184
- }
185
- /**
186
- * @ignore
187
- */
188
- registerOnTouched(onTouchFn) {
189
- this.markParentControlAsTouched = onTouchFn;
190
- }
191
- /**
192
- * @ignore
193
- */
194
- setDisabledState(shouldDisable) {
195
- this.isDisabled = shouldDisable;
196
- if (shouldDisable) {
197
- this.matSelectControl.disable();
198
- }
199
- else {
200
- this.matSelectControl.enable();
201
- }
202
- }
203
- /**
204
- * @ignore
205
- */
206
- onToggleAll(toggleAllState) {
207
- this.filteredOptions$
208
- .pipe(take(1), map((options) => options.map((option) => option.value)))
209
- .subscribe((filteredOptions) => {
210
- const optionsToSelect = toggleAllState ? filteredOptions : [];
211
- this.matSelectControl.patchValue(optionsToSelect);
212
- });
213
- }
214
- sortOptions(options) {
215
- return [...options].sort((a, b) => {
216
- return this.sortDirection === 'asc'
217
- ? a.displayValue.localeCompare(b.displayValue)
218
- : b.displayValue.localeCompare(a.displayValue);
219
- });
220
- }
221
- /**
222
- * @ignore
223
- */
224
- listenForFilterFieldValueChanges() {
225
- this.filterControl.valueChanges.pipe(takeUntilDestroyed(this._destroyRef)).subscribe(() => {
226
- this.filterOptions();
227
- if (this.multiple) {
228
- this.determineToggleAllCheckboxState();
229
- }
230
- });
231
- }
232
- /**
233
- * @ignore
234
- */
235
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
236
- changeParentValue = (value) => {
237
- // Intentionally left empty
238
- };
239
- /**
240
- * @ignore
241
- */
242
- markParentControlAsTouched = () => {
243
- // Intentionally left empty
244
- };
245
- /**
246
- * @ignore
247
- *
248
- * Store the parent control, its validators and async validators in properties
249
- * of this component.
250
- */
251
- initializePropertiesFromParent() {
252
- this.parentControl = this.parentControlDirective.control;
253
- this.validateParent =
254
- (this.parentControl.validator && this.parentControl.validator.bind(this.parentControl)) ||
255
- (() => null);
256
- this.validateParentAsync =
257
- (this.parentControl.asyncValidator &&
258
- this.parentControl.asyncValidator.bind(this.parentControl)) ||
259
- (() => of(null));
260
- }
261
- /**
262
- * @ignore
263
- *
264
- * Inherit validators from parent form control.
265
- */
266
- bindParentValidatorsToControl() {
267
- const validators = !this.matSelectControl.validator
268
- ? [this.validateParent]
269
- : Array.isArray(this.matSelectControl.validator)
270
- ? [...this.matSelectControl.validator, this.validateParent]
271
- : [this.matSelectControl.validator, this.validateParent];
272
- this.matSelectControl.setValidators(validators);
273
- const asyncValidators = !this.matSelectControl.asyncValidator
274
- ? [this.validateParentAsync]
275
- : Array.isArray(this.matSelectControl.asyncValidator)
276
- ? [...this.matSelectControl.asyncValidator, this.validateParentAsync]
277
- : [this.matSelectControl.asyncValidator, this.validateParentAsync];
278
- this.matSelectControl.setAsyncValidators(asyncValidators);
279
- this.matSelectControl.updateValueAndValidity();
280
- }
281
- /**
282
- * @ignore
283
- *
284
- * Emit values to the parent form control when our form control's value
285
- * changes.
286
- *
287
- * Reflect parent validation errors in our form control.
288
- */
289
- bindControlToParent() {
290
- this.matSelectControl.valueChanges
291
- .pipe(map((value) => (value === undefined ? null : value)), map((value) => {
292
- if (Array.isArray(value) && value.length === 0) {
293
- return null;
294
- }
295
- return value;
296
- }), takeUntilDestroyed(this._destroyRef))
297
- .subscribe((value) => {
298
- if (this.multiple) {
299
- this.determineToggleAllCheckboxState();
300
- }
301
- this.markParentControlAsTouched();
302
- this.changeParentValue(value);
303
- });
304
- this.parentControl?.statusChanges
305
- .pipe(map(() => ({
306
- ...this.parentControl?.errors,
307
- })), map((errors) => (Object.keys(errors).length > 0 ? errors : null)), takeUntilDestroyed(this._destroyRef))
308
- .subscribe((errors) => {
309
- this.matSelectControl.setErrors(errors);
310
- });
311
- }
312
- /**
313
- * @ignore
314
- */
315
- filterOptions() {
316
- if (!this._options) {
317
- return;
318
- }
319
- // get the search keyword
320
- let search = this.filterControl.value.trim();
321
- if (search) {
322
- search = search.toLowerCase();
323
- }
324
- else {
325
- return this.filteredOptions$.next(this._options.slice());
326
- }
327
- // filter the options
328
- this.filteredOptions$.next(this._options.filter((option) => option.displayValue.toLowerCase().indexOf(search) > -1));
329
- }
330
- /**
331
- * @ignore
332
- */
333
- determineToggleAllCheckboxState() {
334
- this.filteredOptions$
335
- .pipe(take(1), filter((options) => options != null && options !== undefined), map((options) => options.map((option) => option.value)))
336
- .subscribe((filteredOptions) => {
337
- const selectedOptions = this.matSelectControl.value;
338
- if (Array.isArray(selectedOptions)) {
339
- const selectedFilteredOptions = filteredOptions.filter((option) => selectedOptions.includes(option));
340
- this.isToggleAllIndeterminate =
341
- selectedFilteredOptions.length > 0 &&
342
- selectedFilteredOptions.length < filteredOptions.length;
343
- this.isToggleAllChecked =
344
- selectedFilteredOptions.length > 0 &&
345
- selectedFilteredOptions.length === filteredOptions.length;
346
- }
347
- });
348
- }
349
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: WattDropdownComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
350
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.1", 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: i2.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: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: NgxMatSelectSearchModule }, { kind: "component", type: i4.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: i4.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 });
351
- }
352
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: WattDropdownComponent, decorators: [{
353
- type: Component,
354
- args: [{ selector: 'watt-dropdown', encapsulation: ViewEncapsulation.None, imports: [
355
- NgClass,
356
- MatSelectModule,
357
- RxPush,
358
- ReactiveFormsModule,
359
- NgxMatSelectSearchModule,
360
- WattMenuChipComponent,
361
- WattFieldComponent,
362
- WattIconComponent,
363
- ], 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"] }]
364
- }], ctorParameters: () => [], propDecorators: { isDisabled: [{
365
- type: HostBinding,
366
- args: ['attr.watt-field-disabled']
367
- }], matSelect: [{
368
- type: ViewChild,
369
- args: ['matSelect', { static: true }]
370
- }], hideSearch: [{
371
- type: Input
372
- }], panelWidth: [{
373
- type: Input
374
- }], getCustomTrigger: [{
375
- type: Input
376
- }], chipMode: [{
377
- type: Input
378
- }], chipModeClass: [{
379
- type: HostBinding,
380
- args: ['class.watt-chip-mode']
381
- }], disableSelectedMode: [{
382
- type: Input
383
- }], sortDirection: [{
384
- type: Input
385
- }], options: [{
386
- type: Input
387
- }], multiple: [{
388
- type: Input
389
- }], showResetOption: [{
390
- type: Input
391
- }], placeholder: [{
392
- type: Input
393
- }], label: [{
394
- type: Input
395
- }], noOptionsFoundLabel: [{
396
- type: Input
397
- }] } });
398
-
399
- //#region License
400
- /**
401
- * @license
402
- * Copyright 2020 Energinet DataHub A/S
403
- *
404
- * Licensed under the Apache License, Version 2.0 (the "License2");
405
- * you may not use this file except in compliance with the License.
406
- * You may obtain a copy of the License at
407
- *
408
- * http://www.apache.org/licenses/LICENSE-2.0
409
- *
410
- * Unless required by applicable law or agreed to in writing, software
411
- * distributed under the License is distributed on an "AS IS" BASIS,
412
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
413
- * See the License for the specific language governing permissions and
414
- * limitations under the License.
415
- */
416
- //#endregion
417
-
418
- /**
419
- * Generated bundle index. Do not edit.
420
- */
421
-
422
- export { WattDropdownComponent };
423
- //# sourceMappingURL=energinet-watt-dropdown.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"energinet-watt-dropdown.mjs","sources":["../../../libs/watt/package/dropdown/watt-dropdown.component.ts","../../../libs/watt/package/dropdown/watt-dropdown.component.html","../../../libs/watt/package/dropdown/index.ts","../../../libs/watt/package/dropdown/energinet-watt-dropdown.ts"],"sourcesContent":["//#region License\n/**\n * @license\n * Copyright 2020 Energinet DataHub A/S\n *\n * Licensed under the Apache License, Version 2.0 (the \"License2\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n//#endregion\nimport {\n Component,\n DestroyRef,\n HostBinding,\n Input,\n OnInit,\n ViewChild,\n ViewEncapsulation,\n inject,\n} from '@angular/core';\nimport {\n AsyncValidatorFn,\n ControlValueAccessor,\n FormControl,\n NgControl,\n UntypedFormControl,\n ValidationErrors,\n ValidatorFn,\n ReactiveFormsModule,\n} from '@angular/forms';\nimport { NgClass } from '@angular/common';\nimport { RxPush } from '@rx-angular/template/push';\nimport { MatSelectModule, MatSelect } from '@angular/material/select';\nimport { NgxMatSelectSearchModule } from 'ngx-mat-select-search';\nimport { of, ReplaySubject, map, take, filter } from 'rxjs';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { WattFieldComponent } from '@energinet/watt/field';\nimport type { WattDropdownOptions } from './watt-dropdown-option';\nimport type { WattDropdownValue } from './watt-dropdown-value';\nimport { WattMenuChipComponent } from '@energinet/watt/chip';\nimport { WattIconComponent } from '@energinet/watt/icon';\n\n@Component({\n selector: 'watt-dropdown',\n templateUrl: './watt-dropdown.component.html',\n styleUrls: ['./watt-dropdown.component.scss'],\n encapsulation: ViewEncapsulation.None,\n imports: [\n NgClass,\n MatSelectModule,\n RxPush,\n ReactiveFormsModule,\n NgxMatSelectSearchModule,\n WattMenuChipComponent,\n WattFieldComponent,\n WattIconComponent,\n ],\n})\nexport class WattDropdownComponent implements ControlValueAccessor, OnInit {\n private parentControlDirective = inject(NgControl, { host: true });\n /**\n * @ignore\n */\n private _destroyRef = inject(DestroyRef);\n /**\n * @ignore\n */\n parentControl: FormControl | null = null;\n /**\n * @ignore\n */\n private validateParent?: ValidatorFn;\n /**\n * @ignore\n */\n private validateParentAsync?: AsyncValidatorFn;\n\n /**\n * @ignore\n *\n */\n @HostBinding('attr.watt-field-disabled') isDisabled = false;\n\n /**\n * @ignore\n */\n matSelectControl = new FormControl<string | string[] | undefined | null>(null);\n\n /**\n * Control for the MatSelect filter keyword\n *\n * @ignore\n */\n filterControl = new UntypedFormControl();\n\n /**\n * List of options filtered by search keyword\n *\n * @ignore\n */\n filteredOptions$ = new ReplaySubject<WattDropdownOptions>(1);\n\n /**\n * @ignore\n */\n emDash = '—';\n\n /**\n * @ignore\n */\n isToggleAllChecked = false;\n\n /**\n * @ignore\n */\n isToggleAllIndeterminate = false;\n\n _options: WattDropdownOptions = [];\n\n /**\n * @ignore\n */\n get showTriggerValue(): boolean {\n return (this.multiple &&\n this.matSelectControl.value?.length === 1 &&\n this.matSelectControl.value[0] !== '') ||\n (!this.multiple && this.matSelect?.triggerValue)\n ? true\n : false;\n }\n\n /**\n * @ignore\n */\n get showChipLabel() {\n return this.multiple && this.matSelectControl.value && this.matSelectControl.value.length > 1\n ? true\n : false;\n }\n\n /**\n * @ignore\n */\n @ViewChild('matSelect', { static: true }) matSelect?: MatSelect;\n\n @Input() hideSearch = false;\n @Input() panelWidth: null | 'auto' = null;\n @Input() getCustomTrigger?: (value: string | string[]) => string;\n\n /**\n * Set the mode of the dropdown.\n */\n @Input() chipMode = false;\n @HostBinding('class.watt-chip-mode')\n get chipModeClass() {\n return this.chipMode;\n }\n\n @Input() disableSelectedMode = false;\n\n @Input()\n sortDirection: 'asc' | 'desc' | undefined = undefined;\n\n /**\n * Sets the options for the dropdown.\n */\n @Input()\n set options(options: WattDropdownOptions) {\n if (Array.isArray(options)) {\n let optionsCopy = [...options];\n\n if (this.sortDirection) {\n optionsCopy = this.sortOptions(optionsCopy);\n }\n\n this._options = optionsCopy;\n this.filteredOptions$.next(optionsCopy);\n }\n }\n get options(): WattDropdownOptions {\n return this._options;\n }\n\n /**\n * Sets support for selecting multiple dropdown options.\n */\n @Input() multiple = false;\n\n /**\n * Sets support for hiding the reset option in \"single\" select mode.\n */\n @Input() showResetOption = true;\n\n /**\n * Sets the placeholder for the dropdown.\n */\n @Input() placeholder = '';\n\n /**\n * Sets the label for the dropdown.\n */\n @Input() label = '';\n\n /**\n * Label to be shown when no options are found after filtering.\n *\n * Note: The label is visible in \"multiple\" mode only.\n */\n @Input() noOptionsFoundLabel = '';\n\n constructor() {\n this.parentControlDirective.valueAccessor = this;\n }\n\n /**\n * @ignore\n */\n ngOnInit(): void {\n this.listenForFilterFieldValueChanges();\n this.initializePropertiesFromParent();\n this.bindParentValidatorsToControl();\n this.bindControlToParent();\n }\n\n /**\n * @ignore\n */\n writeValue(value: WattDropdownValue): void {\n this.matSelectControl.setValue(value);\n }\n\n /**\n * @ignore\n */\n registerOnChange(onChangeFn: (value: WattDropdownValue) => void): void {\n this.changeParentValue = onChangeFn;\n }\n\n /**\n * @ignore\n */\n registerOnTouched(onTouchFn: () => void) {\n this.markParentControlAsTouched = onTouchFn;\n }\n\n /**\n * @ignore\n */\n setDisabledState(shouldDisable: boolean): void {\n this.isDisabled = shouldDisable;\n if (shouldDisable) {\n this.matSelectControl.disable();\n } else {\n this.matSelectControl.enable();\n }\n }\n\n /**\n * @ignore\n */\n onToggleAll(toggleAllState: boolean): void {\n this.filteredOptions$\n .pipe(\n take(1),\n map((options) => options.map((option) => option.value))\n )\n .subscribe((filteredOptions: string[]) => {\n const optionsToSelect = toggleAllState ? filteredOptions : [];\n this.matSelectControl.patchValue(optionsToSelect);\n });\n }\n\n public sortOptions(options: WattDropdownOptions): WattDropdownOptions {\n return [...options].sort((a, b) => {\n return this.sortDirection === 'asc'\n ? a.displayValue.localeCompare(b.displayValue)\n : b.displayValue.localeCompare(a.displayValue);\n });\n }\n\n /**\n * @ignore\n */\n private listenForFilterFieldValueChanges() {\n this.filterControl.valueChanges.pipe(takeUntilDestroyed(this._destroyRef)).subscribe(() => {\n this.filterOptions();\n\n if (this.multiple) {\n this.determineToggleAllCheckboxState();\n }\n });\n }\n\n /**\n * @ignore\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n private changeParentValue = (value: WattDropdownValue): void => {\n // Intentionally left empty\n };\n\n /**\n * @ignore\n */\n private markParentControlAsTouched = (): void => {\n // Intentionally left empty\n };\n\n /**\n * @ignore\n *\n * Store the parent control, its validators and async validators in properties\n * of this component.\n */\n private initializePropertiesFromParent(): void {\n this.parentControl = this.parentControlDirective.control as UntypedFormControl;\n\n this.validateParent =\n (this.parentControl.validator && this.parentControl.validator.bind(this.parentControl)) ||\n (() => null);\n\n this.validateParentAsync =\n (this.parentControl.asyncValidator &&\n this.parentControl.asyncValidator.bind(this.parentControl)) ||\n (() => of(null));\n }\n\n /**\n * @ignore\n *\n * Inherit validators from parent form control.\n */\n private bindParentValidatorsToControl(): void {\n const validators = !this.matSelectControl.validator\n ? [this.validateParent]\n : Array.isArray(this.matSelectControl.validator)\n ? [...this.matSelectControl.validator, this.validateParent]\n : [this.matSelectControl.validator, this.validateParent];\n this.matSelectControl.setValidators(validators);\n\n const asyncValidators = !this.matSelectControl.asyncValidator\n ? [this.validateParentAsync]\n : Array.isArray(this.matSelectControl.asyncValidator)\n ? [...this.matSelectControl.asyncValidator, this.validateParentAsync]\n : [this.matSelectControl.asyncValidator, this.validateParentAsync];\n this.matSelectControl.setAsyncValidators(asyncValidators);\n\n this.matSelectControl.updateValueAndValidity();\n }\n\n /**\n * @ignore\n *\n * Emit values to the parent form control when our form control's value\n * changes.\n *\n * Reflect parent validation errors in our form control.\n */\n private bindControlToParent(): void {\n this.matSelectControl.valueChanges\n .pipe(\n map((value) => (value === undefined ? null : value)),\n map((value: WattDropdownValue) => {\n if (Array.isArray(value) && value.length === 0) {\n return null;\n }\n\n return value;\n }),\n takeUntilDestroyed(this._destroyRef)\n )\n .subscribe((value: WattDropdownValue) => {\n if (this.multiple) {\n this.determineToggleAllCheckboxState();\n }\n\n this.markParentControlAsTouched();\n this.changeParentValue(value);\n });\n\n this.parentControl?.statusChanges\n .pipe(\n map(\n () =>\n ({\n ...this.parentControl?.errors,\n }) as ValidationErrors\n ),\n map((errors) => (Object.keys(errors).length > 0 ? errors : null)),\n takeUntilDestroyed(this._destroyRef)\n )\n .subscribe((errors) => {\n this.matSelectControl.setErrors(errors);\n });\n }\n\n /**\n * @ignore\n */\n private filterOptions() {\n if (!this._options) {\n return;\n }\n\n // get the search keyword\n let search = (this.filterControl.value as string).trim();\n\n if (search) {\n search = search.toLowerCase();\n } else {\n return this.filteredOptions$.next(this._options.slice());\n }\n\n // filter the options\n this.filteredOptions$.next(\n this._options.filter((option) => option.displayValue.toLowerCase().indexOf(search) > -1)\n );\n }\n\n /**\n * @ignore\n */\n private determineToggleAllCheckboxState(): void {\n this.filteredOptions$\n .pipe(\n take(1),\n filter((options) => options != null && options !== undefined),\n map((options) => options.map((option) => option.value))\n )\n .subscribe((filteredOptions: string[]) => {\n const selectedOptions = this.matSelectControl.value;\n\n if (Array.isArray(selectedOptions)) {\n const selectedFilteredOptions = filteredOptions.filter((option) =>\n selectedOptions.includes(option)\n );\n\n this.isToggleAllIndeterminate =\n selectedFilteredOptions.length > 0 &&\n selectedFilteredOptions.length < filteredOptions.length;\n\n this.isToggleAllChecked =\n selectedFilteredOptions.length > 0 &&\n selectedFilteredOptions.length === filteredOptions.length;\n }\n });\n }\n}\n","<!--\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","//#region License\n/**\n * @license\n * Copyright 2020 Energinet DataHub A/S\n *\n * Licensed under the Apache License, Version 2.0 (the \"License2\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n//#endregion\nexport { WattDropdownComponent } from './watt-dropdown.component';\nexport { type WattDropdownOption, type WattDropdownOptions } from './watt-dropdown-option';\nexport { type WattDropdownValue } from './watt-dropdown-value';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}