@energinet/watt 4.3.19 → 4.3.21

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 (171) hide show
  1. package/fesm2022/energinet-watt-badge.mjs +3 -3
  2. package/fesm2022/energinet-watt-badge.mjs.map +1 -1
  3. package/fesm2022/energinet-watt-breadcrumbs.mjs +8 -8
  4. package/fesm2022/energinet-watt-breadcrumbs.mjs.map +1 -1
  5. package/fesm2022/energinet-watt-button.mjs +3 -3
  6. package/fesm2022/energinet-watt-button.mjs.map +1 -1
  7. package/fesm2022/energinet-watt-card.mjs +6 -6
  8. package/fesm2022/energinet-watt-card.mjs.map +1 -1
  9. package/fesm2022/energinet-watt-checkbox.mjs +3 -3
  10. package/fesm2022/energinet-watt-checkbox.mjs.map +1 -1
  11. package/fesm2022/energinet-watt-chip.mjs +91 -27
  12. package/fesm2022/energinet-watt-chip.mjs.map +1 -1
  13. package/fesm2022/energinet-watt-clipboard.mjs +7 -7
  14. package/fesm2022/energinet-watt-clipboard.mjs.map +1 -1
  15. package/fesm2022/energinet-watt-code.mjs +6 -6
  16. package/fesm2022/energinet-watt-code.mjs.map +1 -1
  17. package/fesm2022/energinet-watt-core-breakpoints.mjs +3 -3
  18. package/fesm2022/energinet-watt-core-breakpoints.mjs.map +1 -1
  19. package/fesm2022/energinet-watt-core-color.mjs +3 -3
  20. package/fesm2022/energinet-watt-core-color.mjs.map +1 -1
  21. package/fesm2022/energinet-watt-core-date.mjs +6 -6
  22. package/fesm2022/energinet-watt-core-date.mjs.map +1 -1
  23. package/fesm2022/energinet-watt-data.mjs +12 -12
  24. package/fesm2022/energinet-watt-data.mjs.map +1 -1
  25. package/fesm2022/energinet-watt-datetime-field.mjs +3 -3
  26. package/fesm2022/energinet-watt-datetime-field.mjs.map +1 -1
  27. package/fesm2022/energinet-watt-description-list.mjs +6 -6
  28. package/fesm2022/energinet-watt-description-list.mjs.map +1 -1
  29. package/fesm2022/energinet-watt-drawer.mjs +19 -19
  30. package/fesm2022/energinet-watt-drawer.mjs.map +1 -1
  31. package/fesm2022/energinet-watt-dropdown.mjs +14 -4
  32. package/fesm2022/energinet-watt-dropdown.mjs.map +1 -1
  33. package/fesm2022/energinet-watt-dropzone.mjs +14 -14
  34. package/fesm2022/energinet-watt-dropzone.mjs.map +1 -1
  35. package/fesm2022/energinet-watt-empty-state.mjs +18 -18
  36. package/fesm2022/energinet-watt-empty-state.mjs.map +1 -1
  37. package/fesm2022/energinet-watt-expandable-card.mjs +9 -9
  38. package/fesm2022/energinet-watt-expandable-card.mjs.map +1 -1
  39. package/fesm2022/energinet-watt-field.mjs +15 -15
  40. package/fesm2022/energinet-watt-field.mjs.map +1 -1
  41. package/fesm2022/energinet-watt-file-field.mjs +3 -3
  42. package/fesm2022/energinet-watt-file-field.mjs.map +1 -1
  43. package/fesm2022/energinet-watt-heading.mjs +3 -3
  44. package/fesm2022/energinet-watt-heading.mjs.map +1 -1
  45. package/fesm2022/energinet-watt-icon-flags.mjs +30 -30
  46. package/fesm2022/energinet-watt-icon-flags.mjs.map +1 -1
  47. package/fesm2022/energinet-watt-icon.mjs +5 -3
  48. package/fesm2022/energinet-watt-icon.mjs.map +1 -1
  49. package/fesm2022/energinet-watt-json-viewer.mjs +12 -15
  50. package/fesm2022/energinet-watt-json-viewer.mjs.map +1 -1
  51. package/fesm2022/energinet-watt-menu.mjs +12 -12
  52. package/fesm2022/energinet-watt-menu.mjs.map +1 -1
  53. package/fesm2022/energinet-watt-modal.mjs +11 -11
  54. package/fesm2022/energinet-watt-modal.mjs.map +1 -1
  55. package/fesm2022/energinet-watt-paginator.mjs +6 -6
  56. package/fesm2022/energinet-watt-paginator.mjs.map +1 -1
  57. package/fesm2022/energinet-watt-phone-field.mjs +6 -6
  58. package/fesm2022/energinet-watt-phone-field.mjs.map +1 -1
  59. package/fesm2022/energinet-watt-picker-__shared.mjs +13 -17
  60. package/fesm2022/energinet-watt-picker-__shared.mjs.map +1 -1
  61. package/fesm2022/energinet-watt-picker-datepicker.mjs +7 -7
  62. package/fesm2022/energinet-watt-picker-datepicker.mjs.map +1 -1
  63. package/fesm2022/energinet-watt-picker-timepicker.mjs +3 -3
  64. package/fesm2022/energinet-watt-picker-timepicker.mjs.map +1 -1
  65. package/fesm2022/energinet-watt-progress-tracker.mjs +6 -6
  66. package/fesm2022/energinet-watt-progress-tracker.mjs.map +1 -1
  67. package/fesm2022/energinet-watt-query-params.mjs +3 -3
  68. package/fesm2022/energinet-watt-query-params.mjs.map +1 -1
  69. package/fesm2022/energinet-watt-radio.mjs +8 -8
  70. package/fesm2022/energinet-watt-radio.mjs.map +1 -1
  71. package/fesm2022/energinet-watt-search.mjs +6 -6
  72. package/fesm2022/energinet-watt-search.mjs.map +1 -1
  73. package/fesm2022/energinet-watt-segmented-buttons.mjs +6 -6
  74. package/fesm2022/energinet-watt-segmented-buttons.mjs.map +1 -1
  75. package/fesm2022/energinet-watt-separator.mjs +3 -3
  76. package/fesm2022/energinet-watt-separator.mjs.map +1 -1
  77. package/fesm2022/energinet-watt-shell.mjs +13 -13
  78. package/fesm2022/energinet-watt-shell.mjs.map +1 -1
  79. package/fesm2022/energinet-watt-slide-toggle.mjs +3 -3
  80. package/fesm2022/energinet-watt-slide-toggle.mjs.map +1 -1
  81. package/fesm2022/energinet-watt-slider.mjs +3 -3
  82. package/fesm2022/energinet-watt-slider.mjs.map +1 -1
  83. package/fesm2022/energinet-watt-spinner.mjs +3 -3
  84. package/fesm2022/energinet-watt-spinner.mjs.map +1 -1
  85. package/fesm2022/energinet-watt-stepper.mjs +9 -9
  86. package/fesm2022/energinet-watt-stepper.mjs.map +1 -1
  87. package/fesm2022/energinet-watt-table.mjs +18 -27
  88. package/fesm2022/energinet-watt-table.mjs.map +1 -1
  89. package/fesm2022/energinet-watt-tabs.mjs +15 -15
  90. package/fesm2022/energinet-watt-tabs.mjs.map +1 -1
  91. package/fesm2022/energinet-watt-text-field.mjs +3 -3
  92. package/fesm2022/energinet-watt-text-field.mjs.map +1 -1
  93. package/fesm2022/energinet-watt-textarea-field.mjs +38 -23
  94. package/fesm2022/energinet-watt-textarea-field.mjs.map +1 -1
  95. package/fesm2022/energinet-watt-toast.mjs +6 -6
  96. package/fesm2022/energinet-watt-toast.mjs.map +1 -1
  97. package/fesm2022/energinet-watt-tooltip.mjs +9 -9
  98. package/fesm2022/energinet-watt-tooltip.mjs.map +1 -1
  99. package/fesm2022/energinet-watt-utils-css.mjs +3 -3
  100. package/fesm2022/energinet-watt-utils-css.mjs.map +1 -1
  101. package/fesm2022/energinet-watt-utils-intersection-observer.mjs +3 -3
  102. package/fesm2022/energinet-watt-utils-intersection-observer.mjs.map +1 -1
  103. package/fesm2022/energinet-watt-utils-resize-observer.mjs +6 -6
  104. package/fesm2022/energinet-watt-utils-resize-observer.mjs.map +1 -1
  105. package/fesm2022/energinet-watt-validation-message.mjs +3 -3
  106. package/fesm2022/energinet-watt-validation-message.mjs.map +1 -1
  107. package/fesm2022/energinet-watt-vater.mjs +30 -30
  108. package/fesm2022/energinet-watt-vater.mjs.map +1 -1
  109. package/fesm2022/energinet-watt-year-field.mjs +4 -4
  110. package/fesm2022/energinet-watt-year-field.mjs.map +1 -1
  111. package/fesm2022/energinet-watt-yearmonth-field.mjs +4 -4
  112. package/fesm2022/energinet-watt-yearmonth-field.mjs.map +1 -1
  113. package/package.json +100 -99
  114. package/{button/index.d.ts → types/energinet-watt-button.d.ts} +1 -1
  115. package/{chip/index.d.ts → types/energinet-watt-chip.d.ts} +10 -2
  116. package/{data/index.d.ts → types/energinet-watt-data.d.ts} +1 -1
  117. package/{dropdown/index.d.ts → types/energinet-watt-dropdown.d.ts} +1 -0
  118. package/{empty-state/index.d.ts → types/energinet-watt-empty-state.d.ts} +1 -1
  119. package/{icon/index.d.ts → types/energinet-watt-icon.d.ts} +3 -1
  120. package/{modal/index.d.ts → types/energinet-watt-modal.d.ts} +1 -1
  121. package/{text-field/index.d.ts → types/energinet-watt-text-field.d.ts} +1 -1
  122. package/{textarea-field/index.d.ts → types/energinet-watt-textarea-field.d.ts} +1 -1
  123. package/{validation-message/index.d.ts → types/energinet-watt-validation-message.d.ts} +1 -1
  124. /package/{badge/index.d.ts → types/energinet-watt-badge.d.ts} +0 -0
  125. /package/{breadcrumbs/index.d.ts → types/energinet-watt-breadcrumbs.d.ts} +0 -0
  126. /package/{card/index.d.ts → types/energinet-watt-card.d.ts} +0 -0
  127. /package/{checkbox/index.d.ts → types/energinet-watt-checkbox.d.ts} +0 -0
  128. /package/{clipboard/index.d.ts → types/energinet-watt-clipboard.d.ts} +0 -0
  129. /package/{code/index.d.ts → types/energinet-watt-code.d.ts} +0 -0
  130. /package/{core/breakpoints/index.d.ts → types/energinet-watt-core-breakpoints.d.ts} +0 -0
  131. /package/{core/color/index.d.ts → types/energinet-watt-core-color.d.ts} +0 -0
  132. /package/{core/date/index.d.ts → types/energinet-watt-core-date.d.ts} +0 -0
  133. /package/{datetime-field/index.d.ts → types/energinet-watt-datetime-field.d.ts} +0 -0
  134. /package/{description-list/index.d.ts → types/energinet-watt-description-list.d.ts} +0 -0
  135. /package/{drawer/index.d.ts → types/energinet-watt-drawer.d.ts} +0 -0
  136. /package/{dropzone/index.d.ts → types/energinet-watt-dropzone.d.ts} +0 -0
  137. /package/{expandable-card/index.d.ts → types/energinet-watt-expandable-card.d.ts} +0 -0
  138. /package/{field/index.d.ts → types/energinet-watt-field.d.ts} +0 -0
  139. /package/{file-field/index.d.ts → types/energinet-watt-file-field.d.ts} +0 -0
  140. /package/{heading/index.d.ts → types/energinet-watt-heading.d.ts} +0 -0
  141. /package/{icon/flags/index.d.ts → types/energinet-watt-icon-flags.d.ts} +0 -0
  142. /package/{json-viewer/index.d.ts → types/energinet-watt-json-viewer.d.ts} +0 -0
  143. /package/{menu/index.d.ts → types/energinet-watt-menu.d.ts} +0 -0
  144. /package/{paginator/index.d.ts → types/energinet-watt-paginator.d.ts} +0 -0
  145. /package/{phone-field/index.d.ts → types/energinet-watt-phone-field.d.ts} +0 -0
  146. /package/{picker/__shared/index.d.ts → types/energinet-watt-picker-__shared.d.ts} +0 -0
  147. /package/{picker/datepicker/index.d.ts → types/energinet-watt-picker-datepicker.d.ts} +0 -0
  148. /package/{picker/timepicker/index.d.ts → types/energinet-watt-picker-timepicker.d.ts} +0 -0
  149. /package/{progress-tracker/index.d.ts → types/energinet-watt-progress-tracker.d.ts} +0 -0
  150. /package/{query-params/index.d.ts → types/energinet-watt-query-params.d.ts} +0 -0
  151. /package/{radio/index.d.ts → types/energinet-watt-radio.d.ts} +0 -0
  152. /package/{search/index.d.ts → types/energinet-watt-search.d.ts} +0 -0
  153. /package/{segmented-buttons/index.d.ts → types/energinet-watt-segmented-buttons.d.ts} +0 -0
  154. /package/{separator/index.d.ts → types/energinet-watt-separator.d.ts} +0 -0
  155. /package/{shell/index.d.ts → types/energinet-watt-shell.d.ts} +0 -0
  156. /package/{slide-toggle/index.d.ts → types/energinet-watt-slide-toggle.d.ts} +0 -0
  157. /package/{slider/index.d.ts → types/energinet-watt-slider.d.ts} +0 -0
  158. /package/{spinner/index.d.ts → types/energinet-watt-spinner.d.ts} +0 -0
  159. /package/{stepper/index.d.ts → types/energinet-watt-stepper.d.ts} +0 -0
  160. /package/{table/index.d.ts → types/energinet-watt-table.d.ts} +0 -0
  161. /package/{tabs/index.d.ts → types/energinet-watt-tabs.d.ts} +0 -0
  162. /package/{toast/index.d.ts → types/energinet-watt-toast.d.ts} +0 -0
  163. /package/{tooltip/index.d.ts → types/energinet-watt-tooltip.d.ts} +0 -0
  164. /package/{utils/css/index.d.ts → types/energinet-watt-utils-css.d.ts} +0 -0
  165. /package/{utils/intersection-observer/index.d.ts → types/energinet-watt-utils-intersection-observer.d.ts} +0 -0
  166. /package/{utils/resize-observer/index.d.ts → types/energinet-watt-utils-resize-observer.d.ts} +0 -0
  167. /package/{validators/index.d.ts → types/energinet-watt-validators.d.ts} +0 -0
  168. /package/{vater/index.d.ts → types/energinet-watt-vater.d.ts} +0 -0
  169. /package/{year-field/index.d.ts → types/energinet-watt-year-field.d.ts} +0 -0
  170. /package/{yearmonth-field/index.d.ts → types/energinet-watt-yearmonth-field.d.ts} +0 -0
  171. /package/{index.d.ts → types/energinet-watt.d.ts} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"energinet-watt-icon.mjs","sources":["../../../libs/watt/package/icon/icons.ts","../../../libs/watt/package/icon/icon.component.ts","../../../libs/watt/package/icon/index.ts","../../../libs/watt/package/icon/energinet-watt-icon.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\nexport const WattIconMap = {\n search: 'search',\n filter: 'filter_list',\n plus: 'add',\n minus: 'remove',\n edit: 'edit',\n redo: 'redo',\n undo: 'undo',\n remove: 'delete',\n removeForever: 'delete_forever',\n close: 'close',\n cancel: 'cancel',\n checkmark: 'check',\n user: 'account_circle',\n settings: 'settings',\n contentCopy: 'content_copy',\n date: 'calendar_today',\n time: 'schedule',\n email: 'email',\n markEmailUnread: 'mark_email_unread',\n link: 'link',\n openInNew: 'open_in_new',\n monetization: 'monetization_on',\n payments: 'payments',\n forwardMessage: 'forward_to_inbox',\n forward: 'forward',\n menu: 'menu',\n moreVertical: 'more_vert',\n logout: 'logout',\n login: 'lock_open',\n help: 'help',\n alternateEmail: 'alternate_email',\n refresh: 'refresh',\n language: 'language',\n pendingActions: 'pending_actions',\n toggleOn: 'toggle_on',\n toggleOff: 'toggle_off',\n personCheck: 'person_check',\n send: 'send',\n // Navigation\n left: 'navigate_before',\n right: 'navigate_next',\n up: 'expand_less',\n down: 'expand_more',\n arrowDropDown: 'arrow_drop_down',\n arrowRightAlt: 'arrow_right_alt',\n arrowLeftAlt: 'arrow_left_alt',\n // Alerts\n danger: 'dangerous',\n warning: 'report_problem',\n success: 'check_circle',\n info: 'info',\n feedback: 'feedback',\n // Files\n save: 'save_alt',\n upload: 'upload',\n download: 'save_alt',\n fileDownload: 'download',\n fileUpload: 'upload',\n print: 'print',\n preview: 'preview',\n attachFile: 'attach_file',\n // Other\n power: 'power',\n location: 'location_on',\n smartDisplay: 'smart_display',\n windmill: 'energy',\n solarPower: 'solar_power',\n priorityHigh: 'priority_high',\n notifications: 'notifications',\n notificationsUnread: 'notifications_unread',\n horizontalRule: 'horizontal_rule',\n wrongLocation: 'wrong_location',\n heatPump: 'heat_pump',\n inventory: 'inventory',\n globe: 'globe',\n calculate: 'calculate',\n bar_chart_4_bars: 'bar_chart_4_bars',\n view_list: 'view_list',\n view_stream: 'view_stream',\n construction: 'construction',\n factory: 'factory',\n nest_eco_leaf: 'nest_eco_leaf',\n flash_on: 'flash_on',\n};\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 ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\nimport { MatIcon } from '@angular/material/icon';\nimport { WattIconMap } from './icons';\n\nexport type WattIcon = keyof typeof WattIconMap;\nexport type WattIconSize = 'xs' | 's' | 'm' | 'l' | 'xl' | 'xxl';\nexport type WattIconState = 'default' | 'success' | 'danger' | 'warning' | 'info';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: { '[class]': 'classNames()' },\n imports: [MatIcon],\n selector: 'watt-icon',\n styleUrls: ['./icon.component.scss'],\n template: `\n @if (icon()) {\n <mat-icon aria-hidden=\"false\" [attr.aria-label]=\"label()\" fontSet=\"material-symbols-sharp\">\n {{ icon() }}\n </mat-icon>\n } @else {\n <div class=\"watt-custom-icon\">\n <ng-content />\n </div>\n }\n `,\n})\nexport class WattIconComponent {\n /** Name of an icon within the font set. */\n name = input<WattIcon>();\n\n /** Accessible label for the icon. */\n label = input<string>();\n\n /** Size of the icon. */\n size = input<WattIconSize>('m');\n\n /** Color the icon to match a chosen state. */\n state = input<WattIconState>();\n\n icon = computed(() => {\n const name = this.name();\n if (!name) return null;\n return WattIconMap[name];\n });\n\n computedState = computed(() => {\n const name = this.name();\n const state = this.state();\n if (state) return state;\n switch (name) {\n case 'success':\n case 'danger':\n case 'warning':\n case 'info':\n return name;\n default:\n return 'default';\n }\n });\n\n classNames = computed(() => `icon-size-${this.size()} icon-state-${this.computedState()}`);\n}\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 { WattIconComponent, WattIcon, WattIconSize, WattIconState } from './icon.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"energinet-watt-icon.mjs","sources":["../../../libs/watt/package/icon/icons.ts","../../../libs/watt/package/icon/icon.component.ts","../../../libs/watt/package/icon/index.ts","../../../libs/watt/package/icon/energinet-watt-icon.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\nexport const WattIconMap = {\n search: 'search',\n filter: 'filter_list',\n plus: 'add',\n minus: 'remove',\n edit: 'edit',\n redo: 'redo',\n undo: 'undo',\n remove: 'delete',\n removeForever: 'delete_forever',\n close: 'close',\n cancel: 'cancel',\n checkmark: 'check',\n user: 'account_circle',\n settings: 'settings',\n contentCopy: 'content_copy',\n date: 'calendar_today',\n time: 'schedule',\n email: 'email',\n markEmailUnread: 'mark_email_unread',\n link: 'link',\n openInNew: 'open_in_new',\n monetization: 'monetization_on',\n payments: 'payments',\n forwardMessage: 'forward_to_inbox',\n forward: 'forward',\n menu: 'menu',\n moreVertical: 'more_vert',\n logout: 'logout',\n login: 'lock_open',\n help: 'help',\n alternateEmail: 'alternate_email',\n refresh: 'refresh',\n language: 'language',\n pendingActions: 'pending_actions',\n toggleOn: 'toggle_on',\n toggleOff: 'toggle_off',\n personCheck: 'person_check',\n send: 'send',\n // Navigation\n left: 'navigate_before',\n right: 'navigate_next',\n up: 'expand_less',\n down: 'expand_more',\n arrowDropDown: 'arrow_drop_down',\n arrowRightAlt: 'arrow_right_alt',\n arrowLeftAlt: 'arrow_left_alt',\n // Alerts\n danger: 'dangerous',\n warning: 'report_problem',\n success: 'check_circle',\n info: 'info',\n feedback: 'feedback',\n // Files\n save: 'save_alt',\n upload: 'upload',\n download: 'save_alt',\n fileDownload: 'download',\n fileUpload: 'upload',\n print: 'print',\n preview: 'preview',\n attachFile: 'attach_file',\n article: 'article',\n contract: 'contract',\n // Other\n power: 'power',\n location: 'location_on',\n smartDisplay: 'smart_display',\n windmill: 'energy',\n solarPower: 'solar_power',\n priorityHigh: 'priority_high',\n notifications: 'notifications',\n notificationsUnread: 'notifications_unread',\n horizontalRule: 'horizontal_rule',\n wrongLocation: 'wrong_location',\n heatPump: 'heat_pump',\n inventory: 'inventory',\n globe: 'globe',\n calculate: 'calculate',\n bar_chart_4_bars: 'bar_chart_4_bars',\n view_list: 'view_list',\n view_stream: 'view_stream',\n construction: 'construction',\n factory: 'factory',\n nest_eco_leaf: 'nest_eco_leaf',\n flash_on: 'flash_on',\n};\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 ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\nimport { MatIcon } from '@angular/material/icon';\nimport { WattIconMap } from './icons';\n\nexport type WattIcon = keyof typeof WattIconMap;\nexport type WattIconSize = 'xs' | 's' | 'm' | 'l' | 'xl' | 'xxl';\nexport type WattIconState = 'default' | 'success' | 'danger' | 'warning' | 'info';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: { '[class]': 'classNames()' },\n imports: [MatIcon],\n selector: 'watt-icon',\n styleUrls: ['./icon.component.scss'],\n template: `\n @if (icon()) {\n <mat-icon aria-hidden=\"false\" [attr.aria-label]=\"label()\" fontSet=\"material-symbols-sharp\">\n {{ icon() }}\n </mat-icon>\n } @else {\n <div class=\"watt-custom-icon\">\n <ng-content />\n </div>\n }\n `,\n})\nexport class WattIconComponent {\n /** Name of an icon within the font set. */\n name = input<WattIcon>();\n\n /** Accessible label for the icon. */\n label = input<string>();\n\n /** Size of the icon. */\n size = input<WattIconSize>('m');\n\n /** Color the icon to match a chosen state. */\n state = input<WattIconState>();\n\n icon = computed(() => {\n const name = this.name();\n if (!name) return null;\n return WattIconMap[name];\n });\n\n computedState = computed(() => {\n const name = this.name();\n const state = this.state();\n if (state) return state;\n switch (name) {\n case 'success':\n case 'danger':\n case 'warning':\n case 'info':\n return name;\n default:\n return 'default';\n }\n });\n\n classNames = computed(() => `icon-size-${this.size()} icon-state-${this.computedState()}`);\n}\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 { WattIconComponent, WattIcon, WattIconSize, WattIconState } from './icon.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -51,10 +51,10 @@ class WattJsonColorize {
51
51
  return `<span class='watt-json-invalid'>[Circular]</span>`;
52
52
  }
53
53
  }, ...(ngDevMode ? [{ debugName: "colorized" }] : []));
54
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: WattJsonColorize, deps: [], target: i0.ɵɵFactoryTarget.Component });
55
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.15", type: WattJsonColorize, isStandalone: true, selector: "watt-json-colorize", inputs: { json: { classPropertyName: "json", publicName: "json", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: `<span [innerHTML]="colorized()"></span>`, isInline: true, styles: [".watt-json-invalid{color:var(--watt-on-light-low-emphasis)}.watt-json-key{color:var(--watt-color-primary)}.watt-json-string{color:var(--watt-color-state-success)}.watt-json-number{color:var(--watt-color-state-warning)}.watt-json-keyword{color:var(--watt-color-state-danger)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
54
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.5", ngImport: i0, type: WattJsonColorize, deps: [], target: i0.ɵɵFactoryTarget.Component });
55
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.1.5", type: WattJsonColorize, isStandalone: true, selector: "watt-json-colorize", inputs: { json: { classPropertyName: "json", publicName: "json", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: `<span [innerHTML]="colorized()"></span>`, isInline: true, styles: [".watt-json-invalid{color:var(--watt-on-light-low-emphasis)}.watt-json-key{color:var(--watt-color-primary)}.watt-json-string{color:var(--watt-color-state-success)}.watt-json-number{color:var(--watt-color-state-warning)}.watt-json-keyword{color:var(--watt-color-state-danger)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
56
56
  }
57
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: WattJsonColorize, decorators: [{
57
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.5", ngImport: i0, type: WattJsonColorize, decorators: [{
58
58
  type: Component,
59
59
  args: [{ selector: 'watt-json-colorize', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: `<span [innerHTML]="colorized()"></span>`, styles: [".watt-json-invalid{color:var(--watt-on-light-low-emphasis)}.watt-json-key{color:var(--watt-color-primary)}.watt-json-string{color:var(--watt-color-state-success)}.watt-json-number{color:var(--watt-color-state-warning)}.watt-json-keyword{color:var(--watt-color-state-danger)}\n"] }]
60
60
  }], propDecorators: { json: [{ type: i0.Input, args: [{ isSignal: true, alias: "json", required: true }] }] } });
@@ -91,16 +91,13 @@ class WattJson {
91
91
  }, ...(ngDevMode ? [{ debugName: "children" }] : []));
92
92
  // The linkedSignal makes it possible to recursively toggle all nodes
93
93
  expandable = computed(() => Boolean(this.children()), ...(ngDevMode ? [{ debugName: "expandable" }] : []));
94
- expanded = linkedSignal(...(ngDevMode ? [{ debugName: "expanded", source: this.tree,
95
- computation: (t) => this.level() < t.maxDepth && t.expanded ? this.expandable() : this.isRoot() }] : [{
96
- source: this.tree,
97
- computation: (t) => this.level() < t.maxDepth && t.expanded ? this.expandable() : this.isRoot(),
98
- }]));
94
+ expanded = linkedSignal({ ...(ngDevMode ? { debugName: "expanded" } : {}), source: this.tree,
95
+ computation: (t) => this.level() < t.maxDepth && t.expanded ? this.expandable() : this.isRoot() });
99
96
  toggleExpanded = () =>
100
97
  // Prevent toggle when text is being selected
101
98
  this.expanded.update((e) => (getSelection()?.isCollapsed && this.expandable() ? !e : e));
102
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: WattJson, deps: [], target: i0.ɵɵFactoryTarget.Component });
103
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.15", type: WattJson, isStandalone: true, selector: "watt-json", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, json: { classPropertyName: "json", publicName: "json", isSignal: true, isRequired: true, transformFunction: null }, tree: { classPropertyName: "tree", publicName: "tree", isSignal: true, isRequired: true, transformFunction: null }, level: { classPropertyName: "level", publicName: "level", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "style.--watt-json-level": "level()" } }, ngImport: i0, template: `
99
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.5", ngImport: i0, type: WattJson, deps: [], target: i0.ɵɵFactoryTarget.Component });
100
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.5", type: WattJson, isStandalone: true, selector: "watt-json", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, json: { classPropertyName: "json", publicName: "json", isSignal: true, isRequired: true, transformFunction: null }, tree: { classPropertyName: "tree", publicName: "tree", isSignal: true, isRequired: true, transformFunction: null }, level: { classPropertyName: "level", publicName: "level", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "style.--watt-json-level": "level()" } }, ngImport: i0, template: `
104
101
  @if (!isRoot()) {
105
102
  <div class="watt-json-label" (click)="toggleExpanded()">
106
103
  @if (expandable()) {
@@ -123,7 +120,7 @@ class WattJson {
123
120
  }
124
121
  `, isInline: true, styles: ["watt-json{cursor:default}.watt-json-label{position:relative;padding-left:calc(var(--watt-json-level) * 20px);color:var(--watt-color-primary)}.watt-json-label:hover{background:var(--watt-color-neutral-grey-100)}.watt-json-label>watt-icon{position:absolute;top:2px;transform:translate(-100%)}\n"], dependencies: [{ kind: "component", type: WattIconComponent, selector: "watt-icon", inputs: ["name", "label", "size", "state"] }, { kind: "component", type: WattJsonColorize, selector: "watt-json-colorize", inputs: ["json"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None, deferBlockDependencies: [() => [WattJson]] });
125
122
  }
126
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: WattJson, decorators: [{
123
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.5", ngImport: i0, type: WattJson, decorators: [{
127
124
  type: Component,
128
125
  args: [{ selector: 'watt-json', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, imports: [WattIconComponent, WattJsonColorize], host: { '[style.--watt-json-level]': 'level()' }, template: `
129
126
  @if (!isRoot()) {
@@ -192,15 +189,15 @@ class WattJsonViewer {
192
189
  // Use equality function + computed object to always return a new reference, even
193
190
  // when `expanded` is "updated" to its current value. This ensures that "Expand all"
194
191
  // and "Collapse all" always works, regardless of the current state of `expanded`.
195
- expanded = linkedSignal(this.initialExpanded, ...(ngDevMode ? [{ debugName: "expanded", equal: () => false }] : [{ equal: () => false }]));
192
+ expanded = linkedSignal(this.initialExpanded, { ...(ngDevMode ? { debugName: "expanded" } : {}), equal: () => false });
196
193
  tree = computed(() => ({
197
194
  expanded: this.expanded(),
198
195
  maxDepth: this.maxDepth(),
199
196
  }), ...(ngDevMode ? [{ debugName: "tree" }] : []));
200
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: WattJsonViewer, deps: [], target: i0.ɵɵFactoryTarget.Component });
201
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.15", type: WattJsonViewer, isStandalone: true, selector: "watt-json-viewer", inputs: { json: { classPropertyName: "json", publicName: "json", isSignal: true, isRequired: true, transformFunction: null }, maxDepth: { classPropertyName: "maxDepth", publicName: "maxDepth", isSignal: true, isRequired: false, transformFunction: null }, initialExpanded: { classPropertyName: "initialExpanded", publicName: "initialExpanded", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `<watt-json [json]="json()" [tree]="tree()" />`, isInline: true, dependencies: [{ kind: "component", type: WattJson, selector: "watt-json", inputs: ["label", "json", "tree", "level"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
197
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.5", ngImport: i0, type: WattJsonViewer, deps: [], target: i0.ɵɵFactoryTarget.Component });
198
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.1.5", type: WattJsonViewer, isStandalone: true, selector: "watt-json-viewer", inputs: { json: { classPropertyName: "json", publicName: "json", isSignal: true, isRequired: true, transformFunction: null }, maxDepth: { classPropertyName: "maxDepth", publicName: "maxDepth", isSignal: true, isRequired: false, transformFunction: null }, initialExpanded: { classPropertyName: "initialExpanded", publicName: "initialExpanded", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `<watt-json [json]="json()" [tree]="tree()" />`, isInline: true, dependencies: [{ kind: "component", type: WattJson, selector: "watt-json", inputs: ["label", "json", "tree", "level"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
202
199
  }
203
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: WattJsonViewer, decorators: [{
200
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.5", ngImport: i0, type: WattJsonViewer, decorators: [{
204
201
  type: Component,
205
202
  args: [{
206
203
  // eslint-disable-next-line @angular-eslint/component-selector
@@ -1 +1 @@
1
- {"version":3,"file":"energinet-watt-json-viewer.mjs","sources":["../../../libs/watt/package/json-viewer/watt-json-colorize.component.ts","../../../libs/watt/package/json-viewer/watt-json.component.ts","../../../libs/watt/package/json-viewer/watt-json-viewer.component.ts","../../../libs/watt/package/json-viewer/index.ts","../../../libs/watt/package/json-viewer/energinet-watt-json-viewer.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 ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\n/**\n * Matches JSON tokens for syntax highlighting:\n * - `\"(?:[^\"\\\\]|\\\\.)*\":?` - Strings and keys (supports escaped quotes)\n * - `-?\\d+\\.?\\d*` - Numbers (including negative and decimals)\n * - `\\b(true|false|null)\\b` - Keywords\n */\nconst JSON_TOKEN_REGEX = /\"(?:[^\"\\\\]|\\\\.)*\":?|-?\\d+\\.?\\d*|\\b(true|false|null)\\b/g;\n\n@Component({\n selector: 'watt-json-colorize',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n styles: `\n .watt-json-invalid {\n color: var(--watt-on-light-low-emphasis);\n }\n\n .watt-json-key {\n color: var(--watt-color-primary);\n }\n\n .watt-json-string {\n color: var(--watt-color-state-success);\n }\n\n .watt-json-number {\n color: var(--watt-color-state-warning);\n }\n\n .watt-json-keyword {\n color: var(--watt-color-state-danger);\n }\n `,\n template: `<span [innerHTML]=\"colorized()\"></span>`,\n})\nexport class WattJsonColorize {\n readonly json = input.required<unknown>();\n protected readonly colorized = computed(() => {\n try {\n const json = JSON.stringify(this.json(), null, ' ');\n return json === undefined\n ? `<span class='watt-json-invalid'>${this.json()?.toString() || typeof this.json()}</span>`\n : json.replace(JSON_TOKEN_REGEX, (match) => {\n switch (true) {\n case match.endsWith(':'):\n return `<span class='watt-json-key'>${match.slice(1, -2)}</span>:`;\n case match.startsWith('\"'):\n return `<span class='watt-json-string'>${match}</span>`;\n case /\\d/.test(match):\n return `<span class='watt-json-number'>${match}</span>`;\n default:\n return `<span class='watt-json-keyword'>${match}</span>`;\n }\n });\n } catch {\n return `<span class='watt-json-invalid'>[Circular]</span>`;\n }\n });\n}\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 ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n linkedSignal,\n} from '@angular/core';\nimport { WattIconComponent } from '@energinet/watt/icon';\nimport { WattJsonColorize } from './watt-json-colorize.component';\n\nexport type TreeState = {\n expanded: boolean;\n maxDepth: number;\n};\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'watt-json',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [WattIconComponent, WattJsonColorize],\n styles: `\n watt-json {\n cursor: default;\n }\n\n .watt-json-label {\n position: relative;\n padding-left: calc(var(--watt-json-level) * 20px);\n color: var(--watt-color-primary);\n }\n\n .watt-json-label:hover {\n background: var(--watt-color-neutral-grey-100);\n }\n\n .watt-json-label > watt-icon {\n position: absolute;\n top: 2px;\n transform: translateX(-100%);\n }\n `,\n host: { '[style.--watt-json-level]': 'level()' },\n template: `\n @if (!isRoot()) {\n <div class=\"watt-json-label\" (click)=\"toggleExpanded()\">\n @if (expandable()) {\n <watt-icon size=\"s\" [name]=\"expanded() ? 'down' : 'right'\" />\n }\n <span>{{ label() }}: </span>\n <watt-json-colorize [hidden]=\"expanded()\" [json]=\"json()\" />\n </div>\n }\n @defer (when expanded()) {\n @for (child of children(); track child[0]) {\n <watt-json\n [hidden]=\"!expanded()\"\n [label]=\"child[0]\"\n [json]=\"child[1]\"\n [tree]=\"tree()\"\n [level]=\"level() + 1\"\n />\n }\n }\n `,\n})\nexport class WattJson {\n readonly label = input<string>();\n readonly json = input.required<unknown>();\n readonly tree = input.required<TreeState>();\n readonly level = input(0);\n\n protected readonly isRoot = computed(() => this.level() === 0);\n protected readonly children = computed(() => {\n const json = this.json();\n return typeof json === 'object' && json && Object.keys(json).length\n ? Object.entries(json)\n : null;\n });\n\n // The linkedSignal makes it possible to recursively toggle all nodes\n protected readonly expandable = computed(() => Boolean(this.children()));\n protected readonly expanded = linkedSignal({\n source: this.tree,\n computation: (t) =>\n this.level() < t.maxDepth && t.expanded ? this.expandable() : this.isRoot(),\n });\n\n protected readonly toggleExpanded = () =>\n // Prevent toggle when text is being selected\n this.expanded.update((e) => (getSelection()?.isCollapsed && this.expandable() ? !e : e));\n}\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 { ChangeDetectionStrategy, Component, computed, input, linkedSignal } from '@angular/core';\nimport { TreeState, WattJson } from './watt-json.component';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'watt-json-viewer',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [WattJson],\n template: `<watt-json [json]=\"json()\" [tree]=\"tree()\" />`,\n})\nexport class WattJsonViewer {\n /**\n * The JSON data to display. Accepts any value that can be serialized by JSON.stringify.\n */\n readonly json = input.required<unknown>();\n\n /**\n * Maximum depth for `expandAll()`. Beyond this depth nodes start collapsed but can be\n * expanded manually. Useful when dealing with large objects or circular references.\n */\n readonly maxDepth = input(50);\n\n /**\n * Whether the tree starts expanded or collapsed.\n */\n readonly initialExpanded = input(false);\n\n /**\n * Expands all nodes up to `maxDepth`.\n */\n readonly expandAll = () => this.expanded.set(true);\n\n /**\n * Collapses all nodes.\n */\n readonly collapseAll = () => this.expanded.set(false);\n\n // Use equality function + computed object to always return a new reference, even\n // when `expanded` is \"updated\" to its current value. This ensures that \"Expand all\"\n // and \"Collapse all\" always works, regardless of the current state of `expanded`.\n protected readonly expanded = linkedSignal(this.initialExpanded, { equal: () => false });\n protected readonly tree = computed<TreeState>(() => ({\n expanded: this.expanded(),\n maxDepth: this.maxDepth(),\n }));\n}\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 { WattJsonViewer } from './watt-json-viewer.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;AAAA;AACA;;;;;;;;;;;;;;;AAeG;AACH;AASA;;;;;AAKG;AACH,MAAM,gBAAgB,GAAG,wDAAwD;MA6BpE,gBAAgB,CAAA;AAClB,IAAA,IAAI,GAAG,KAAK,CAAC,QAAQ,+CAAW;AACtB,IAAA,SAAS,GAAG,QAAQ,CAAC,MAAK;AAC3C,QAAA,IAAI;AACF,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC;YACnD,OAAO,IAAI,KAAK;AACd,kBAAE,CAAA,gCAAA,EAAmC,IAAI,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,OAAO,IAAI,CAAC,IAAI,EAAE,CAAA,OAAA;kBAChF,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC,KAAK,KAAI;oBACvC,QAAQ,IAAI;AACV,wBAAA,KAAK,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC;4BACtB,OAAO,CAAA,4BAAA,EAA+B,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA,QAAA,CAAU;AACpE,wBAAA,KAAK,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC;4BACxB,OAAO,CAAA,+BAAA,EAAkC,KAAK,CAAA,OAAA,CAAS;AACzD,wBAAA,KAAK,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;4BACnB,OAAO,CAAA,+BAAA,EAAkC,KAAK,CAAA,OAAA,CAAS;AACzD,wBAAA;4BACE,OAAO,CAAA,gCAAA,EAAmC,KAAK,CAAA,OAAA,CAAS;;AAE9D,gBAAA,CAAC,CAAC;QACR;AAAE,QAAA,MAAM;AACN,YAAA,OAAO,mDAAmD;QAC5D;AACF,IAAA,CAAC,qDAAC;wGAtBS,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAhB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,gBAAgB,8MAFjB,CAAA,uCAAA,CAAyC,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,sRAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA;;4FAExC,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBA3B5B,SAAS;+BACE,oBAAoB,EAAA,eAAA,EACb,uBAAuB,CAAC,MAAM,iBAChC,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAsB3B,CAAA,uCAAA,CAAyC,EAAA,MAAA,EAAA,CAAA,sRAAA,CAAA,EAAA;;;AC3DrD;AACA;;;;;;;;;;;;;;;AAeG;AACH;MAoEa,QAAQ,CAAA;IACV,KAAK,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,OAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAU;AACvB,IAAA,IAAI,GAAG,KAAK,CAAC,QAAQ,+CAAW;AAChC,IAAA,IAAI,GAAG,KAAK,CAAC,QAAQ,+CAAa;AAClC,IAAA,KAAK,GAAG,KAAK,CAAC,CAAC,iDAAC;AAEN,IAAA,MAAM,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,kDAAC;AAC3C,IAAA,QAAQ,GAAG,QAAQ,CAAC,MAAK;AAC1C,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE;AACxB,QAAA,OAAO,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC3D,cAAE,MAAM,CAAC,OAAO,CAAC,IAAI;cACnB,IAAI;AACV,IAAA,CAAC,oDAAC;;AAGiB,IAAA,UAAU,GAAG,QAAQ,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,sDAAC;AACrD,IAAA,QAAQ,GAAG,YAAY,CAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,UAAA,EACxC,MAAM,EAAE,IAAI,CAAC,IAAI;AACjB,YAAA,WAAW,EAAE,CAAC,CAAC,KACb,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,EAAA,CAAA,GAAA,CAHpC;YACzC,MAAM,EAAE,IAAI,CAAC,IAAI;AACjB,YAAA,WAAW,EAAE,CAAC,CAAC,KACb,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE;AAC9E,SAAA,CAAA,CAAA,CAAC;IAEiB,cAAc,GAAG;;AAElC,IAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,YAAY,EAAE,EAAE,WAAW,IAAI,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;wGAxB/E,QAAQ,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAR,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,QAAQ,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,yBAAA,EAAA,SAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAvBT;;;;;;;;;;;;;;;;;;;;;AAqBT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,sSAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EA5CS,iBAAiB,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,OAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,gBAAgB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,sBAAA,EAAA,CAAA,MAAA,CA8ClC,QAAQ,CAAA,CAAA,EAAA,CAAA;;4FAAR,QAAQ,EAAA,UAAA,EAAA,CAAA;kBAnDpB,SAAS;+BAEE,WAAW,EAAA,aAAA,EACN,iBAAiB,CAAC,IAAI,mBACpB,uBAAuB,CAAC,MAAM,EAAA,OAAA,EACtC,CAAC,iBAAiB,EAAE,gBAAgB,CAAC,EAAA,IAAA,EAsBxC,EAAE,2BAA2B,EAAE,SAAS,EAAE,EAAA,QAAA,EACtC;;;;;;;;;;;;;;;;;;;;;AAqBT,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,sSAAA,CAAA,EAAA;;;ACnFH;AACA;;;;;;;;;;;;;;;AAeG;AACH;MAWa,cAAc,CAAA;AACzB;;AAEG;AACM,IAAA,IAAI,GAAG,KAAK,CAAC,QAAQ,+CAAW;AAEzC;;;AAGG;AACM,IAAA,QAAQ,GAAG,KAAK,CAAC,EAAE,oDAAC;AAE7B;;AAEG;AACM,IAAA,eAAe,GAAG,KAAK,CAAC,KAAK,2DAAC;AAEvC;;AAEG;AACM,IAAA,SAAS,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;AAElD;;AAEG;AACM,IAAA,WAAW,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC;;;;IAKlC,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC,eAAe,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,UAAA,EAAI,KAAK,EAAE,MAAM,KAAK,EAAA,CAAA,GAAA,CAApB,EAAE,KAAK,EAAE,MAAM,KAAK,EAAE,CAAA,CAAA,CAAC;AACrE,IAAA,IAAI,GAAG,QAAQ,CAAY,OAAO;AACnD,QAAA,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE;AACzB,QAAA,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE;AAC1B,KAAA,CAAC,gDAAC;wGAlCQ,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAAd,cAAc,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,eAAA,EAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAFf,CAAA,6CAAA,CAA+C,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAD/C,QAAQ,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAGP,cAAc,EAAA,UAAA,EAAA,CAAA;kBAP1B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;;AAET,oBAAA,QAAQ,EAAE,kBAAkB;oBAC5B,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,OAAO,EAAE,CAAC,QAAQ,CAAC;AACnB,oBAAA,QAAQ,EAAE,CAAA,6CAAA,CAA+C;AAC1D,iBAAA;;;AC3BD;AACA;;;;;;;;;;;;;;;AAeG;AACH;;ACjBA;;AAEG;;;;"}
1
+ {"version":3,"file":"energinet-watt-json-viewer.mjs","sources":["../../../libs/watt/package/json-viewer/watt-json-colorize.component.ts","../../../libs/watt/package/json-viewer/watt-json.component.ts","../../../libs/watt/package/json-viewer/watt-json-viewer.component.ts","../../../libs/watt/package/json-viewer/index.ts","../../../libs/watt/package/json-viewer/energinet-watt-json-viewer.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 ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\n/**\n * Matches JSON tokens for syntax highlighting:\n * - `\"(?:[^\"\\\\]|\\\\.)*\":?` - Strings and keys (supports escaped quotes)\n * - `-?\\d+\\.?\\d*` - Numbers (including negative and decimals)\n * - `\\b(true|false|null)\\b` - Keywords\n */\nconst JSON_TOKEN_REGEX = /\"(?:[^\"\\\\]|\\\\.)*\":?|-?\\d+\\.?\\d*|\\b(true|false|null)\\b/g;\n\n@Component({\n selector: 'watt-json-colorize',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n styles: `\n .watt-json-invalid {\n color: var(--watt-on-light-low-emphasis);\n }\n\n .watt-json-key {\n color: var(--watt-color-primary);\n }\n\n .watt-json-string {\n color: var(--watt-color-state-success);\n }\n\n .watt-json-number {\n color: var(--watt-color-state-warning);\n }\n\n .watt-json-keyword {\n color: var(--watt-color-state-danger);\n }\n `,\n template: `<span [innerHTML]=\"colorized()\"></span>`,\n})\nexport class WattJsonColorize {\n readonly json = input.required<unknown>();\n protected readonly colorized = computed(() => {\n try {\n const json = JSON.stringify(this.json(), null, ' ');\n return json === undefined\n ? `<span class='watt-json-invalid'>${this.json()?.toString() || typeof this.json()}</span>`\n : json.replace(JSON_TOKEN_REGEX, (match) => {\n switch (true) {\n case match.endsWith(':'):\n return `<span class='watt-json-key'>${match.slice(1, -2)}</span>:`;\n case match.startsWith('\"'):\n return `<span class='watt-json-string'>${match}</span>`;\n case /\\d/.test(match):\n return `<span class='watt-json-number'>${match}</span>`;\n default:\n return `<span class='watt-json-keyword'>${match}</span>`;\n }\n });\n } catch {\n return `<span class='watt-json-invalid'>[Circular]</span>`;\n }\n });\n}\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 ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n linkedSignal,\n} from '@angular/core';\nimport { WattIconComponent } from '@energinet/watt/icon';\nimport { WattJsonColorize } from './watt-json-colorize.component';\n\nexport type TreeState = {\n expanded: boolean;\n maxDepth: number;\n};\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'watt-json',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [WattIconComponent, WattJsonColorize],\n styles: `\n watt-json {\n cursor: default;\n }\n\n .watt-json-label {\n position: relative;\n padding-left: calc(var(--watt-json-level) * 20px);\n color: var(--watt-color-primary);\n }\n\n .watt-json-label:hover {\n background: var(--watt-color-neutral-grey-100);\n }\n\n .watt-json-label > watt-icon {\n position: absolute;\n top: 2px;\n transform: translateX(-100%);\n }\n `,\n host: { '[style.--watt-json-level]': 'level()' },\n template: `\n @if (!isRoot()) {\n <div class=\"watt-json-label\" (click)=\"toggleExpanded()\">\n @if (expandable()) {\n <watt-icon size=\"s\" [name]=\"expanded() ? 'down' : 'right'\" />\n }\n <span>{{ label() }}: </span>\n <watt-json-colorize [hidden]=\"expanded()\" [json]=\"json()\" />\n </div>\n }\n @defer (when expanded()) {\n @for (child of children(); track child[0]) {\n <watt-json\n [hidden]=\"!expanded()\"\n [label]=\"child[0]\"\n [json]=\"child[1]\"\n [tree]=\"tree()\"\n [level]=\"level() + 1\"\n />\n }\n }\n `,\n})\nexport class WattJson {\n readonly label = input<string>();\n readonly json = input.required<unknown>();\n readonly tree = input.required<TreeState>();\n readonly level = input(0);\n\n protected readonly isRoot = computed(() => this.level() === 0);\n protected readonly children = computed(() => {\n const json = this.json();\n return typeof json === 'object' && json && Object.keys(json).length\n ? Object.entries(json)\n : null;\n });\n\n // The linkedSignal makes it possible to recursively toggle all nodes\n protected readonly expandable = computed(() => Boolean(this.children()));\n protected readonly expanded = linkedSignal({\n source: this.tree,\n computation: (t) =>\n this.level() < t.maxDepth && t.expanded ? this.expandable() : this.isRoot(),\n });\n\n protected readonly toggleExpanded = () =>\n // Prevent toggle when text is being selected\n this.expanded.update((e) => (getSelection()?.isCollapsed && this.expandable() ? !e : e));\n}\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 { ChangeDetectionStrategy, Component, computed, input, linkedSignal } from '@angular/core';\nimport { TreeState, WattJson } from './watt-json.component';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'watt-json-viewer',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [WattJson],\n template: `<watt-json [json]=\"json()\" [tree]=\"tree()\" />`,\n})\nexport class WattJsonViewer {\n /**\n * The JSON data to display. Accepts any value that can be serialized by JSON.stringify.\n */\n readonly json = input.required<unknown>();\n\n /**\n * Maximum depth for `expandAll()`. Beyond this depth nodes start collapsed but can be\n * expanded manually. Useful when dealing with large objects or circular references.\n */\n readonly maxDepth = input(50);\n\n /**\n * Whether the tree starts expanded or collapsed.\n */\n readonly initialExpanded = input(false);\n\n /**\n * Expands all nodes up to `maxDepth`.\n */\n readonly expandAll = () => this.expanded.set(true);\n\n /**\n * Collapses all nodes.\n */\n readonly collapseAll = () => this.expanded.set(false);\n\n // Use equality function + computed object to always return a new reference, even\n // when `expanded` is \"updated\" to its current value. This ensures that \"Expand all\"\n // and \"Collapse all\" always works, regardless of the current state of `expanded`.\n protected readonly expanded = linkedSignal(this.initialExpanded, { equal: () => false });\n protected readonly tree = computed<TreeState>(() => ({\n expanded: this.expanded(),\n maxDepth: this.maxDepth(),\n }));\n}\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 { WattJsonViewer } from './watt-json-viewer.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -60,14 +60,14 @@ class WattMenuComponent {
60
60
  * @ignore
61
61
  */
62
62
  menu = viewChild.required('menu');
63
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: WattMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
64
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "20.3.15", type: WattMenuComponent, isStandalone: true, selector: "watt-menu", viewQueries: [{ propertyName: "menu", first: true, predicate: ["menu"], descendants: true, isSignal: true }], exportAs: ["wattMenu"], ngImport: i0, template: `
63
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.5", ngImport: i0, type: WattMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
64
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.1.5", type: WattMenuComponent, isStandalone: true, selector: "watt-menu", viewQueries: [{ propertyName: "menu", first: true, predicate: ["menu"], descendants: true, isSignal: true }], exportAs: ["wattMenu"], ngImport: i0, template: `
65
65
  <mat-menu #menu="matMenu" class="watt-menu-panel">
66
66
  <ng-content />
67
67
  </mat-menu>
68
68
  `, isInline: true, styles: ["watt-menu{display:contents}:root{--watt-menu-padding-block: var(--watt-space-s);--watt-menu-padding-inline: var(--watt-space-m);--watt-menu-item-gap: var(--watt-space-s);--watt-menu-icon-space: calc(var(--watt-menu-icon-size) + var(--watt-menu-item-gap));--watt-menu-icon-size: var(--watt-icon-size-s)}.watt-menu-panel .mat-mdc-menu-content{padding-block:var(--watt-menu-padding-block)}.watt-menu-panel .mat-mdc-menu-content .mat-mdc-menu-item .mat-mdc-menu-item-text{letter-spacing:0}.watt-menu-panel:not(:has(watt-icon)) .watt-menu-item-icon{display:none}\n"], dependencies: [{ kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i1.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
69
69
  }
70
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: WattMenuComponent, decorators: [{
70
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.5", ngImport: i0, type: WattMenuComponent, decorators: [{
71
71
  type: Component,
72
72
  args: [{ selector: 'watt-menu', template: `
73
73
  <mat-menu #menu="matMenu" class="watt-menu-panel">
@@ -99,8 +99,8 @@ class WattMenuItemComponent {
99
99
  * Whether the menu item is disabled.
100
100
  */
101
101
  disabled = input(false, ...(ngDevMode ? [{ debugName: "disabled" }] : []));
102
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: WattMenuItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
103
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.15", type: WattMenuItemComponent, isStandalone: true, selector: "watt-menu-item", inputs: { disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.disabled": "disabled() || null" } }, ngImport: i0, template: `<button mat-menu-item [disabled]="disabled()">
102
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.5", ngImport: i0, type: WattMenuItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
103
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.1.5", type: WattMenuItemComponent, isStandalone: true, selector: "watt-menu-item", inputs: { disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.disabled": "disabled() || null" } }, ngImport: i0, template: `<button mat-menu-item [disabled]="disabled()">
104
104
  <span class="watt-menu-item-content">
105
105
  <span class="watt-menu-item-icon">
106
106
  <ng-content select="watt-icon" />
@@ -109,7 +109,7 @@ class WattMenuItemComponent {
109
109
  </span>
110
110
  </button>`, isInline: true, styles: ["watt-menu-item .mat-mdc-menu-item{padding-inline:var(--watt-menu-padding-inline)}watt-menu-item .watt-menu-item-content{display:flex;align-items:center;gap:var(--watt-menu-item-gap);width:100%}watt-menu-item .watt-menu-item-icon{display:flex;align-items:center;justify-content:center;width:var(--watt-menu-icon-size);height:var(--watt-menu-icon-size);flex-shrink:0}watt-menu-item .watt-menu-item-icon watt-icon{display:flex}watt-menu-item .watt-menu-item-icon--show:empty{visibility:hidden}\n"], dependencies: [{ kind: "component", type: MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
111
111
  }
112
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: WattMenuItemComponent, decorators: [{
112
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.5", ngImport: i0, type: WattMenuItemComponent, decorators: [{
113
113
  type: Component,
114
114
  args: [{ selector: 'watt-menu-item', imports: [MatMenuItem], template: `<button mat-menu-item [disabled]="disabled()">
115
115
  <span class="watt-menu-item-content">
@@ -146,15 +146,15 @@ class WattMenuGroupComponent {
146
146
  * The label for the menu group.
147
147
  */
148
148
  label = input('', ...(ngDevMode ? [{ debugName: "label" }] : []));
149
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: WattMenuGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
150
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.15", type: WattMenuGroupComponent, isStandalone: true, selector: "watt-menu-group", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "watt-menu-group" }, ngImport: i0, template: `
149
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.5", ngImport: i0, type: WattMenuGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
150
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.5", type: WattMenuGroupComponent, isStandalone: true, selector: "watt-menu-group", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "watt-menu-group" }, ngImport: i0, template: `
151
151
  @if (label()) {
152
152
  <div class="watt-menu-group-heading watt-text-s-highlighted">{{ label() }}</div>
153
153
  }
154
154
  <ng-content />
155
155
  `, isInline: true, styles: [".watt-menu-group-heading{padding-block:var(--watt-menu-padding-block);padding-inline:var(--watt-menu-padding-inline)}.watt-menu-panel--has-icons .watt-menu-group-heading{padding-inline-start:calc(var(--watt-menu-padding-inline) + var(--watt-menu-icon-space))}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
156
156
  }
157
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: WattMenuGroupComponent, decorators: [{
157
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.5", ngImport: i0, type: WattMenuGroupComponent, decorators: [{
158
158
  type: Component,
159
159
  args: [{ selector: 'watt-menu-group', template: `
160
160
  @if (label()) {
@@ -230,10 +230,10 @@ class WattMenuTriggerDirective {
230
230
  get menuOpen() {
231
231
  return this.matMenuTrigger.menuOpen;
232
232
  }
233
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: WattMenuTriggerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
234
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.15", type: WattMenuTriggerDirective, isStandalone: true, selector: "[wattMenuTriggerFor]", inputs: { wattMenuTriggerFor: { classPropertyName: "wattMenuTriggerFor", publicName: "wattMenuTriggerFor", isSignal: true, isRequired: true, transformFunction: null } }, exportAs: ["wattMenuTrigger"], hostDirectives: [{ directive: i1.MatMenuTrigger, outputs: ["menuOpened", "menuOpened", "menuClosed", "menuClosed"] }], ngImport: i0 });
233
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.5", ngImport: i0, type: WattMenuTriggerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
234
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.1.5", type: WattMenuTriggerDirective, isStandalone: true, selector: "[wattMenuTriggerFor]", inputs: { wattMenuTriggerFor: { classPropertyName: "wattMenuTriggerFor", publicName: "wattMenuTriggerFor", isSignal: true, isRequired: true, transformFunction: null } }, exportAs: ["wattMenuTrigger"], hostDirectives: [{ directive: i1.MatMenuTrigger, outputs: ["menuOpened", "menuOpened", "menuClosed", "menuClosed"] }], ngImport: i0 });
235
235
  }
236
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: WattMenuTriggerDirective, decorators: [{
236
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.5", ngImport: i0, type: WattMenuTriggerDirective, decorators: [{
237
237
  type: Directive,
238
238
  args: [{
239
239
  selector: '[wattMenuTriggerFor]',
@@ -1 +1 @@
1
- {"version":3,"file":"energinet-watt-menu.mjs","sources":["../../../libs/watt/package/menu/watt-menu.component.ts","../../../libs/watt/package/menu/watt-menu-item.component.ts","../../../libs/watt/package/menu/watt-menu-group.component.ts","../../../libs/watt/package/menu/watt-menu-trigger.directive.ts","../../../libs/watt/package/menu/index.ts","../../../libs/watt/package/menu/energinet-watt-menu.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, ViewEncapsulation, ChangeDetectionStrategy, viewChild } from '@angular/core';\nimport { MatMenu, MatMenuModule } from '@angular/material/menu';\n\n/**\n * Watt Menu Component\n *\n * A wrapper around Angular Material's menu component that provides consistent styling\n * and integration with the Watt design system.\n *\n * @example Basic usage\n * ```html\n * <watt-button [wattMenuTriggerFor]=\"menu\">\n * Open Menu\n * </watt-button>\n *\n * <watt-menu #menu>\n * <watt-menu-item>Option 1</watt-menu-item>\n * <watt-menu-item>Option 2</watt-menu-item>\n * </watt-menu>\n * ```\n *\n * @example With groups\n * ```html\n * <watt-menu #menu>\n * <watt-menu-group label=\"File\">\n * <watt-menu-item>New</watt-menu-item>\n * <watt-menu-item>Open</watt-menu-item>\n * </watt-menu-group>\n *\n * <watt-menu-group label=\"Edit\">\n * <watt-menu-item>Cut</watt-menu-item>\n * <watt-menu-item>Copy</watt-menu-item>\n * </watt-menu-group>\n * </watt-menu>\n * ```\n */\n@Component({\n selector: 'watt-menu',\n template: `\n <mat-menu #menu=\"matMenu\" class=\"watt-menu-panel\">\n <ng-content />\n </mat-menu>\n `,\n styles: [\n `\n watt-menu {\n display: contents;\n }\n\n :root {\n --watt-menu-padding-block: var(--watt-space-s);\n --watt-menu-padding-inline: var(--watt-space-m);\n --watt-menu-item-gap: var(--watt-space-s);\n --watt-menu-icon-space: calc(var(--watt-menu-icon-size) + var(--watt-menu-item-gap));\n --watt-menu-icon-size: var(--watt-icon-size-s);\n }\n\n /* Menu panel styles */\n .watt-menu-panel {\n /* Override Material menu padding to have consistent spacing */\n .mat-mdc-menu-content {\n padding-block: var(--watt-menu-padding-block);\n }\n\n /* Remove default letter-spacing */\n .mat-mdc-menu-content .mat-mdc-menu-item .mat-mdc-menu-item-text {\n letter-spacing: 0;\n }\n\n /* Hide icon space when no menu items have icons */\n &:not(:has(watt-icon)) .watt-menu-item-icon {\n display: none;\n }\n }\n `,\n ],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [MatMenuModule],\n exportAs: 'wattMenu',\n})\nexport class WattMenuComponent {\n /**\n * Reference to the underlying MatMenu instance.\n * @ignore\n */\n menu = viewChild.required<MatMenu>('menu');\n}\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, ChangeDetectionStrategy, input } from '@angular/core';\nimport { MatMenuItem } from '@angular/material/menu';\n\n@Component({\n selector: 'watt-menu-item',\n imports: [MatMenuItem],\n template: `<button mat-menu-item [disabled]=\"disabled()\">\n <span class=\"watt-menu-item-content\">\n <span class=\"watt-menu-item-icon\">\n <ng-content select=\"watt-icon\" />\n </span>\n <ng-content />\n </span>\n </button>`,\n styles: [\n `\n watt-menu-item {\n .mat-mdc-menu-item {\n padding-inline: var(--watt-menu-padding-inline);\n }\n\n .watt-menu-item-content {\n display: flex;\n align-items: center;\n gap: var(--watt-menu-item-gap);\n width: 100%;\n }\n\n .watt-menu-item-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--watt-menu-icon-size);\n height: var(--watt-menu-icon-size);\n flex-shrink: 0;\n\n /* Icon space visibility is controlled by parent menu CSS */\n\n watt-icon {\n display: flex;\n }\n }\n\n .watt-menu-item-icon--show:empty {\n visibility: hidden;\n }\n }\n `,\n ],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[attr.disabled]': 'disabled() || null',\n },\n})\nexport class WattMenuItemComponent {\n /**\n * Whether the menu item is disabled.\n */\n disabled = input(false);\n}\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, ChangeDetectionStrategy, input } from '@angular/core';\n\n@Component({\n selector: 'watt-menu-group',\n template: `\n @if (label()) {\n <div class=\"watt-menu-group-heading watt-text-s-highlighted\">{{ label() }}</div>\n }\n <ng-content />\n `,\n styles: [\n `\n .watt-menu-group-heading {\n padding-block: var(--watt-menu-padding-block);\n padding-inline: var(--watt-menu-padding-inline);\n\n /* Align with menu items when icons are present */\n .watt-menu-panel--has-icons & {\n padding-inline-start: calc(var(--watt-menu-padding-inline) + var(--watt-menu-icon-space));\n }\n }\n `,\n ],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'watt-menu-group',\n },\n})\nexport class WattMenuGroupComponent {\n /**\n * The label for the menu group.\n */\n label = input<string>('');\n}\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 { Directive, inject, input, effect } from '@angular/core';\nimport { MatMenuTrigger } from '@angular/material/menu';\nimport { WattMenuComponent } from './watt-menu.component';\n\n/**\n * Watt Menu Trigger Directive\n *\n * A wrapper around Angular Material's MatMenuTrigger directive that maintains\n * the same API while keeping the Watt design system abstraction.\n *\n * @example\n * ```html\n * <watt-button [wattMenuTriggerFor]=\"menu\">\n * Open Menu\n * </watt-button>\n *\n * <watt-menu #menu>\n * <watt-menu-item>Option 1</watt-menu-item>\n * <watt-menu-item>Option 2</watt-menu-item>\n * </watt-menu>\n * ```\n */\n@Directive({\n selector: '[wattMenuTriggerFor]',\n exportAs: 'wattMenuTrigger',\n hostDirectives: [\n {\n directive: MatMenuTrigger,\n outputs: ['menuOpened', 'menuClosed'],\n },\n ],\n})\nexport class WattMenuTriggerDirective {\n private readonly matMenuTrigger = inject(MatMenuTrigger);\n\n wattMenuTriggerFor = input.required<WattMenuComponent>();\n\n constructor() {\n // Set the MatMenu instance from the WattMenuComponent when it changes\n effect(() => {\n const menu = this.wattMenuTriggerFor();\n if (menu) {\n this.matMenuTrigger.menu = menu.menu();\n }\n });\n }\n\n /** Opens the menu */\n openMenu(): void {\n this.matMenuTrigger.openMenu();\n }\n\n /** Closes the menu */\n closeMenu(): void {\n this.matMenuTrigger.closeMenu();\n }\n\n /** Toggles the menu between the open and closed states */\n toggleMenu(): void {\n this.matMenuTrigger.toggleMenu();\n }\n\n /** Whether the menu is open */\n get menuOpen(): boolean {\n return this.matMenuTrigger.menuOpen;\n }\n}\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\n// Individual exports\nexport { WattMenuComponent } from './watt-menu.component';\nexport { WattMenuItemComponent } from './watt-menu-item.component';\nexport { WattMenuGroupComponent } from './watt-menu-group.component';\nexport { WattMenuTriggerDirective } from './watt-menu-trigger.directive';\n\n// Import the components for the combined export\nimport { WattMenuComponent } from './watt-menu.component';\nimport { WattMenuItemComponent } from './watt-menu-item.component';\nimport { WattMenuGroupComponent } from './watt-menu-group.component';\nimport { WattMenuTriggerDirective } from './watt-menu-trigger.directive';\n\n// Combined export for convenience - all menu-related components\nexport const WATT_MENU = [\n WattMenuComponent,\n WattMenuItemComponent,\n WattMenuGroupComponent,\n WattMenuTriggerDirective,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"energinet-watt-menu.mjs","sources":["../../../libs/watt/package/menu/watt-menu.component.ts","../../../libs/watt/package/menu/watt-menu-item.component.ts","../../../libs/watt/package/menu/watt-menu-group.component.ts","../../../libs/watt/package/menu/watt-menu-trigger.directive.ts","../../../libs/watt/package/menu/index.ts","../../../libs/watt/package/menu/energinet-watt-menu.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, ViewEncapsulation, ChangeDetectionStrategy, viewChild } from '@angular/core';\nimport { MatMenu, MatMenuModule } from '@angular/material/menu';\n\n/**\n * Watt Menu Component\n *\n * A wrapper around Angular Material's menu component that provides consistent styling\n * and integration with the Watt design system.\n *\n * @example Basic usage\n * ```html\n * <watt-button [wattMenuTriggerFor]=\"menu\">\n * Open Menu\n * </watt-button>\n *\n * <watt-menu #menu>\n * <watt-menu-item>Option 1</watt-menu-item>\n * <watt-menu-item>Option 2</watt-menu-item>\n * </watt-menu>\n * ```\n *\n * @example With groups\n * ```html\n * <watt-menu #menu>\n * <watt-menu-group label=\"File\">\n * <watt-menu-item>New</watt-menu-item>\n * <watt-menu-item>Open</watt-menu-item>\n * </watt-menu-group>\n *\n * <watt-menu-group label=\"Edit\">\n * <watt-menu-item>Cut</watt-menu-item>\n * <watt-menu-item>Copy</watt-menu-item>\n * </watt-menu-group>\n * </watt-menu>\n * ```\n */\n@Component({\n selector: 'watt-menu',\n template: `\n <mat-menu #menu=\"matMenu\" class=\"watt-menu-panel\">\n <ng-content />\n </mat-menu>\n `,\n styles: [\n `\n watt-menu {\n display: contents;\n }\n\n :root {\n --watt-menu-padding-block: var(--watt-space-s);\n --watt-menu-padding-inline: var(--watt-space-m);\n --watt-menu-item-gap: var(--watt-space-s);\n --watt-menu-icon-space: calc(var(--watt-menu-icon-size) + var(--watt-menu-item-gap));\n --watt-menu-icon-size: var(--watt-icon-size-s);\n }\n\n /* Menu panel styles */\n .watt-menu-panel {\n /* Override Material menu padding to have consistent spacing */\n .mat-mdc-menu-content {\n padding-block: var(--watt-menu-padding-block);\n }\n\n /* Remove default letter-spacing */\n .mat-mdc-menu-content .mat-mdc-menu-item .mat-mdc-menu-item-text {\n letter-spacing: 0;\n }\n\n /* Hide icon space when no menu items have icons */\n &:not(:has(watt-icon)) .watt-menu-item-icon {\n display: none;\n }\n }\n `,\n ],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [MatMenuModule],\n exportAs: 'wattMenu',\n})\nexport class WattMenuComponent {\n /**\n * Reference to the underlying MatMenu instance.\n * @ignore\n */\n menu = viewChild.required<MatMenu>('menu');\n}\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, ChangeDetectionStrategy, input } from '@angular/core';\nimport { MatMenuItem } from '@angular/material/menu';\n\n@Component({\n selector: 'watt-menu-item',\n imports: [MatMenuItem],\n template: `<button mat-menu-item [disabled]=\"disabled()\">\n <span class=\"watt-menu-item-content\">\n <span class=\"watt-menu-item-icon\">\n <ng-content select=\"watt-icon\" />\n </span>\n <ng-content />\n </span>\n </button>`,\n styles: [\n `\n watt-menu-item {\n .mat-mdc-menu-item {\n padding-inline: var(--watt-menu-padding-inline);\n }\n\n .watt-menu-item-content {\n display: flex;\n align-items: center;\n gap: var(--watt-menu-item-gap);\n width: 100%;\n }\n\n .watt-menu-item-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--watt-menu-icon-size);\n height: var(--watt-menu-icon-size);\n flex-shrink: 0;\n\n /* Icon space visibility is controlled by parent menu CSS */\n\n watt-icon {\n display: flex;\n }\n }\n\n .watt-menu-item-icon--show:empty {\n visibility: hidden;\n }\n }\n `,\n ],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[attr.disabled]': 'disabled() || null',\n },\n})\nexport class WattMenuItemComponent {\n /**\n * Whether the menu item is disabled.\n */\n disabled = input(false);\n}\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, ChangeDetectionStrategy, input } from '@angular/core';\n\n@Component({\n selector: 'watt-menu-group',\n template: `\n @if (label()) {\n <div class=\"watt-menu-group-heading watt-text-s-highlighted\">{{ label() }}</div>\n }\n <ng-content />\n `,\n styles: [\n `\n .watt-menu-group-heading {\n padding-block: var(--watt-menu-padding-block);\n padding-inline: var(--watt-menu-padding-inline);\n\n /* Align with menu items when icons are present */\n .watt-menu-panel--has-icons & {\n padding-inline-start: calc(var(--watt-menu-padding-inline) + var(--watt-menu-icon-space));\n }\n }\n `,\n ],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'watt-menu-group',\n },\n})\nexport class WattMenuGroupComponent {\n /**\n * The label for the menu group.\n */\n label = input<string>('');\n}\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 { Directive, inject, input, effect } from '@angular/core';\nimport { MatMenuTrigger } from '@angular/material/menu';\nimport { WattMenuComponent } from './watt-menu.component';\n\n/**\n * Watt Menu Trigger Directive\n *\n * A wrapper around Angular Material's MatMenuTrigger directive that maintains\n * the same API while keeping the Watt design system abstraction.\n *\n * @example\n * ```html\n * <watt-button [wattMenuTriggerFor]=\"menu\">\n * Open Menu\n * </watt-button>\n *\n * <watt-menu #menu>\n * <watt-menu-item>Option 1</watt-menu-item>\n * <watt-menu-item>Option 2</watt-menu-item>\n * </watt-menu>\n * ```\n */\n@Directive({\n selector: '[wattMenuTriggerFor]',\n exportAs: 'wattMenuTrigger',\n hostDirectives: [\n {\n directive: MatMenuTrigger,\n outputs: ['menuOpened', 'menuClosed'],\n },\n ],\n})\nexport class WattMenuTriggerDirective {\n private readonly matMenuTrigger = inject(MatMenuTrigger);\n\n wattMenuTriggerFor = input.required<WattMenuComponent>();\n\n constructor() {\n // Set the MatMenu instance from the WattMenuComponent when it changes\n effect(() => {\n const menu = this.wattMenuTriggerFor();\n if (menu) {\n this.matMenuTrigger.menu = menu.menu();\n }\n });\n }\n\n /** Opens the menu */\n openMenu(): void {\n this.matMenuTrigger.openMenu();\n }\n\n /** Closes the menu */\n closeMenu(): void {\n this.matMenuTrigger.closeMenu();\n }\n\n /** Toggles the menu between the open and closed states */\n toggleMenu(): void {\n this.matMenuTrigger.toggleMenu();\n }\n\n /** Whether the menu is open */\n get menuOpen(): boolean {\n return this.matMenuTrigger.menuOpen;\n }\n}\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\n// Individual exports\nexport { WattMenuComponent } from './watt-menu.component';\nexport { WattMenuItemComponent } from './watt-menu-item.component';\nexport { WattMenuGroupComponent } from './watt-menu-group.component';\nexport { WattMenuTriggerDirective } from './watt-menu-trigger.directive';\n\n// Import the components for the combined export\nimport { WattMenuComponent } from './watt-menu.component';\nimport { WattMenuItemComponent } from './watt-menu-item.component';\nimport { WattMenuGroupComponent } from './watt-menu-group.component';\nimport { WattMenuTriggerDirective } from './watt-menu-trigger.directive';\n\n// Combined export for convenience - all menu-related components\nexport const WATT_MENU = [\n WattMenuComponent,\n WattMenuItemComponent,\n WattMenuGroupComponent,\n WattMenuTriggerDirective,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -71,10 +71,10 @@ class WattModalService {
71
71
  ?.setAttribute('style', `--watt-modal-min-height: ${minHeight}`);
72
72
  });
73
73
  }
74
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: WattModalService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
75
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: WattModalService });
74
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.5", ngImport: i0, type: WattModalService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
75
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.1.5", ngImport: i0, type: WattModalService });
76
76
  }
77
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: WattModalService, decorators: [{
77
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.5", ngImport: i0, type: WattModalService, decorators: [{
78
78
  type: Injectable
79
79
  }] });
80
80
 
@@ -129,7 +129,7 @@ class WattModalComponent {
129
129
  /** Icon displayed next to the modal title. */
130
130
  titleIcon = input(undefined, ...(ngDevMode ? [{ debugName: "titleIcon" }] : []));
131
131
  /** Whether the modal should open automatically when rendered. */
132
- autoOpen = input(false, ...(ngDevMode ? [{ debugName: "autoOpen", transform: booleanAttribute }] : [{ transform: booleanAttribute }]));
132
+ autoOpen = input(false, { ...(ngDevMode ? { debugName: "autoOpen" } : {}), transform: booleanAttribute });
133
133
  closed = output();
134
134
  modal = viewChild('modal', ...(ngDevMode ? [{ debugName: "modal" }] : []));
135
135
  scrollable = signal(false, ...(ngDevMode ? [{ debugName: "scrollable" }] : []));
@@ -169,10 +169,10 @@ class WattModalComponent {
169
169
  onResize(event) {
170
170
  this.scrollable.set(event.target.scrollHeight > event.target.clientHeight);
171
171
  }
172
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: WattModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
173
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.15", type: WattModalComponent, isStandalone: true, selector: "watt-modal", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, loadingMessage: { classPropertyName: "loadingMessage", publicName: "loadingMessage", isSignal: true, isRequired: false, transformFunction: null }, disableClose: { classPropertyName: "disableClose", publicName: "disableClose", isSignal: true, isRequired: false, transformFunction: null }, hideCloseButton: { classPropertyName: "hideCloseButton", publicName: "hideCloseButton", isSignal: true, isRequired: false, transformFunction: null }, disableEscAndBackdropClose: { classPropertyName: "disableEscAndBackdropClose", publicName: "disableEscAndBackdropClose", isSignal: true, isRequired: false, transformFunction: null }, closeLabel: { classPropertyName: "closeLabel", publicName: "closeLabel", isSignal: true, isRequired: false, transformFunction: null }, panelClass: { classPropertyName: "panelClass", publicName: "panelClass", isSignal: true, isRequired: false, transformFunction: null }, minHeight: { classPropertyName: "minHeight", publicName: "minHeight", isSignal: true, isRequired: false, transformFunction: null }, restoreFocus: { classPropertyName: "restoreFocus", publicName: "restoreFocus", isSignal: true, isRequired: false, transformFunction: null }, titleIcon: { classPropertyName: "titleIcon", publicName: "titleIcon", isSignal: true, isRequired: false, transformFunction: null }, autoOpen: { classPropertyName: "autoOpen", publicName: "autoOpen", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { closed: "closed" }, viewQueries: [{ propertyName: "modal", first: true, predicate: ["modal"], descendants: true, isSignal: 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<ng-template #modal>\n <div class=\"watt-modal\" [class]=\"'watt-modal--' + size()\">\n @if (!disableClose() && !hideCloseButton()) {\n <watt-button\n variant=\"icon\"\n icon=\"close\"\n class=\"watt-modal-close\"\n [attr.aria-label]=\"closeLabel()\"\n (click)=\"close(false)\"\n />\n }\n\n @if (!loading()) {\n <ng-content select=\"h2\">\n @if (title()) {\n <h2 class=\"watt-modal-title\" [class.watt-modal-title-icon]=\"titleIcon()\">\n @if (titleIcon()) {\n <watt-icon [name]=\"titleIcon()\" size=\"l\" />\n }\n {{ title() }}\n </h2>\n }\n </ng-content>\n }\n\n <div\n wattResizeObserver\n class=\"watt-modal-content\"\n [class.watt-modal-scrollable]=\"scrollable()\"\n (resize)=\"onResize($event)\"\n >\n <ng-content />\n </div>\n <ng-content select=\"watt-modal-actions\" />\n\n @if (loading()) {\n <div class=\"watt-modal__spinner\">\n <div>\n <watt-spinner />\n <p>{{ loadingMessage() }}</p>\n </div>\n </div>\n }\n </div>\n</ng-template>\n\n@if (dialogRef) {\n <ng-template [ngTemplateOutlet]=\"modal\" />\n}\n", styles: [":root{--watt-modal-width: 100vw;--watt-modal-min-height: auto;--watt-modal-height: calc(100vh - var(--watt-topbar-height, 0px));--watt-modal-content-padding: 0 var(--watt-space-ml)}.watt-modal{width:var(--watt-modal-width);max-width:100vw;height:var(--watt-modal-height);min-height:var(--watt-modal-min-height);max-height:100vh;position:relative;display:grid;padding:0;align-items:center;grid-template-columns:1fr auto;grid-template-rows:auto 1fr auto;grid-template-areas:\"title close\" \"content content\" \"actions actions\"}.watt-modal--small{--watt-modal-width: 320px;--watt-modal-height: auto}@media (min-width: 600.02px){.watt-modal--small{--watt-modal-width: 520px}}.watt-modal--small .watt-modal-title{color:var(--watt-typography-headline-color);font-size:1rem;line-height:1.5rem;font-weight:600;text-transform:none;letter-spacing:0}@media (min-width: 1280px){.watt-modal--small .watt-modal-title{font-size:1.25rem;line-height:1.75rem}}@media (min-width: 720.02px){.watt-modal--medium{--watt-modal-width: 720px;--watt-modal-height: auto}}@media (min-width: 786.02px){.watt-modal--large{--watt-modal-width: 786px;--watt-modal-height: auto}}@media (min-width: 960.02px){.watt-modal--large{--watt-modal-width: 936px;--watt-modal-height: auto}}.watt-modal-panel{margin-top:var(--watt-topbar-height)}.watt-modal-panel .mat-mdc-dialog-container .mdc-dialog__surface{width:auto}.watt-modal-panel .watt-modal-close{grid-area:close;align-self:start;margin:var(--watt-space-s);color:var(--watt-color-primary)}.watt-modal-panel .watt-modal-title{grid-area:title;margin:var(--watt-space-s) var(--watt-space-ml);color:var(--watt-typography-text-color)}.watt-modal-panel .watt-modal-title.watt-modal-title-icon{display:flex;align-items:center;gap:var(--watt-space-s)}.watt-modal-panel .watt-modal-content{align-self:stretch;grid-area:content;overflow:auto;padding:var(--watt-modal-content-padding)}.watt-modal-panel .watt-modal-content .watt-modal-content--full-width{display:block;margin:0 calc(-1 * var(--watt-space-s)) 0 0}@media (min-width: 720.02px){.watt-modal-panel .watt-modal-content .watt-modal-content--full-width{margin:0 calc(-1 * var(--watt-space-ml))}}.watt-modal-panel .watt-modal-scrollable{border:1px solid var(--watt-color-neutral-grey-300);border-left:none;border-right:none}.watt-modal-panel watt-modal-actions{grid-area:actions;display:flex;justify-content:flex-end;padding:var(--watt-space-ml);gap:var(--watt-space-m)}.watt-modal-panel .watt-modal__spinner{position:absolute;inset:0;display:flex;justify-content:center;align-items:center;background:#fffc}.watt-modal-panel .watt-modal__spinner div{display:flex;align-items:center;justify-content:center;flex-wrap:wrap}.watt-modal-panel .watt-modal__spinner div p{margin-top:var(--watt-space-m);width:100%}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: WattResizeObserverDirective, selector: "[wattResizeObserver]", outputs: ["resize"] }, { kind: "component", type: WattButtonComponent, selector: "watt-button", inputs: ["icon", "variant", "size", "type", "formId", "disabled", "loading"] }, { kind: "component", type: WattSpinnerComponent, selector: "watt-spinner", inputs: ["diameter", "strokeWidth"] }, { kind: "component", type: WattIconComponent, selector: "watt-icon", inputs: ["name", "label", "size", "state"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
172
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.5", ngImport: i0, type: WattModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
173
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.5", type: WattModalComponent, isStandalone: true, selector: "watt-modal", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, loadingMessage: { classPropertyName: "loadingMessage", publicName: "loadingMessage", isSignal: true, isRequired: false, transformFunction: null }, disableClose: { classPropertyName: "disableClose", publicName: "disableClose", isSignal: true, isRequired: false, transformFunction: null }, hideCloseButton: { classPropertyName: "hideCloseButton", publicName: "hideCloseButton", isSignal: true, isRequired: false, transformFunction: null }, disableEscAndBackdropClose: { classPropertyName: "disableEscAndBackdropClose", publicName: "disableEscAndBackdropClose", isSignal: true, isRequired: false, transformFunction: null }, closeLabel: { classPropertyName: "closeLabel", publicName: "closeLabel", isSignal: true, isRequired: false, transformFunction: null }, panelClass: { classPropertyName: "panelClass", publicName: "panelClass", isSignal: true, isRequired: false, transformFunction: null }, minHeight: { classPropertyName: "minHeight", publicName: "minHeight", isSignal: true, isRequired: false, transformFunction: null }, restoreFocus: { classPropertyName: "restoreFocus", publicName: "restoreFocus", isSignal: true, isRequired: false, transformFunction: null }, titleIcon: { classPropertyName: "titleIcon", publicName: "titleIcon", isSignal: true, isRequired: false, transformFunction: null }, autoOpen: { classPropertyName: "autoOpen", publicName: "autoOpen", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { closed: "closed" }, viewQueries: [{ propertyName: "modal", first: true, predicate: ["modal"], descendants: true, isSignal: 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<ng-template #modal>\n <div class=\"watt-modal\" [class]=\"'watt-modal--' + size()\">\n @if (!disableClose() && !hideCloseButton()) {\n <watt-button\n variant=\"icon\"\n icon=\"close\"\n class=\"watt-modal-close\"\n [attr.aria-label]=\"closeLabel()\"\n (click)=\"close(false)\"\n />\n }\n\n @if (!loading()) {\n <ng-content select=\"h2\">\n @if (title()) {\n <h2 class=\"watt-modal-title\" [class.watt-modal-title-icon]=\"titleIcon()\">\n @if (titleIcon()) {\n <watt-icon [name]=\"titleIcon()\" size=\"l\" />\n }\n {{ title() }}\n </h2>\n }\n </ng-content>\n }\n\n <div\n wattResizeObserver\n class=\"watt-modal-content\"\n [class.watt-modal-scrollable]=\"scrollable()\"\n (resize)=\"onResize($event)\"\n >\n <ng-content />\n </div>\n <ng-content select=\"watt-modal-actions\" />\n\n @if (loading()) {\n <div class=\"watt-modal__spinner\">\n <div>\n <watt-spinner />\n <p>{{ loadingMessage() }}</p>\n </div>\n </div>\n }\n </div>\n</ng-template>\n\n@if (dialogRef) {\n <ng-template [ngTemplateOutlet]=\"modal\" />\n}\n", styles: [":root{--watt-modal-width: 100vw;--watt-modal-min-height: auto;--watt-modal-height: calc(100vh - var(--watt-topbar-height, 0px));--watt-modal-content-padding: 0 var(--watt-space-ml)}.watt-modal{width:var(--watt-modal-width);max-width:100vw;height:var(--watt-modal-height);min-height:var(--watt-modal-min-height);max-height:100vh;position:relative;display:grid;padding:0;align-items:center;grid-template-columns:1fr auto;grid-template-rows:auto 1fr auto;grid-template-areas:\"title close\" \"content content\" \"actions actions\"}.watt-modal--small{--watt-modal-width: 320px;--watt-modal-height: auto}@media(min-width:600.02px){.watt-modal--small{--watt-modal-width: 520px}}.watt-modal--small .watt-modal-title{color:var(--watt-typography-headline-color);font-size:1rem;line-height:1.5rem;font-weight:600;text-transform:none;letter-spacing:0}@media(min-width:1280px){.watt-modal--small .watt-modal-title{font-size:1.25rem;line-height:1.75rem}}@media(min-width:720.02px){.watt-modal--medium{--watt-modal-width: 720px;--watt-modal-height: auto}}@media(min-width:786.02px){.watt-modal--large{--watt-modal-width: 786px;--watt-modal-height: auto}}@media(min-width:960.02px){.watt-modal--large{--watt-modal-width: 936px;--watt-modal-height: auto}}.watt-modal-panel{margin-top:var(--watt-topbar-height)}.watt-modal-panel .mat-mdc-dialog-container .mdc-dialog__surface{width:auto}.watt-modal-panel .watt-modal-close{grid-area:close;align-self:start;margin:var(--watt-space-s);color:var(--watt-color-primary)}.watt-modal-panel .watt-modal-title{grid-area:title;margin:var(--watt-space-s) var(--watt-space-ml);color:var(--watt-typography-text-color)}.watt-modal-panel .watt-modal-title.watt-modal-title-icon{display:flex;align-items:center;gap:var(--watt-space-s)}.watt-modal-panel .watt-modal-content{align-self:stretch;grid-area:content;overflow:auto;padding:var(--watt-modal-content-padding)}.watt-modal-panel .watt-modal-content .watt-modal-content--full-width{display:block;margin:0 calc(-1 * var(--watt-space-s)) 0 0}@media(min-width:720.02px){.watt-modal-panel .watt-modal-content .watt-modal-content--full-width{margin:0 calc(-1 * var(--watt-space-ml))}}.watt-modal-panel .watt-modal-scrollable{border:1px solid var(--watt-color-neutral-grey-300);border-left:none;border-right:none}.watt-modal-panel watt-modal-actions{grid-area:actions;display:flex;justify-content:flex-end;padding:var(--watt-space-ml);gap:var(--watt-space-m)}.watt-modal-panel .watt-modal__spinner{position:absolute;inset:0;display:flex;justify-content:center;align-items:center;background:#fffc}.watt-modal-panel .watt-modal__spinner div{display:flex;align-items:center;justify-content:center;flex-wrap:wrap}.watt-modal-panel .watt-modal__spinner div p{margin-top:var(--watt-space-m);width:100%}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: WattResizeObserverDirective, selector: "[wattResizeObserver]", outputs: ["resize"] }, { kind: "component", type: WattButtonComponent, selector: "watt-button", inputs: ["icon", "variant", "size", "type", "formId", "disabled", "loading"] }, { kind: "component", type: WattSpinnerComponent, selector: "watt-spinner", inputs: ["diameter", "strokeWidth"] }, { kind: "component", type: WattIconComponent, selector: "watt-icon", inputs: ["name", "label", "size", "state"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
174
174
  }
175
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: WattModalComponent, decorators: [{
175
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.5", ngImport: i0, type: WattModalComponent, decorators: [{
176
176
  type: Component,
177
177
  args: [{ changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, selector: 'watt-modal', imports: [
178
178
  NgTemplateOutlet,
@@ -180,16 +180,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
180
180
  WattButtonComponent,
181
181
  WattSpinnerComponent,
182
182
  WattIconComponent,
183
- ], 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<ng-template #modal>\n <div class=\"watt-modal\" [class]=\"'watt-modal--' + size()\">\n @if (!disableClose() && !hideCloseButton()) {\n <watt-button\n variant=\"icon\"\n icon=\"close\"\n class=\"watt-modal-close\"\n [attr.aria-label]=\"closeLabel()\"\n (click)=\"close(false)\"\n />\n }\n\n @if (!loading()) {\n <ng-content select=\"h2\">\n @if (title()) {\n <h2 class=\"watt-modal-title\" [class.watt-modal-title-icon]=\"titleIcon()\">\n @if (titleIcon()) {\n <watt-icon [name]=\"titleIcon()\" size=\"l\" />\n }\n {{ title() }}\n </h2>\n }\n </ng-content>\n }\n\n <div\n wattResizeObserver\n class=\"watt-modal-content\"\n [class.watt-modal-scrollable]=\"scrollable()\"\n (resize)=\"onResize($event)\"\n >\n <ng-content />\n </div>\n <ng-content select=\"watt-modal-actions\" />\n\n @if (loading()) {\n <div class=\"watt-modal__spinner\">\n <div>\n <watt-spinner />\n <p>{{ loadingMessage() }}</p>\n </div>\n </div>\n }\n </div>\n</ng-template>\n\n@if (dialogRef) {\n <ng-template [ngTemplateOutlet]=\"modal\" />\n}\n", styles: [":root{--watt-modal-width: 100vw;--watt-modal-min-height: auto;--watt-modal-height: calc(100vh - var(--watt-topbar-height, 0px));--watt-modal-content-padding: 0 var(--watt-space-ml)}.watt-modal{width:var(--watt-modal-width);max-width:100vw;height:var(--watt-modal-height);min-height:var(--watt-modal-min-height);max-height:100vh;position:relative;display:grid;padding:0;align-items:center;grid-template-columns:1fr auto;grid-template-rows:auto 1fr auto;grid-template-areas:\"title close\" \"content content\" \"actions actions\"}.watt-modal--small{--watt-modal-width: 320px;--watt-modal-height: auto}@media (min-width: 600.02px){.watt-modal--small{--watt-modal-width: 520px}}.watt-modal--small .watt-modal-title{color:var(--watt-typography-headline-color);font-size:1rem;line-height:1.5rem;font-weight:600;text-transform:none;letter-spacing:0}@media (min-width: 1280px){.watt-modal--small .watt-modal-title{font-size:1.25rem;line-height:1.75rem}}@media (min-width: 720.02px){.watt-modal--medium{--watt-modal-width: 720px;--watt-modal-height: auto}}@media (min-width: 786.02px){.watt-modal--large{--watt-modal-width: 786px;--watt-modal-height: auto}}@media (min-width: 960.02px){.watt-modal--large{--watt-modal-width: 936px;--watt-modal-height: auto}}.watt-modal-panel{margin-top:var(--watt-topbar-height)}.watt-modal-panel .mat-mdc-dialog-container .mdc-dialog__surface{width:auto}.watt-modal-panel .watt-modal-close{grid-area:close;align-self:start;margin:var(--watt-space-s);color:var(--watt-color-primary)}.watt-modal-panel .watt-modal-title{grid-area:title;margin:var(--watt-space-s) var(--watt-space-ml);color:var(--watt-typography-text-color)}.watt-modal-panel .watt-modal-title.watt-modal-title-icon{display:flex;align-items:center;gap:var(--watt-space-s)}.watt-modal-panel .watt-modal-content{align-self:stretch;grid-area:content;overflow:auto;padding:var(--watt-modal-content-padding)}.watt-modal-panel .watt-modal-content .watt-modal-content--full-width{display:block;margin:0 calc(-1 * var(--watt-space-s)) 0 0}@media (min-width: 720.02px){.watt-modal-panel .watt-modal-content .watt-modal-content--full-width{margin:0 calc(-1 * var(--watt-space-ml))}}.watt-modal-panel .watt-modal-scrollable{border:1px solid var(--watt-color-neutral-grey-300);border-left:none;border-right:none}.watt-modal-panel watt-modal-actions{grid-area:actions;display:flex;justify-content:flex-end;padding:var(--watt-space-ml);gap:var(--watt-space-m)}.watt-modal-panel .watt-modal__spinner{position:absolute;inset:0;display:flex;justify-content:center;align-items:center;background:#fffc}.watt-modal-panel .watt-modal__spinner div{display:flex;align-items:center;justify-content:center;flex-wrap:wrap}.watt-modal-panel .watt-modal__spinner div p{margin-top:var(--watt-space-m);width:100%}\n"] }]
183
+ ], 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<ng-template #modal>\n <div class=\"watt-modal\" [class]=\"'watt-modal--' + size()\">\n @if (!disableClose() && !hideCloseButton()) {\n <watt-button\n variant=\"icon\"\n icon=\"close\"\n class=\"watt-modal-close\"\n [attr.aria-label]=\"closeLabel()\"\n (click)=\"close(false)\"\n />\n }\n\n @if (!loading()) {\n <ng-content select=\"h2\">\n @if (title()) {\n <h2 class=\"watt-modal-title\" [class.watt-modal-title-icon]=\"titleIcon()\">\n @if (titleIcon()) {\n <watt-icon [name]=\"titleIcon()\" size=\"l\" />\n }\n {{ title() }}\n </h2>\n }\n </ng-content>\n }\n\n <div\n wattResizeObserver\n class=\"watt-modal-content\"\n [class.watt-modal-scrollable]=\"scrollable()\"\n (resize)=\"onResize($event)\"\n >\n <ng-content />\n </div>\n <ng-content select=\"watt-modal-actions\" />\n\n @if (loading()) {\n <div class=\"watt-modal__spinner\">\n <div>\n <watt-spinner />\n <p>{{ loadingMessage() }}</p>\n </div>\n </div>\n }\n </div>\n</ng-template>\n\n@if (dialogRef) {\n <ng-template [ngTemplateOutlet]=\"modal\" />\n}\n", styles: [":root{--watt-modal-width: 100vw;--watt-modal-min-height: auto;--watt-modal-height: calc(100vh - var(--watt-topbar-height, 0px));--watt-modal-content-padding: 0 var(--watt-space-ml)}.watt-modal{width:var(--watt-modal-width);max-width:100vw;height:var(--watt-modal-height);min-height:var(--watt-modal-min-height);max-height:100vh;position:relative;display:grid;padding:0;align-items:center;grid-template-columns:1fr auto;grid-template-rows:auto 1fr auto;grid-template-areas:\"title close\" \"content content\" \"actions actions\"}.watt-modal--small{--watt-modal-width: 320px;--watt-modal-height: auto}@media(min-width:600.02px){.watt-modal--small{--watt-modal-width: 520px}}.watt-modal--small .watt-modal-title{color:var(--watt-typography-headline-color);font-size:1rem;line-height:1.5rem;font-weight:600;text-transform:none;letter-spacing:0}@media(min-width:1280px){.watt-modal--small .watt-modal-title{font-size:1.25rem;line-height:1.75rem}}@media(min-width:720.02px){.watt-modal--medium{--watt-modal-width: 720px;--watt-modal-height: auto}}@media(min-width:786.02px){.watt-modal--large{--watt-modal-width: 786px;--watt-modal-height: auto}}@media(min-width:960.02px){.watt-modal--large{--watt-modal-width: 936px;--watt-modal-height: auto}}.watt-modal-panel{margin-top:var(--watt-topbar-height)}.watt-modal-panel .mat-mdc-dialog-container .mdc-dialog__surface{width:auto}.watt-modal-panel .watt-modal-close{grid-area:close;align-self:start;margin:var(--watt-space-s);color:var(--watt-color-primary)}.watt-modal-panel .watt-modal-title{grid-area:title;margin:var(--watt-space-s) var(--watt-space-ml);color:var(--watt-typography-text-color)}.watt-modal-panel .watt-modal-title.watt-modal-title-icon{display:flex;align-items:center;gap:var(--watt-space-s)}.watt-modal-panel .watt-modal-content{align-self:stretch;grid-area:content;overflow:auto;padding:var(--watt-modal-content-padding)}.watt-modal-panel .watt-modal-content .watt-modal-content--full-width{display:block;margin:0 calc(-1 * var(--watt-space-s)) 0 0}@media(min-width:720.02px){.watt-modal-panel .watt-modal-content .watt-modal-content--full-width{margin:0 calc(-1 * var(--watt-space-ml))}}.watt-modal-panel .watt-modal-scrollable{border:1px solid var(--watt-color-neutral-grey-300);border-left:none;border-right:none}.watt-modal-panel watt-modal-actions{grid-area:actions;display:flex;justify-content:flex-end;padding:var(--watt-space-ml);gap:var(--watt-space-m)}.watt-modal-panel .watt-modal__spinner{position:absolute;inset:0;display:flex;justify-content:center;align-items:center;background:#fffc}.watt-modal-panel .watt-modal__spinner div{display:flex;align-items:center;justify-content:center;flex-wrap:wrap}.watt-modal-panel .watt-modal__spinner div p{margin-top:var(--watt-space-m);width:100%}\n"] }]
184
184
  }], ctorParameters: () => [], propDecorators: { title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], loading: [{ type: i0.Input, args: [{ isSignal: true, alias: "loading", required: false }] }], loadingMessage: [{ type: i0.Input, args: [{ isSignal: true, alias: "loadingMessage", required: false }] }], disableClose: [{ type: i0.Input, args: [{ isSignal: true, alias: "disableClose", required: false }] }], hideCloseButton: [{ type: i0.Input, args: [{ isSignal: true, alias: "hideCloseButton", required: false }] }], disableEscAndBackdropClose: [{ type: i0.Input, args: [{ isSignal: true, alias: "disableEscAndBackdropClose", required: false }] }], closeLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "closeLabel", required: false }] }], panelClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "panelClass", required: false }] }], minHeight: [{ type: i0.Input, args: [{ isSignal: true, alias: "minHeight", required: false }] }], restoreFocus: [{ type: i0.Input, args: [{ isSignal: true, alias: "restoreFocus", required: false }] }], titleIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "titleIcon", required: false }] }], autoOpen: [{ type: i0.Input, args: [{ isSignal: true, alias: "autoOpen", required: false }] }], closed: [{ type: i0.Output, args: ["closed"] }], modal: [{ type: i0.ViewChild, args: ['modal', { isSignal: true }] }] } });
185
185
  /**
186
186
  * Component for projecting buttons (actions) to the bottom of the modal.
187
187
  */
188
188
  class WattModalActionsComponent {
189
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: WattModalActionsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
190
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.15", type: WattModalActionsComponent, isStandalone: true, selector: "watt-modal-actions", ngImport: i0, template: '<ng-content />', isInline: true });
189
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.5", ngImport: i0, type: WattModalActionsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
190
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.1.5", type: WattModalActionsComponent, isStandalone: true, selector: "watt-modal-actions", ngImport: i0, template: '<ng-content />', isInline: true });
191
191
  }
192
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: WattModalActionsComponent, decorators: [{
192
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.5", ngImport: i0, type: WattModalActionsComponent, decorators: [{
193
193
  type: Component,
194
194
  args: [{
195
195
  selector: 'watt-modal-actions',