@yuuvis/client-framework 2.20.1 → 3.0.0-beta.20.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (379) hide show
  1. package/actions/index.d.ts +230 -9
  2. package/app-bar/index.d.ts +50 -1
  3. package/autocomplete/index.d.ts +89 -3
  4. package/breadcrumb/index.d.ts +112 -2
  5. package/clipboard/index.d.ts +19 -1
  6. package/common/index.d.ts +536 -7
  7. package/datepicker/index.d.ts +380 -6
  8. package/fesm2022/yuuvis-client-framework-actions.mjs +31 -32
  9. package/fesm2022/yuuvis-client-framework-actions.mjs.map +1 -1
  10. package/fesm2022/yuuvis-client-framework-app-bar.mjs +14 -17
  11. package/fesm2022/yuuvis-client-framework-app-bar.mjs.map +1 -1
  12. package/fesm2022/yuuvis-client-framework-autocomplete.mjs +23 -23
  13. package/fesm2022/yuuvis-client-framework-autocomplete.mjs.map +1 -1
  14. package/fesm2022/yuuvis-client-framework-breadcrumb.mjs +7 -8
  15. package/fesm2022/yuuvis-client-framework-breadcrumb.mjs.map +1 -1
  16. package/fesm2022/yuuvis-client-framework-clipboard.mjs +8 -10
  17. package/fesm2022/yuuvis-client-framework-clipboard.mjs.map +1 -1
  18. package/fesm2022/yuuvis-client-framework-common.mjs +191 -234
  19. package/fesm2022/yuuvis-client-framework-common.mjs.map +1 -1
  20. package/fesm2022/yuuvis-client-framework-datepicker.mjs +110 -145
  21. package/fesm2022/yuuvis-client-framework-datepicker.mjs.map +1 -1
  22. package/fesm2022/yuuvis-client-framework-forms.mjs +283 -250
  23. package/fesm2022/yuuvis-client-framework-forms.mjs.map +1 -1
  24. package/fesm2022/yuuvis-client-framework-icons.mjs +18 -19
  25. package/fesm2022/yuuvis-client-framework-icons.mjs.map +1 -1
  26. package/fesm2022/yuuvis-client-framework-list.mjs +59 -57
  27. package/fesm2022/yuuvis-client-framework-list.mjs.map +1 -1
  28. package/fesm2022/yuuvis-client-framework-master-details.mjs +23 -18
  29. package/fesm2022/yuuvis-client-framework-master-details.mjs.map +1 -1
  30. package/fesm2022/yuuvis-client-framework-metadata-form-defaults.mjs +7 -9
  31. package/fesm2022/yuuvis-client-framework-metadata-form-defaults.mjs.map +1 -1
  32. package/fesm2022/yuuvis-client-framework-metadata-form.mjs +32 -32
  33. package/fesm2022/yuuvis-client-framework-metadata-form.mjs.map +1 -1
  34. package/fesm2022/yuuvis-client-framework-object-details.mjs +129 -120
  35. package/fesm2022/yuuvis-client-framework-object-details.mjs.map +1 -1
  36. package/fesm2022/yuuvis-client-framework-object-flavor.mjs +67 -59
  37. package/fesm2022/yuuvis-client-framework-object-flavor.mjs.map +1 -1
  38. package/fesm2022/yuuvis-client-framework-object-form.mjs +58 -60
  39. package/fesm2022/yuuvis-client-framework-object-form.mjs.map +1 -1
  40. package/fesm2022/yuuvis-client-framework-object-preview.mjs +64 -47
  41. package/fesm2022/yuuvis-client-framework-object-preview.mjs.map +1 -1
  42. package/fesm2022/yuuvis-client-framework-object-relationship.mjs +206 -183
  43. package/fesm2022/yuuvis-client-framework-object-relationship.mjs.map +1 -1
  44. package/fesm2022/yuuvis-client-framework-object-summary.mjs +42 -42
  45. package/fesm2022/yuuvis-client-framework-object-summary.mjs.map +1 -1
  46. package/fesm2022/yuuvis-client-framework-object-versions.mjs +28 -29
  47. package/fesm2022/yuuvis-client-framework-object-versions.mjs.map +1 -1
  48. package/fesm2022/yuuvis-client-framework-overflow-hidden.mjs +10 -10
  49. package/fesm2022/yuuvis-client-framework-overflow-hidden.mjs.map +1 -1
  50. package/fesm2022/yuuvis-client-framework-overflow-menu.mjs +16 -16
  51. package/fesm2022/yuuvis-client-framework-overflow-menu.mjs.map +1 -1
  52. package/fesm2022/yuuvis-client-framework-pagination.mjs +7 -8
  53. package/fesm2022/yuuvis-client-framework-pagination.mjs.map +1 -1
  54. package/fesm2022/yuuvis-client-framework-popout.mjs +55 -57
  55. package/fesm2022/yuuvis-client-framework-popout.mjs.map +1 -1
  56. package/fesm2022/yuuvis-client-framework-query-list.mjs +29 -29
  57. package/fesm2022/yuuvis-client-framework-query-list.mjs.map +1 -1
  58. package/fesm2022/yuuvis-client-framework-renderer.mjs +71 -68
  59. package/fesm2022/yuuvis-client-framework-renderer.mjs.map +1 -1
  60. package/fesm2022/yuuvis-client-framework-sequence-list.mjs +20 -25
  61. package/fesm2022/yuuvis-client-framework-sequence-list.mjs.map +1 -1
  62. package/fesm2022/yuuvis-client-framework-simple-search.mjs +31 -33
  63. package/fesm2022/yuuvis-client-framework-simple-search.mjs.map +1 -1
  64. package/fesm2022/yuuvis-client-framework-sort.mjs +57 -37
  65. package/fesm2022/yuuvis-client-framework-sort.mjs.map +1 -1
  66. package/fesm2022/yuuvis-client-framework-split-view.mjs +39 -38
  67. package/fesm2022/yuuvis-client-framework-split-view.mjs.map +1 -1
  68. package/fesm2022/yuuvis-client-framework-tile-list.mjs +119 -121
  69. package/fesm2022/yuuvis-client-framework-tile-list.mjs.map +1 -1
  70. package/fesm2022/yuuvis-client-framework-token-search.mjs +22 -22
  71. package/fesm2022/yuuvis-client-framework-token-search.mjs.map +1 -1
  72. package/fesm2022/yuuvis-client-framework-tree.mjs +32 -44
  73. package/fesm2022/yuuvis-client-framework-tree.mjs.map +1 -1
  74. package/fesm2022/yuuvis-client-framework-upload-progress.mjs +22 -26
  75. package/fesm2022/yuuvis-client-framework-upload-progress.mjs.map +1 -1
  76. package/fesm2022/yuuvis-client-framework-widget-grid.mjs +80 -77
  77. package/fesm2022/yuuvis-client-framework-widget-grid.mjs.map +1 -1
  78. package/fesm2022/yuuvis-client-framework.mjs +23 -23
  79. package/fesm2022/yuuvis-client-framework.mjs.map +1 -1
  80. package/forms/index.d.ts +633 -13
  81. package/icons/index.d.ts +79 -4
  82. package/index.d.ts +909 -6
  83. package/list/index.d.ts +380 -4
  84. package/master-details/index.d.ts +69 -3
  85. package/metadata-form/index.d.ts +189 -6
  86. package/metadata-form-defaults/index.d.ts +14 -2
  87. package/object-details/index.d.ts +321 -9
  88. package/object-flavor/index.d.ts +86 -6
  89. package/object-form/index.d.ts +288 -4
  90. package/object-preview/index.d.ts +82 -2
  91. package/object-relationship/index.d.ts +120 -5
  92. package/object-summary/index.d.ts +105 -4
  93. package/object-versions/index.d.ts +43 -2
  94. package/overflow-hidden/index.d.ts +28 -2
  95. package/overflow-menu/index.d.ts +52 -3
  96. package/package.json +12 -12
  97. package/pagination/index.d.ts +31 -2
  98. package/popout/index.d.ts +106 -5
  99. package/query-list/index.d.ts +497 -2
  100. package/renderer/index.d.ts +117 -10
  101. package/sequence-list/index.d.ts +60 -2
  102. package/simple-search/index.d.ts +57 -1
  103. package/sort/index.d.ts +36 -2
  104. package/split-view/index.d.ts +197 -4
  105. package/tile-list/index.d.ts +789 -10
  106. package/token-search/index.d.ts +72 -3
  107. package/tree/index.d.ts +68 -2
  108. package/upload-progress/index.d.ts +44 -2
  109. package/widget-grid/index.d.ts +299 -7
  110. package/actions/lib/actions/copy-action/copy-action.d.ts +0 -17
  111. package/actions/lib/actions/cut-action/cut-action.d.ts +0 -17
  112. package/actions/lib/actions/delete-action/delete/delete.component.d.ts +0 -22
  113. package/actions/lib/actions/delete-action/delete-action.d.ts +0 -18
  114. package/actions/lib/actions/download-action/download-action.d.ts +0 -17
  115. package/actions/lib/actions.icon.d.ts +0 -7
  116. package/actions/lib/actions.interface.d.ts +0 -86
  117. package/actions/lib/actions.module.d.ts +0 -11
  118. package/actions/lib/actions.service.d.ts +0 -58
  119. package/actions/lib/components/contextmenu/contextmenu.component.d.ts +0 -16
  120. package/actions/lib/components/contextmenu/contextmenu.model.d.ts +0 -9
  121. package/actions/lib/components/contextmenu/contextmenuTrigger.directive.d.ts +0 -12
  122. package/app-bar/lib/app-bar.component.d.ts +0 -47
  123. package/autocomplete/lib/autocomplete.component.d.ts +0 -74
  124. package/autocomplete/lib/autocomplete.interface.d.ts +0 -4
  125. package/autocomplete/lib/autocomplete.module.d.ts +0 -7
  126. package/breadcrumb/lib/breadcrumb/breadcrumb.component.d.ts +0 -94
  127. package/breadcrumb/lib/models/breadcrumb-item.model.d.ts +0 -14
  128. package/breadcrumb/lib/models/index.d.ts +0 -1
  129. package/clipboard/lib/clipboard.component.d.ts +0 -16
  130. package/common/lib/common.module.d.ts +0 -21
  131. package/common/lib/common.utils.d.ts +0 -2
  132. package/common/lib/components/busy-overlay/busy-overlay.component.d.ts +0 -9
  133. package/common/lib/components/busy-overlay/busy-overlay.interface.d.ts +0 -4
  134. package/common/lib/components/confirm/confirm.component.d.ts +0 -8
  135. package/common/lib/components/confirm/confirm.interface.d.ts +0 -9
  136. package/common/lib/components/confirm/confirm.service.d.ts +0 -9
  137. package/common/lib/components/dialog/dialog.component.d.ts +0 -10
  138. package/common/lib/components/dialog/dialog.options.d.ts +0 -7
  139. package/common/lib/components/halo-focus/halo-focus.component.d.ts +0 -5
  140. package/common/lib/components/index.d.ts +0 -8
  141. package/common/lib/components/retention-badge/retention-badge.component.d.ts +0 -9
  142. package/common/lib/components/scroll-buttons/scroll-buttons.component.d.ts +0 -25
  143. package/common/lib/directives/autofocus-child.directive.d.ts +0 -13
  144. package/common/lib/directives/autofocus-delayed.directive.d.ts +0 -18
  145. package/common/lib/directives/busy-overlay.directive.d.ts +0 -68
  146. package/common/lib/directives/click-double.directive.d.ts +0 -17
  147. package/common/lib/directives/container-size.directive.d.ts +0 -30
  148. package/common/lib/directives/drag-scroll.directive.d.ts +0 -20
  149. package/common/lib/directives/drag-select.directive.d.ts +0 -21
  150. package/common/lib/directives/file-drop-zone/file-drop-zone.directive.d.ts +0 -17
  151. package/common/lib/directives/file-drop-zone/file-drop-zone.interface.d.ts +0 -5
  152. package/common/lib/directives/focus-within.directive.d.ts +0 -36
  153. package/common/lib/directives/index.d.ts +0 -13
  154. package/common/lib/directives/light-dismiss.directive.d.ts +0 -19
  155. package/common/lib/directives/longpress.directive.d.ts +0 -13
  156. package/common/lib/directives/noop-value-accessor.directive.d.ts +0 -10
  157. package/common/lib/directives/scroll-buttons.directive.d.ts +0 -20
  158. package/common/lib/mat-form-field.abstract.d.ts +0 -41
  159. package/common/lib/services/file-drop/file-drop.service.d.ts +0 -7
  160. package/common/lib/services/form-translate/form-translate.service.d.ts +0 -15
  161. package/common/lib/services/index.d.ts +0 -4
  162. package/common/lib/services/layout-settings/layout-settings.interface.d.ts +0 -1
  163. package/common/lib/services/layout-settings/layout-settings.service.d.ts +0 -40
  164. package/common/lib/services/theme/index.d.ts +0 -3
  165. package/common/lib/services/theme/theme.models.d.ts +0 -16
  166. package/common/lib/services/theme/theme.provider.d.ts +0 -4
  167. package/common/lib/services/theme/theme.service.d.ts +0 -16
  168. package/datepicker/lib/calendar/calendar.component.d.ts +0 -70
  169. package/datepicker/lib/date-input/date-input-element/date-input-element.component.d.ts +0 -44
  170. package/datepicker/lib/date-input/date-input-hour-element/date-input-hour-element.component.d.ts +0 -11
  171. package/datepicker/lib/date-input/date-input.component.d.ts +0 -60
  172. package/datepicker/lib/datepicker-calendar/datepicker-calendar-trigger.component.d.ts +0 -7
  173. package/datepicker/lib/datepicker-calendar/datepicker-calendar.component.d.ts +0 -12
  174. package/datepicker/lib/datepicker.component.d.ts +0 -80
  175. package/datepicker/lib/datepicker.interface.d.ts +0 -34
  176. package/datepicker/lib/datepicker.module.d.ts +0 -9
  177. package/datepicker/lib/datepicker.service.d.ts +0 -46
  178. package/datepicker/lib/datepicker.utils.d.ts +0 -23
  179. package/datepicker/lib/time-input/time-input.component.d.ts +0 -32
  180. package/datepicker/lib/time-input/time-input.interface.d.ts +0 -6
  181. package/forms/lib/elements/catalog/catalog.component.d.ts +0 -34
  182. package/forms/lib/elements/data-grid/data-grid/data-grid.component.d.ts +0 -46
  183. package/forms/lib/elements/data-grid/edit-table-data/edit-data.component.d.ts +0 -22
  184. package/forms/lib/elements/data-grid/model/data-grid.interface.d.ts +0 -20
  185. package/forms/lib/elements/datetime/datetime.component.d.ts +0 -41
  186. package/forms/lib/elements/datetime-range/datetime-range.component.d.ts +0 -38
  187. package/forms/lib/elements/i18n-catalog/i18n-catalog.component.d.ts +0 -43
  188. package/forms/lib/elements/index.d.ts +0 -12
  189. package/forms/lib/elements/number/number.component.d.ts +0 -69
  190. package/forms/lib/elements/number-range/number-range.component.d.ts +0 -73
  191. package/forms/lib/elements/organization/organization.component.d.ts +0 -66
  192. package/forms/lib/elements/organization-set/organization-set.component.d.ts +0 -61
  193. package/forms/lib/elements/range-select-date/date-range-picker/date-range-picker.component.d.ts +0 -13
  194. package/forms/lib/elements/range-select-date/range-select-date.component.d.ts +0 -38
  195. package/forms/lib/elements/range-select-date/range-select-date.interface.d.ts +0 -5
  196. package/forms/lib/elements/range-select-filesize/range-select-filesize.component.d.ts +0 -33
  197. package/forms/lib/elements/range-select-filesize/range-select-filesize.interface.d.ts +0 -5
  198. package/forms/lib/elements/string/string.component.d.ts +0 -100
  199. package/forms/lib/forms.module.d.ts +0 -17
  200. package/forms/lib/forms.utils.d.ts +0 -4
  201. package/icons/lib/icon.component.d.ts +0 -24
  202. package/icons/lib/icon.service.d.ts +0 -39
  203. package/icons/lib/icons.d.ts +0 -1
  204. package/icons/lib/object-type-icon/object-type-icon.component.d.ts +0 -11
  205. package/lib/config/halo-focus-defaults/halo-excluded-elements.const.d.ts +0 -26
  206. package/lib/config/halo-focus-defaults/halo-focus-navigation-keys.const.d.ts +0 -25
  207. package/lib/config/halo-focus-defaults/halo-focus-offset.const.d.ts +0 -25
  208. package/lib/config/halo-focus-defaults/halo-focus-styles.const.d.ts +0 -26
  209. package/lib/config/halo-focus-defaults/index.d.ts +0 -4
  210. package/lib/config/index.d.ts +0 -2
  211. package/lib/config/session/index.d.ts +0 -3
  212. package/lib/config/session/session-activity-window-before-end.const.d.ts +0 -43
  213. package/lib/config/session/session-default-duration.const.d.ts +0 -47
  214. package/lib/config/session/session-popup-before-end.const.d.ts +0 -47
  215. package/lib/enums/channel-message.enum.d.ts +0 -4
  216. package/lib/enums/index.d.ts +0 -1
  217. package/lib/models/halo-focus-config/halo-focus-config.model.d.ts +0 -48
  218. package/lib/models/halo-focus-config/index.d.ts +0 -1
  219. package/lib/models/index.d.ts +0 -3
  220. package/lib/models/session/channel-payload.model.d.ts +0 -5
  221. package/lib/models/session/index.d.ts +0 -1
  222. package/lib/models/snack-bar/index.d.ts +0 -3
  223. package/lib/models/snack-bar/snack-bar-data.model.d.ts +0 -6
  224. package/lib/models/snack-bar/snack-bar-level.model.d.ts +0 -1
  225. package/lib/models/snack-bar/snack-bar-options.model.d.ts +0 -9
  226. package/lib/providers/halo-focus/index.d.ts +0 -1
  227. package/lib/providers/halo-focus/provide-halo-focus.d.ts +0 -62
  228. package/lib/providers/index.d.ts +0 -2
  229. package/lib/providers/session/index.d.ts +0 -1
  230. package/lib/providers/session/provide-session.provider.d.ts +0 -43
  231. package/lib/services/halo-focus/halo-focus.service.d.ts +0 -95
  232. package/lib/services/halo-utility/halo-utility.service.d.ts +0 -245
  233. package/lib/services/index.d.ts +0 -4
  234. package/lib/services/session/session.service.d.ts +0 -113
  235. package/lib/services/snack-bar/snack-bar.service.d.ts +0 -22
  236. package/lib/yuuvis-client-framework.module.d.ts +0 -7
  237. package/list/lib/list-item.directive.d.ts +0 -40
  238. package/list/lib/list-tile/list-tile.component.d.ts +0 -14
  239. package/list/lib/list.component.d.ts +0 -320
  240. package/list/lib/list.module.d.ts +0 -9
  241. package/master-details/lib/master-details.component.d.ts +0 -52
  242. package/master-details/lib/master-details.interface.d.ts +0 -7
  243. package/master-details/lib/master-details.module.d.ts +0 -7
  244. package/metadata-form/lib/metadata-form-element-registry.service.d.ts +0 -60
  245. package/metadata-form/lib/metadata-form-field/metadata-form-field.component.d.ts +0 -25
  246. package/metadata-form/lib/metadata-form-field/metadata-form-field.interface.d.ts +0 -19
  247. package/metadata-form/lib/object-metadata-element-error.directive.d.ts +0 -17
  248. package/metadata-form/lib/object-metadata-element-label.directive.d.ts +0 -29
  249. package/metadata-form/lib/object-metadata-element-template.directive.d.ts +0 -45
  250. package/metadata-form-defaults/lib/metadata-default-templates/metadata-default-templates.component.d.ts +0 -5
  251. package/metadata-form-defaults/lib/metadata-form-defaults.module.d.ts +0 -7
  252. package/object-details/lib/object-audit/object-audit.component.d.ts +0 -49
  253. package/object-details/lib/object-details-header/object-details-header.component.d.ts +0 -43
  254. package/object-details/lib/object-details-shell/object-details-shell.component.d.ts +0 -34
  255. package/object-details/lib/object-details-shell/object-details-shell.service.d.ts +0 -14
  256. package/object-details/lib/object-details.component.d.ts +0 -47
  257. package/object-details/lib/object-details.module.d.ts +0 -12
  258. package/object-details/lib/object-metadata/form-section-group.pipe.d.ts +0 -8
  259. package/object-details/lib/object-metadata/object-metadata-section/object-metadata-section.component.d.ts +0 -19
  260. package/object-details/lib/object-metadata/object-metadata-section/object-metadata-section.interface.d.ts +0 -9
  261. package/object-details/lib/object-metadata/object-metadata.component.d.ts +0 -75
  262. package/object-details/lib/object-metadata/object-metadata.interface.d.ts +0 -26
  263. package/object-flavor/lib/abstract-apply-create-flavor/abstract-apply-create-flavor.component.d.ts +0 -11
  264. package/object-flavor/lib/abstract-apply-object-flavor/abstract-apply-object-flavor.component.d.ts +0 -13
  265. package/object-flavor/lib/default-apply-flavor/default-apply-flavor.component.d.ts +0 -19
  266. package/object-flavor/lib/flavor-chip/flavor-chip.component.d.ts +0 -13
  267. package/object-flavor/lib/object-flavor/object-flavor.component.d.ts +0 -23
  268. package/object-flavor/lib/object-flavor-picker/object-flavor-picker.component.d.ts +0 -10
  269. package/object-form/lib/form-scripting.api.interface.d.ts +0 -131
  270. package/object-form/lib/form-scripting.service.d.ts +0 -30
  271. package/object-form/lib/object-form-element/object-form-element.component.d.ts +0 -23
  272. package/object-form/lib/object-form-extension.interface.d.ts +0 -22
  273. package/object-form/lib/object-form-group/object-form-group.component.d.ts +0 -20
  274. package/object-form/lib/object-form-script/form-scripting-element-extension/form-scripting-element-extension.component.d.ts +0 -10
  275. package/object-form/lib/object-form-script/object-form-script.service.d.ts +0 -45
  276. package/object-form/lib/object-form-script/object-form-scripting-scope.d.ts +0 -50
  277. package/object-form/lib/object-form.component.d.ts +0 -61
  278. package/object-form/lib/object-form.interface.d.ts +0 -69
  279. package/object-form/lib/object-form.module.d.ts +0 -7
  280. package/object-form/lib/object-form.service.d.ts +0 -41
  281. package/object-form/lib/object-form.utils.d.ts +0 -20
  282. package/object-form/lib/object-form.validation.d.ts +0 -21
  283. package/object-preview/lib/components/index.d.ts +0 -2
  284. package/object-preview/lib/components/object-email-preview/object-email-preview.component.d.ts +0 -16
  285. package/object-preview/lib/components/object-preview/object-preview.component.d.ts +0 -24
  286. package/object-preview/lib/services/object-preview.service.d.ts +0 -40
  287. package/object-relationship/lib/actions/add-relationship/add-relationship.component.d.ts +0 -37
  288. package/object-relationship/lib/actions/relationship-target-search/relationship-target-search.component.d.ts +0 -36
  289. package/object-relationship/lib/node-summary/node-summary.component.d.ts +0 -26
  290. package/object-relationship/lib/object-relationship-graph/object-relationship-graph.component.d.ts +0 -30
  291. package/object-relationship/lib/object-relationship-list/object-relationship-list-item/object-relationship-list-item.component.d.ts +0 -14
  292. package/object-relationship/lib/object-relationship-list/object-relationship-list.component.d.ts +0 -13
  293. package/object-relationship/lib/object-relationship.component.d.ts +0 -28
  294. package/object-relationship/lib/object-relationship.const.d.ts +0 -10
  295. package/object-relationship/lib/object-relationship.interface.d.ts +0 -38
  296. package/object-relationship/lib/object-relationship.module.d.ts +0 -7
  297. package/object-relationship/lib/object-relationship.service.d.ts +0 -26
  298. package/object-summary/lib/multi-object-summary/multi-object-summary.component.d.ts +0 -7
  299. package/object-summary/lib/object-summary/object-summary.component.d.ts +0 -64
  300. package/object-summary/lib/object-summary-data/object-summary-data.component.d.ts +0 -28
  301. package/object-summary/lib/object-summary.module.d.ts +0 -9
  302. package/object-versions/lib/object-versions.component.d.ts +0 -34
  303. package/object-versions/lib/object-versions.module.d.ts +0 -7
  304. package/overflow-hidden/lib/overflow-hidden.component.d.ts +0 -19
  305. package/overflow-hidden/lib/overflow-hidden.module.d.ts +0 -7
  306. package/overflow-menu/lib/overflow-menu.component.d.ts +0 -33
  307. package/overflow-menu/lib/overflow-menu.interface.d.ts +0 -10
  308. package/overflow-menu/lib/overflow-menu.module.d.ts +0 -7
  309. package/pagination/lib/pagination.component.d.ts +0 -21
  310. package/pagination/lib/pagination.interface.d.ts +0 -5
  311. package/popout/lib/fullscreen.directive.d.ts +0 -4
  312. package/popout/lib/popout-trigger/popout-trigger.component.d.ts +0 -13
  313. package/popout/lib/popout.component.d.ts +0 -59
  314. package/popout/lib/popout.interface.d.ts +0 -24
  315. package/popout/lib/popout.module.d.ts +0 -9
  316. package/query-list/lib/query-list.component.d.ts +0 -488
  317. package/query-list/lib/query-list.module.d.ts +0 -7
  318. package/renderer/lib/property-renderer/abstract.renderer.d.ts +0 -14
  319. package/renderer/lib/property-renderer/boolean.renderer.component.d.ts +0 -6
  320. package/renderer/lib/property-renderer/datetime.renderer.d.ts +0 -6
  321. package/renderer/lib/property-renderer/decimal.renderer.component.d.ts +0 -6
  322. package/renderer/lib/property-renderer/filesize.renderer.component.d.ts +0 -7
  323. package/renderer/lib/property-renderer/icon.renderer.component.d.ts +0 -8
  324. package/renderer/lib/property-renderer/index.d.ts +0 -11
  325. package/renderer/lib/property-renderer/integer.renderer.component.d.ts +0 -6
  326. package/renderer/lib/property-renderer/organization.renderer.d.ts +0 -13
  327. package/renderer/lib/property-renderer/string.renderer.component.d.ts +0 -6
  328. package/renderer/lib/property-renderer/table.renderer.component.d.ts +0 -17
  329. package/renderer/lib/property-renderer/unknown.renderer.d.ts +0 -6
  330. package/renderer/lib/renderer.directive.d.ts +0 -13
  331. package/renderer/lib/services/renderer/renderer.interface.d.ts +0 -4
  332. package/renderer/lib/services/renderer/renderer.service.d.ts +0 -35
  333. package/sequence-list/lib/sequence-list.component.d.ts +0 -40
  334. package/sequence-list/lib/sequence-list.interface.d.ts +0 -17
  335. package/simple-search/lib/models/index.d.ts +0 -1
  336. package/simple-search/lib/models/object-type-aggregation.model.d.ts +0 -14
  337. package/simple-search/lib/simple-search/simple-search.component.d.ts +0 -40
  338. package/sort/lib/sort/models/index.d.ts +0 -1
  339. package/sort/lib/sort/models/sort.interface.d.ts +0 -7
  340. package/sort/lib/sort/sort.component.d.ts +0 -25
  341. package/split-view/lib/split-area-cover.directive.d.ts +0 -15
  342. package/split-view/lib/split-area.directive.d.ts +0 -21
  343. package/split-view/lib/split-view.component.d.ts +0 -159
  344. package/split-view/lib/split-view.interface.d.ts +0 -11
  345. package/split-view/lib/split-view.module.d.ts +0 -8
  346. package/tile-list/lib/tile-actions-menu/tile-actions-menu.component.d.ts +0 -11
  347. package/tile-list/lib/tile-config/action-select/action-select.component.d.ts +0 -13
  348. package/tile-list/lib/tile-config/icon-select/icon-select.component.d.ts +0 -11
  349. package/tile-list/lib/tile-config/property-select/property-select.component.d.ts +0 -26
  350. package/tile-list/lib/tile-config/tile-config-tile/tile-config-tile.component.d.ts +0 -20
  351. package/tile-list/lib/tile-config/tile-config-trigger/tile-config-trigger.component.d.ts +0 -17
  352. package/tile-list/lib/tile-config/tile-config.component.d.ts +0 -48
  353. package/tile-list/lib/tile-extension/directive/tile-extension.directive.d.ts +0 -11
  354. package/tile-list/lib/tile-extension/extensions/email.extension.d.ts +0 -10
  355. package/tile-list/lib/tile-extension/tile-extension.service.d.ts +0 -16
  356. package/tile-list/lib/tile-list/tile-list.component.d.ts +0 -637
  357. package/tile-list/lib/tile-list/tile-list.interface.d.ts +0 -18
  358. package/token-search/lib/token-search.component.d.ts +0 -35
  359. package/token-search/lib/token-search.interface.d.ts +0 -27
  360. package/token-search/lib/token-search.module.d.ts +0 -7
  361. package/tree/lib/tree-node/tree-node.component.d.ts +0 -21
  362. package/tree/lib/tree.component.d.ts +0 -53
  363. package/tree/lib/tree.interface.d.ts +0 -11
  364. package/tree/lib/tree.service.d.ts +0 -35
  365. package/upload-progress/lib/upload-progress/upload-progress-overlay/upload-progress-overlay.component.d.ts +0 -12
  366. package/upload-progress/lib/upload-progress/upload-progress.component.d.ts +0 -33
  367. package/upload-progress/lib/upload-progress/upload-progress.module.d.ts +0 -7
  368. package/widget-grid/lib/widget-grid-event.service.d.ts +0 -10
  369. package/widget-grid/lib/widget-grid-registry.service.d.ts +0 -81
  370. package/widget-grid/lib/widget-grid-workspaces/widget-grid-workspaces.component.d.ts +0 -53
  371. package/widget-grid/lib/widget-grid-workspaces/widget-grid-workspaces.interface.d.ts +0 -17
  372. package/widget-grid/lib/widget-grid-workspaces/workspace-edit/workspace-edit.component.d.ts +0 -10
  373. package/widget-grid/lib/widget-grid.component.d.ts +0 -52
  374. package/widget-grid/lib/widget-grid.interface.d.ts +0 -51
  375. package/widget-grid/lib/widget-grid.module.d.ts +0 -8
  376. package/widget-grid/lib/widget-grid.service.d.ts +0 -45
  377. package/widget-grid/lib/widget-grid.utils.d.ts +0 -18
  378. package/widget-grid/lib/widget-picker/widget-picker.component.d.ts +0 -38
  379. package/widget-grid/lib/widgets/noop/noop.component.d.ts +0 -7
@@ -1 +1 @@
1
- {"version":3,"file":"yuuvis-client-framework-actions.mjs","sources":["../../../../../libs/yuuvis/client-framework/actions/src/lib/actions.module.ts","../../../../../libs/yuuvis/client-framework/actions/src/lib/actions.interface.ts","../../../../../libs/yuuvis/client-framework/actions/src/lib/actions.icon.ts","../../../../../libs/yuuvis/client-framework/actions/src/lib/actions/copy-action/copy-action.ts","../../../../../libs/yuuvis/client-framework/actions/src/lib/actions/cut-action/cut-action.ts","../../../../../libs/yuuvis/client-framework/actions/src/lib/actions/delete-action/delete/delete.component.ts","../../../../../libs/yuuvis/client-framework/actions/src/lib/actions/delete-action/delete/delete.component.html","../../../../../libs/yuuvis/client-framework/actions/src/lib/actions/delete-action/delete-action.ts","../../../../../libs/yuuvis/client-framework/actions/src/lib/actions/download-action/download-action.ts","../../../../../libs/yuuvis/client-framework/actions/src/lib/components/contextmenu/contextmenu.component.ts","../../../../../libs/yuuvis/client-framework/actions/src/lib/components/contextmenu/contextmenu.component.html","../../../../../libs/yuuvis/client-framework/actions/src/lib/actions.service.ts","../../../../../libs/yuuvis/client-framework/actions/src/lib/components/contextmenu/contextmenuTrigger.directive.ts","../../../../../libs/yuuvis/client-framework/actions/src/yuuvis-client-framework-actions.ts"],"sourcesContent":["import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TranslateModule } from '@ngx-translate/core';\n\n/**\n * Module for the actions library.\n */\n@NgModule({\n imports: [CommonModule, TranslateModule]\n})\nexport class ActionsModule {}\n","import { DmsObject } from '@yuuvis/client-core';\nimport { Observable } from 'rxjs';\n\nexport type ActionClass = { \n new (...args: any[]): any \n};\n\nexport class AbstractContextAction {\n context?: ActionContext;\n constructor(context?: ActionContext) {\n this.context = context;\n }\n}\n\nexport interface BaseAction {\n /**\n * Equals the selector of the actions selector (will be set by the action service)\n */\n id: string;\n /**\n * label to be displayed inside the action menu\n */\n label: string;\n /**\n * description to be displayed inside the action menu\n */\n description?: string;\n /**\n * @ignore\n */\n icon: string;\n /**\n * actions priority defining the position of the action within the whole list of actions\n */\n priority: number;\n /**\n * group of actions the action should be part of ('common' or 'further')\n */\n group: string;\n /**\n * number of selected items supported by the action\n * (SelectionRange.SINGLE_SELECT, SelectionRange.MULTI_SELECT, SelectionRange.MULTI_SELECT_ONLY )\n */\n range: SelectionRange;\n\n /**\n * Types that are supported by the action\n */\n supports: ActionSupport;\n\n /**\n * Determining whether or not the action is executable for the given selection\n * @param item Current selection\n * @returns true if the action is executable for the current selection, false otherwise\n */\n isExecutable: (items: DmsObject[]) => Observable<boolean>;\n}\n\nexport interface ActionSupport {\n // object types\n types?: string[];\n // object types\n sots?: string[];\n // pattern to match the type name against\n pattern?: string;\n}\n\nexport interface ActionContext {\n /**\n * As actions deal with DmsObjects the subject property is the property that\n * should be used to display the name of the object. This may be used for\n * showing the name of the object in a confirmation/error dialog or similar.\n */\n subjectProperty?: string;\n /**\n * The appId is the id of the application that the action is executed in.\n */\n appId?: string;\n}\n\nexport interface Action extends BaseAction {\n run: (items: DmsObject[]) => Observable<boolean>;\n}\n\nexport interface ActionOptions {\n context?: ActionContext;\n exclude?: string[] | RegExp;\n}\n\nexport enum SelectionRange {\n SINGLE_SELECT,\n MULTI_SELECT,\n MULTI_SELECT_ONLY,\n ANY\n}\n\nexport const BASE_ACTION = {\n copy: 'yuv.base.copy',\n cut: 'yuv.base.cut',\n download: 'yuv.base.download',\n delete: 'yuv.base.delete'\n};\n","export const ACTION_ICON = {\n download: 'download',\n delete: 'delete',\n copy: 'content_copy',\n cut: 'content_cut',\n manageFlavor: 'cards_star'\n}","import { inject } from '@angular/core';\nimport { ClipboardService, DmsObject, TranslateService } from '@yuuvis/client-core';\nimport { Observable, of } from 'rxjs';\nimport { ACTION_ICON } from '../../actions.icon';\nimport { AbstractContextAction, Action, ActionSupport, BASE_ACTION, SelectionRange } from '../../actions.interface';\n\nexport class CopyAction extends AbstractContextAction implements Action {\n private clipboardService = inject(ClipboardService);\n private translate = inject(TranslateService);\n\n id = BASE_ACTION.copy;\n label = this.translate.instant('yuv.action-menu.action.copy.dms.object.label');\n description = this.translate.instant('yuv.action-menu.action.copy.dms.object.description');\n priority = 8;\n icon = ACTION_ICON.copy;\n group = 'common';\n range = SelectionRange.MULTI_SELECT;\n supports: ActionSupport = {\n pattern: '*'\n };\n\n isExecutable(items: DmsObject[]) {\n const notAllowed = items.some((item) => !item.permissions?.writeIndexData);\n return of(items.length > 0 && !notAllowed);\n }\n\n run(items: DmsObject[]): Observable<boolean> {\n this.clipboardService.addObjects(items, 'copy', this.context?.appId);\n return of(true);\n }\n}\n","import { inject } from '@angular/core';\nimport { ClipboardService, DmsObject, TranslateService } from '@yuuvis/client-core';\nimport { Observable, of } from 'rxjs';\nimport { ACTION_ICON } from '../../actions.icon';\nimport { AbstractContextAction, Action, ActionSupport, BASE_ACTION, SelectionRange } from '../../actions.interface';\n\nexport class CutAction extends AbstractContextAction implements Action {\n private clipboardService = inject(ClipboardService);\n private translate = inject(TranslateService);\n\n id = BASE_ACTION.cut;\n label = this.translate.instant('yuv.action-menu.action.cut.dms.object.label');\n description = this.translate.instant('yuv.action-menu.action.cut.dms.object.description');\n priority = 8;\n icon = ACTION_ICON.cut;\n group = 'common';\n range = SelectionRange.MULTI_SELECT;\n supports: ActionSupport = {\n pattern: '*'\n };\n\n isExecutable(items: DmsObject[]) {\n return of(items.length > 0 && items.every((item) => item.permissions?.writeContent && item.permissions?.writeIndexData && item.permissions?.deleteObject));\n }\n\n run(items: DmsObject[]): Observable<boolean> {\n this.clipboardService.addObjects(items, 'cut', this.context?.appId);\n return of(true);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, inject, signal } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\nimport { DmsObject, DmsService, ObjectDeleteError, ObjectDeleteResult, TranslateModule, TranslateService } from '@yuuvis/client-core';\nimport { ActionContext } from '../../../actions.interface';\nimport { DialogComponent } from '@yuuvis/client-framework/common';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatProgressBar } from '@angular/material/progress-bar';\nimport { YmtButtonDirective } from '@yuuvis/material';\n\n/**\n * @ignore\n */\n\n@Component({\n selector: 'yuv-delete',\n standalone: true,\n imports: [CommonModule, TranslateModule, MatButtonModule, DialogComponent, MatProgressBar, YmtButtonDirective],\n templateUrl: './delete.component.html',\n styleUrls: ['./delete.component.scss']\n})\nexport class DeleteComponent {\n readonly #dmsService = inject(DmsService);\n private readonly translate = inject(TranslateService);\n #dialogData = inject<any>(MAT_DIALOG_DATA);\n readonly #dialogRef = inject(MatDialogRef<DeleteComponent>);\n\n errors = signal<\n {\n status: number;\n subject: string;\n message: string;\n }[]\n >([]);\n\n deleting = signal(false);\n deleteItems: DmsObject[] = this.#dialogData.items;\n context: ActionContext = this.#dialogData.context;\n\n run() {\n this.errors.set([]);\n if (this.deleteItems.length) {\n this.deleting.set(true);\n this.#dmsService\n .deleteDmsObjects(\n this.deleteItems.map((o) => ({\n id: o.id,\n subject: o.data[this.context.subjectProperty || o.id] as string\n }))\n )\n .subscribe({\n next: (res: ObjectDeleteResult[]) => {\n this.errors.set(\n res\n .filter((r) => !!r._error)\n .map((r: any) => ({\n status: r._error.status,\n subject: this.context?.subjectProperty ? r.properties[this.context.subjectProperty].value : r.id,\n message: this.#getErrorMessage(r._error)\n }))\n );\n !this.errors().length && this.#dialogRef.close();\n },\n error: (err: ObjectDeleteError) => {\n this.deleting.set(false);\n },\n complete: () => this.deleting.set(false)\n });\n }\n }\n\n #getErrorMessage(error: ObjectDeleteError): string {\n switch (error.status) {\n case 403:\n return this.translate.instant('yuv.action-menu.action.delete.error.403');\n case 404:\n return this.translate.instant('yuv.action-menu.action.delete.error.404');\n default:\n return this.translate.instant('yuv.action-menu.action.delete.error.default');\n }\n }\n\n cancel() {\n this.#dialogRef.close();\n }\n}\n","<yuv-dialog [headertitle]=\"'yuv.action-menu.action.delete.dms.object.label' | translate\">\n <main class=\"yuv-delete\" [ngClass]=\"{ deleting: deleting() }\">\n <mat-progress-bar mode=\"indeterminate\" class=\"progress-bar\"></mat-progress-bar>\n\n @if (errors().length) {\n <ul class=\"errors\">\n @for (e of errors(); track $index) {\n <li class=\"error\">\n <span class=\"subject\">{{ e.subject }}</span>\n <span class=\"message\">{{ e.message }}</span>\n </li>\n }\n </ul>\n } @else {\n <p>{{ 'yuv.action-menu.action.delete.dms.object.confirm.message' | translate }}</p>\n }\n </main>\n <footer class=\"form-buttons\">\n <button ymtButton=\"secondary\" [disabled]=\"deleting()\" (click)=\"cancel()\">\n {{ 'yuv.action-menu.action.delete.dms.object.confirm.cancel' | translate }}\n </button>\n\n <button ymtButton=\"primary\" [disabled]=\"deleting() || !!errors().length\" (click)=\"run()\">\n {{ 'yuv.action-menu.action.delete.dms.object.confirm.ok' | translate }}\n </button>\n </footer>\n</yuv-dialog>\n","import { inject } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { DmsObject, RetentionService, TranslateService } from '@yuuvis/client-core';\nimport { Observable, of } from 'rxjs';\nimport { ACTION_ICON } from '../../actions.icon';\nimport { AbstractContextAction, Action, ActionSupport, BASE_ACTION, SelectionRange } from '../../actions.interface';\nimport { DeleteComponent } from './delete/delete.component';\n\nexport class DeleteAction extends AbstractContextAction implements Action {\n private translate = inject(TranslateService);\n #dialog = inject(MatDialog);\n private retention = inject(RetentionService);\n\n id = BASE_ACTION.delete;\n label = this.translate.instant('yuv.action-menu.action.delete.dms.object.label');\n description = this.translate.instant('yuv.action-menu.action.delete.dms.object.description');\n priority = 8;\n icon = ACTION_ICON.delete;\n group = 'common';\n range = SelectionRange.MULTI_SELECT;\n supports: ActionSupport = {\n pattern: '*'\n };\n\n isExecutable(items: DmsObject[]) {\n const e = items[0];\n return of(e && !!e.permissions && e.permissions.deleteObject && !this.retention.getRetentionState(e).underRetention);\n }\n\n run(items: DmsObject[]): Observable<boolean> {\n this.#dialog.open(DeleteComponent, {\n data: {\n items,\n context: this.context\n }\n });\n return of(true);\n }\n}\n","import { inject } from '@angular/core';\nimport { DmsObject, DmsService, SystemType, TranslateService } from '@yuuvis/client-core';\nimport { Observable, of } from 'rxjs';\nimport { ACTION_ICON } from '../../actions.icon';\nimport { AbstractContextAction, Action, ActionSupport, BASE_ACTION, SelectionRange } from '../../actions.interface';\n\nexport class DownloadAction extends AbstractContextAction implements Action {\n private translate = inject(TranslateService);\n private dmsService = inject(DmsService);\n\n id = BASE_ACTION.download;\n label = this.translate.instant('yuv.action-menu.action.download.dms.object.content.label');\n description = this.translate.instant('yuv.action-menu.action.download.dms.object.content.description');\n priority = 2;\n icon = ACTION_ICON.download;\n group = 'common';\n range = SelectionRange.MULTI_SELECT;\n supports: ActionSupport = {\n types: [SystemType.DOCUMENT]\n };\n\n isExecutable(selection: DmsObject[]) {\n const noContentMatch = (Array.isArray(selection) ? selection : [selection]).find((e) => !e.content);\n if (selection.length < 1) return of(false);\n return of(!noContentMatch);\n }\n\n run(selection: DmsObject[]): Observable<boolean> {\n this.dmsService.downloadContent(Array.isArray(selection) ? selection : [selection]);\n return of(true);\n }\n}\n","import { A11yModule } from '@angular/cdk/a11y';\nimport { CommonModule } from '@angular/common';\n\nimport { afterRenderEffect, Component, computed, inject, input, output, untracked, viewChild, viewChildren } from '@angular/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { YuvListModule } from '@yuuvis/client-framework/list';\nimport { CdkMenu, CdkMenuItem } from '@angular/cdk/menu';\n\nimport { MatTooltip } from '@angular/material/tooltip';\nimport { ContextMenuAction, ContextMenuItemSelectEvent } from './contextmenu.model';\nimport { TranslateService } from '@ngx-translate/core';\n\n@Component({\n selector: 'yuv-contextmenu',\n standalone: true,\n imports: [CommonModule, MatIconModule, YuvListModule, A11yModule, CdkMenu, CdkMenuItem, MatTooltip],\n providers: [MatTooltip],\n templateUrl: './contextmenu.component.html',\n styleUrl: './contextmenu.component.scss'\n})\nexport class ContextmenuComponent {\n actions = input<ContextMenuAction[]>([]);\n selection = input<unknown[]>([]);\n itemSelect = output<ContextMenuItemSelectEvent>();\n private translate = inject(TranslateService);\n\n\n cdkMenu = viewChild(CdkMenu);\n menuItems = viewChildren<CdkMenuItem | null>(CdkMenuItem);\n sortedActions = computed(() =>\n [...this.actions()].sort((a, b) => a.label.localeCompare(b.label, this.translate.currentLang))\n );\n\n constructor() {\n afterRenderEffect(() => {\n //Focus First Item when @for is finished\n const firstElement = this.menuItems()[0];\n\n untracked(() => {\n //firstElement?.nativeElement.focus();\n this.cdkMenu()?.focusFirstItem('program');\n });\n });\n }\n\n onItemTrigger({ action }: ContextMenuItemSelectEvent) {\n this.itemSelect.emit({ action });\n }\n}\n","<div class=\"context-menu\" cdkMenu>\n @for (a of sortedActions(); track a.id;) {\n <div\n class=\"context-menu__item\"\n [ngClass]=\"{'context-menu__item--disabled' : a.disabled}\"\n cdkMenuItem\n [cdkMenuItemDisabled]=\"a.disabled\"\n [matTooltip]=\"a.description\"\n [attr.aria-label]=\"'Execute Action: ' + a.label\"\n (cdkMenuItemTriggered)=\"onItemTrigger({action: a})\"\n >\n <mat-icon class=\"context-menu__item-icon ymt-icon--size-s\">{{ a.icon }}</mat-icon>\n {{ a.label }}\n </div>\n }\n</div>\n","import { Injectable, Injector, Signal, inject, runInInjectionContext } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { MatIconRegistry } from '@angular/material/icon';\nimport { DmsObject, Utils } from '@yuuvis/client-core';\nimport { Observable, forkJoin, map } from 'rxjs';\nimport { Action, ActionClass, ActionContext, ActionOptions, BASE_ACTION } from './actions.interface';\nimport { CopyAction } from './actions/copy-action/copy-action';\nimport { CutAction } from './actions/cut-action/cut-action';\nimport { DeleteAction } from './actions/delete-action/delete-action';\nimport { DownloadAction } from './actions/download-action/download-action';\nimport { ContextmenuComponent } from './components/contextmenu/contextmenu.component';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ActionsService {\n private readonly injector = inject(Injector);\n private dialog = inject(MatDialog);\n readonly iconRegistry = inject(MatIconRegistry);\n\n private _registeredActions: Record<string, ActionClass> = {};\n\n /**\n * Registers actions that can be used in the application.\n * @param a Array of actions to register, each action must have an id and a\n * class that extends ActionClass\n */\n registerActions(a: { id: string; action: ActionClass }[]) {\n Array.isArray(a) &&\n a.forEach((a) => {\n this._registeredActions[a.id] = a.action;\n });\n }\n\n /**\n * Conceals actions that are no longer needed or should not be available.\n * This will remove the actions from the registered actions list.\n * @param actionIDs Array of action IDs to conceal\n */\n concealActions(actionIDs: string[]) {\n Array.isArray(actionIDs) && actionIDs.forEach((id) => delete this._registeredActions[id]);\n }\n\n /**\n * Returns all actions that are executable for the given selection.\n * @param selection Array of DmsObjects to check for executable actions\n * @param options options to filter the actions\n * @returns Observable of actions that are executable for the given selection\n */\n getActions(selection: DmsObject[], options?: ActionOptions): Observable<Action[]> {\n // TODO: check if selection is empty or if nessasery at all\n // if (!selection || selection.length === 0) return of([]);\n const s: Observable<{ action: Action; executable: boolean }>[] = this.getAvailableActions(options?.context)\n .filter((ac) =>\n options?.exclude\n ? Array.isArray(options.exclude)\n ? !options.exclude.includes(ac.id)\n : options.exclude instanceof RegExp\n ? !options.exclude.test(ac.id)\n : true\n : true\n )\n .map((action: Action) =>\n action.isExecutable(selection).pipe(\n map((executable: boolean) => ({\n action,\n executable\n }))\n )\n );\n\n return forkJoin(s).pipe(map((res: { action: Action; executable: boolean }[]) => res.filter((r) => r.executable).map((r) => r.action)));\n }\n\n /**\n * Get all available actions. This includes the default actions and all registered actions but\n * without checking if they are executable.\n * @param context Context passed to the actions\n * @returns Array of available actions\n */\n getAvailableActions(context?: ActionContext): Action[] {\n let a: Action[] = [];\n\n runInInjectionContext(this.injector, () => {\n a = [...Object.values(this._registeredActions).map((ac: ActionClass) => new ac(context))];\n });\n return a;\n }\n\n getActionsForType(objectTypeId: string, context?: ActionContext): Action[] {\n return this.getAvailableActions(context).filter((a: Action) => this._actionsSupportsType(a, objectTypeId));\n }\n\n getActionById(id: string, context?: ActionContext): Action | undefined {\n return this.getAvailableActions(context).find((a) => a.id === id);\n }\n\n getActionsById(ids: string[], context?: ActionContext): Action[] {\n return this.getAvailableActions(context).filter((a) => ids.includes(a.id));\n }\n\n openContextMenu(actions: Signal<Action[]>, callback: (action: Action) => void, overlayOrigin: { x: number; y: number }) {\n if (actions().length)\n this.dialog.open(ContextmenuComponent, {\n data: { actions, callback },\n panelClass: 'context-menu-dialog'\n // position: { top: `${overlayOrigin.y}`, left: `${overlayOrigin.x}` }\n });\n\n setTimeout(() => {\n const dialog = document.querySelector('.context-menu-dialog') as HTMLElement;\n if (dialog) {\n const dialogWidth = dialog.offsetWidth;\n const dialogHeight = dialog.offsetHeight;\n const screenW = window.innerWidth;\n const screenH = window.innerHeight;\n\n let left = overlayOrigin.x;\n let top = overlayOrigin.y;\n if (left + dialogWidth > screenW) {\n left = screenW - dialogWidth - 10;\n }\n if (top + dialogHeight > screenH) {\n top = screenH - dialogHeight - 10;\n }\n\n dialog.style.position = 'fixed';\n dialog.style.left = `${left}px`;\n dialog.style.top = `${top}px`;\n }\n });\n }\n\n private _actionsSupportsType(action: Action, objectTypeId: string): boolean {\n const matchesTypes = action.supports.types ? action.supports.types.includes(objectTypeId) : false;\n const matchesSOTs = action.supports.sots ? action.supports.sots.includes(objectTypeId) : false;\n const matchesPattern = action.supports.pattern ? Utils.patternToRegExp(action.supports.pattern).test(objectTypeId) : false;\n return matchesTypes || matchesSOTs || matchesPattern;\n }\n\n /**\n * Registers a set of default actions that are commonly used in the application. \n * These actions include delete, download, copy and cut. This method can be called \n * during the initialization of the application to ensure that these actions \n * are available for use.\n */\n registerDefaultActions() {\n this.registerActions([\n { id: BASE_ACTION.delete, action: DeleteAction },\n { id: BASE_ACTION.download, action: DownloadAction },\n { id: BASE_ACTION.copy, action: CopyAction },\n { id: BASE_ACTION.cut, action: CutAction }\n ]);\n }\n}\n","import { CdkContextMenuTrigger, MENU_STACK, MENU_TRIGGER, MenuStack } from '@angular/cdk/menu';\nimport { Directive, effect, Input, input, signal, TemplateRef, untracked } from '@angular/core';\n\n@Directive({\n selector: '[yuvContextMenuTrigger]',\n exportAs: 'yuvContextMenuTrigger',\n standalone: true,\n providers: [\n { provide: MENU_TRIGGER, useExisting: YuvContextMenuTriggerDirective },\n { provide: MENU_STACK, useClass: MenuStack }\n ]\n})\nexport class YuvContextMenuTriggerDirective extends CdkContextMenuTrigger {\n @Input({ alias: 'yuvContextMenuTrigger' })\n override menuTemplateRef!: TemplateRef<unknown>;\n\n triggerWhen = input<boolean | null>(null, { alias: 'yuvContextMenuTriggerWhen' });\n \n #contextMenuEvent = signal<MouseEvent | null>(null);\n\n constructor() {\n super();\n\n effect(() => {\n const event = this.#contextMenuEvent();\n const triggerWhen = this.triggerWhen();\n untracked(() => {\n if ((event && triggerWhen) || (event && triggerWhen === null)) {\n super._openOnContextMenu(event);\n }\n });\n });\n }\n\n override _openOnContextMenu(event: MouseEvent) {\n this.#contextMenuEvent.set(event);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["TranslateModule","TranslateService","i2"],"mappings":"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"}
1
+ {"version":3,"file":"yuuvis-client-framework-actions.mjs","sources":["../../../../../libs/yuuvis/client-framework/actions/src/lib/actions.module.ts","../../../../../libs/yuuvis/client-framework/actions/src/lib/actions.interface.ts","../../../../../libs/yuuvis/client-framework/actions/src/lib/actions.icon.ts","../../../../../libs/yuuvis/client-framework/actions/src/lib/actions/copy-action/copy-action.ts","../../../../../libs/yuuvis/client-framework/actions/src/lib/actions/cut-action/cut-action.ts","../../../../../libs/yuuvis/client-framework/actions/src/lib/actions/delete-action/delete/delete.component.ts","../../../../../libs/yuuvis/client-framework/actions/src/lib/actions/delete-action/delete/delete.component.html","../../../../../libs/yuuvis/client-framework/actions/src/lib/actions/delete-action/delete-action.ts","../../../../../libs/yuuvis/client-framework/actions/src/lib/actions/download-action/download-action.ts","../../../../../libs/yuuvis/client-framework/actions/src/lib/components/contextmenu/contextmenu.component.ts","../../../../../libs/yuuvis/client-framework/actions/src/lib/components/contextmenu/contextmenu.component.html","../../../../../libs/yuuvis/client-framework/actions/src/lib/actions.service.ts","../../../../../libs/yuuvis/client-framework/actions/src/lib/components/contextmenu/contextmenuTrigger.directive.ts","../../../../../libs/yuuvis/client-framework/actions/src/yuuvis-client-framework-actions.ts"],"sourcesContent":["import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TranslateModule } from '@ngx-translate/core';\n\n/**\n * Module for the actions library.\n */\n@NgModule({\n imports: [CommonModule, TranslateModule]\n})\nexport class ActionsModule {}\n","import { DmsObject } from '@yuuvis/client-core';\nimport { Observable } from 'rxjs';\n\nexport type ActionClass = { \n new (...args: any[]): any \n};\n\nexport class AbstractContextAction {\n context?: ActionContext;\n constructor(context?: ActionContext) {\n this.context = context;\n }\n}\n\nexport interface BaseAction {\n /**\n * Equals the selector of the actions selector (will be set by the action service)\n */\n id: string;\n /**\n * label to be displayed inside the action menu\n */\n label: string;\n /**\n * description to be displayed inside the action menu\n */\n description?: string;\n /**\n * @ignore\n */\n icon: string;\n /**\n * actions priority defining the position of the action within the whole list of actions\n */\n priority: number;\n /**\n * group of actions the action should be part of ('common' or 'further')\n */\n group: string;\n /**\n * number of selected items supported by the action\n * (SelectionRange.SINGLE_SELECT, SelectionRange.MULTI_SELECT, SelectionRange.MULTI_SELECT_ONLY )\n */\n range: SelectionRange;\n\n /**\n * Types that are supported by the action\n */\n supports: ActionSupport;\n\n /**\n * Determining whether or not the action is executable for the given selection\n * @param item Current selection\n * @returns true if the action is executable for the current selection, false otherwise\n */\n isExecutable: (items: DmsObject[]) => Observable<boolean>;\n}\n\nexport interface ActionSupport {\n // object types\n types?: string[];\n // object types\n sots?: string[];\n // pattern to match the type name against\n pattern?: string;\n}\n\nexport interface ActionContext {\n /**\n * As actions deal with DmsObjects the subject property is the property that\n * should be used to display the name of the object. This may be used for\n * showing the name of the object in a confirmation/error dialog or similar.\n */\n subjectProperty?: string;\n /**\n * The appId is the id of the application that the action is executed in.\n */\n appId?: string;\n}\n\nexport interface Action extends BaseAction {\n run: (items: DmsObject[]) => Observable<boolean>;\n}\n\nexport interface ActionOptions {\n context?: ActionContext;\n exclude?: string[] | RegExp;\n}\n\nexport enum SelectionRange {\n SINGLE_SELECT,\n MULTI_SELECT,\n MULTI_SELECT_ONLY,\n ANY\n}\n\nexport const BASE_ACTION = {\n copy: 'yuv.base.copy',\n cut: 'yuv.base.cut',\n download: 'yuv.base.download',\n delete: 'yuv.base.delete'\n};\n","export const ACTION_ICON = {\n download: 'download',\n delete: 'delete',\n copy: 'content_copy',\n cut: 'content_cut',\n manageFlavor: 'cards_star'\n}","import { inject } from '@angular/core';\nimport { ClipboardService, DmsObject, TranslateService } from '@yuuvis/client-core';\nimport { Observable, of } from 'rxjs';\nimport { ACTION_ICON } from '../../actions.icon';\nimport { AbstractContextAction, Action, ActionSupport, BASE_ACTION, SelectionRange } from '../../actions.interface';\n\nexport class CopyAction extends AbstractContextAction implements Action {\n private clipboardService = inject(ClipboardService);\n private translate = inject(TranslateService);\n\n id = BASE_ACTION.copy;\n label = this.translate.instant('yuv.action-menu.action.copy.dms.object.label');\n description = this.translate.instant('yuv.action-menu.action.copy.dms.object.description');\n priority = 8;\n icon = ACTION_ICON.copy;\n group = 'common';\n range = SelectionRange.MULTI_SELECT;\n supports: ActionSupport = {\n pattern: '*'\n };\n\n isExecutable(items: DmsObject[]) {\n const notAllowed = items.some((item) => !item.permissions?.writeIndexData);\n return of(items.length > 0 && !notAllowed);\n }\n\n run(items: DmsObject[]): Observable<boolean> {\n this.clipboardService.addObjects(items, 'copy', this.context?.appId);\n return of(true);\n }\n}\n","import { inject } from '@angular/core';\nimport { ClipboardService, DmsObject, TranslateService } from '@yuuvis/client-core';\nimport { Observable, of } from 'rxjs';\nimport { ACTION_ICON } from '../../actions.icon';\nimport { AbstractContextAction, Action, ActionSupport, BASE_ACTION, SelectionRange } from '../../actions.interface';\n\nexport class CutAction extends AbstractContextAction implements Action {\n private clipboardService = inject(ClipboardService);\n private translate = inject(TranslateService);\n\n id = BASE_ACTION.cut;\n label = this.translate.instant('yuv.action-menu.action.cut.dms.object.label');\n description = this.translate.instant('yuv.action-menu.action.cut.dms.object.description');\n priority = 8;\n icon = ACTION_ICON.cut;\n group = 'common';\n range = SelectionRange.MULTI_SELECT;\n supports: ActionSupport = {\n pattern: '*'\n };\n\n isExecutable(items: DmsObject[]) {\n return of(items.length > 0 && items.every((item) => item.permissions?.writeContent && item.permissions?.writeIndexData && item.permissions?.deleteObject));\n }\n\n run(items: DmsObject[]): Observable<boolean> {\n this.clipboardService.addObjects(items, 'cut', this.context?.appId);\n return of(true);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, inject, signal } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\nimport { MatProgressBar } from '@angular/material/progress-bar';\nimport {\n DmsObject,\n DmsService,\n ObjectDeleteError,\n ObjectDeleteResult,\n TranslatePipe,\n TranslateService\n} from '@yuuvis/client-core';\nimport { DialogComponent } from '@yuuvis/client-framework/common';\nimport { YmtButtonDirective } from '@yuuvis/material';\nimport { ActionContext } from '../../../actions.interface';\n\n/**\n * @ignore\n */\n\n@Component({\n selector: 'yuv-delete',\n standalone: true,\n imports: [CommonModule, TranslatePipe, MatButtonModule, DialogComponent, MatProgressBar, YmtButtonDirective],\n templateUrl: './delete.component.html',\n styleUrls: ['./delete.component.scss']\n})\nexport class DeleteComponent {\n readonly #dmsService = inject(DmsService);\n private readonly translate = inject(TranslateService);\n #dialogData = inject<any>(MAT_DIALOG_DATA);\n readonly #dialogRef = inject(MatDialogRef<DeleteComponent>);\n\n errors = signal<\n {\n status: number;\n subject: string;\n message: string;\n }[]\n >([]);\n\n deleting = signal(false);\n deleteItems: DmsObject[] = this.#dialogData.items;\n context: ActionContext = this.#dialogData.context;\n\n run() {\n this.errors.set([]);\n if (this.deleteItems.length) {\n this.deleting.set(true);\n this.#dmsService\n .deleteDmsObjects(\n this.deleteItems.map((o) => ({\n id: o.id,\n subject: o.data[this.context.subjectProperty || o.id] as string\n }))\n )\n .subscribe({\n next: (res: ObjectDeleteResult[]) => {\n this.errors.set(\n res\n .filter((r) => !!r._error)\n .map((r: any) => ({\n status: r._error.status,\n subject: this.context?.subjectProperty ? r.properties[this.context.subjectProperty].value : r.id,\n message: this.#getErrorMessage(r._error)\n }))\n );\n !this.errors().length && this.#dialogRef.close();\n },\n error: (err: ObjectDeleteError) => {\n this.deleting.set(false);\n },\n complete: () => this.deleting.set(false)\n });\n }\n }\n\n #getErrorMessage(error: ObjectDeleteError): string {\n switch (error.status) {\n case 403:\n return this.translate.instant('yuv.action-menu.action.delete.error.403');\n case 404:\n return this.translate.instant('yuv.action-menu.action.delete.error.404');\n default:\n return this.translate.instant('yuv.action-menu.action.delete.error.default');\n }\n }\n\n cancel() {\n this.#dialogRef.close();\n }\n}\n","<yuv-dialog [headertitle]=\"'yuv.action-menu.action.delete.dms.object.label' | translate\">\n <main class=\"yuv-delete\" [ngClass]=\"{ deleting: deleting() }\">\n <mat-progress-bar mode=\"indeterminate\" class=\"progress-bar\"></mat-progress-bar>\n\n @if (errors().length) {\n <ul class=\"errors\">\n @for (e of errors(); track $index) {\n <li class=\"error\">\n <span class=\"subject\">{{ e.subject }}</span>\n <span class=\"message\">{{ e.message }}</span>\n </li>\n }\n </ul>\n } @else {\n <p>{{ 'yuv.action-menu.action.delete.dms.object.confirm.message' | translate }}</p>\n }\n </main>\n <footer class=\"form-buttons\">\n <button ymtButton=\"secondary\" [disabled]=\"deleting()\" (click)=\"cancel()\">\n {{ 'yuv.action-menu.action.delete.dms.object.confirm.cancel' | translate }}\n </button>\n\n <button ymtButton=\"primary\" [disabled]=\"deleting() || !!errors().length\" (click)=\"run()\">\n {{ 'yuv.action-menu.action.delete.dms.object.confirm.ok' | translate }}\n </button>\n </footer>\n</yuv-dialog>\n","import { inject } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { DmsObject, RetentionService, TranslateService } from '@yuuvis/client-core';\nimport { Observable, of } from 'rxjs';\nimport { ACTION_ICON } from '../../actions.icon';\nimport { AbstractContextAction, Action, ActionSupport, BASE_ACTION, SelectionRange } from '../../actions.interface';\nimport { DeleteComponent } from './delete/delete.component';\n\nexport class DeleteAction extends AbstractContextAction implements Action {\n private translate = inject(TranslateService);\n #dialog = inject(MatDialog);\n private retention = inject(RetentionService);\n\n id = BASE_ACTION.delete;\n label = this.translate.instant('yuv.action-menu.action.delete.dms.object.label');\n description = this.translate.instant('yuv.action-menu.action.delete.dms.object.description');\n priority = 8;\n icon = ACTION_ICON.delete;\n group = 'common';\n range = SelectionRange.MULTI_SELECT;\n supports: ActionSupport = {\n pattern: '*'\n };\n\n isExecutable(items: DmsObject[]) {\n const e = items[0];\n return of(e && !!e.permissions && e.permissions.deleteObject && !this.retention.getRetentionState(e).underRetention);\n }\n\n run(items: DmsObject[]): Observable<boolean> {\n this.#dialog.open(DeleteComponent, {\n data: {\n items,\n context: this.context\n }\n });\n return of(true);\n }\n}\n","import { inject } from '@angular/core';\nimport { DmsObject, DmsService, SystemType, TranslateService } from '@yuuvis/client-core';\nimport { Observable, of } from 'rxjs';\nimport { ACTION_ICON } from '../../actions.icon';\nimport { AbstractContextAction, Action, ActionSupport, BASE_ACTION, SelectionRange } from '../../actions.interface';\n\nexport class DownloadAction extends AbstractContextAction implements Action {\n private translate = inject(TranslateService);\n private dmsService = inject(DmsService);\n\n id = BASE_ACTION.download;\n label = this.translate.instant('yuv.action-menu.action.download.dms.object.content.label');\n description = this.translate.instant('yuv.action-menu.action.download.dms.object.content.description');\n priority = 2;\n icon = ACTION_ICON.download;\n group = 'common';\n range = SelectionRange.MULTI_SELECT;\n supports: ActionSupport = {\n types: [SystemType.DOCUMENT]\n };\n\n isExecutable(selection: DmsObject[]) {\n const noContentMatch = (Array.isArray(selection) ? selection : [selection]).find((e) => !e.content);\n if (selection.length < 1) return of(false);\n return of(!noContentMatch);\n }\n\n run(selection: DmsObject[]): Observable<boolean> {\n this.dmsService.downloadContent(Array.isArray(selection) ? selection : [selection]);\n return of(true);\n }\n}\n","import { A11yModule } from '@angular/cdk/a11y';\nimport { CommonModule } from '@angular/common';\n\nimport { afterRenderEffect, Component, computed, inject, input, output, untracked, viewChild, viewChildren } from '@angular/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { YuvListModule } from '@yuuvis/client-framework/list';\nimport { CdkMenu, CdkMenuItem } from '@angular/cdk/menu';\n\nimport { MatTooltip } from '@angular/material/tooltip';\nimport { ContextMenuAction, ContextMenuItemSelectEvent } from './contextmenu.model';\nimport { TranslateService } from '@ngx-translate/core';\n\n@Component({\n selector: 'yuv-contextmenu',\n standalone: true,\n imports: [CommonModule, MatIconModule, YuvListModule, A11yModule, CdkMenu, CdkMenuItem, MatTooltip],\n providers: [MatTooltip],\n templateUrl: './contextmenu.component.html',\n styleUrl: './contextmenu.component.scss'\n})\nexport class ContextmenuComponent {\n actions = input<ContextMenuAction[]>([]);\n selection = input<unknown[]>([]);\n itemSelect = output<ContextMenuItemSelectEvent>();\n private translate = inject(TranslateService);\n\n\n cdkMenu = viewChild(CdkMenu);\n menuItems = viewChildren<CdkMenuItem | null>(CdkMenuItem);\n sortedActions = computed(() =>\n [...this.actions()].sort((a, b) => a.label.localeCompare(b.label, this.translate.getCurrentLang()))\n );\n\n constructor() {\n afterRenderEffect(() => {\n //Focus First Item when @for is finished\n const firstElement = this.menuItems()[0];\n\n untracked(() => {\n //firstElement?.nativeElement.focus();\n this.cdkMenu()?.focusFirstItem('program');\n });\n });\n }\n\n onItemTrigger({ action }: ContextMenuItemSelectEvent) {\n this.itemSelect.emit({ action });\n }\n}\n","<div class=\"context-menu\" cdkMenu>\n @for (a of sortedActions(); track a.id;) {\n <div\n class=\"context-menu__item\"\n [ngClass]=\"{'context-menu__item--disabled' : a.disabled}\"\n cdkMenuItem\n [cdkMenuItemDisabled]=\"a.disabled\"\n [matTooltip]=\"a.description\"\n [attr.aria-label]=\"'Execute Action: ' + a.label\"\n (cdkMenuItemTriggered)=\"onItemTrigger({action: a})\"\n >\n <mat-icon class=\"context-menu__item-icon ymt-icon--size-s\">{{ a.icon }}</mat-icon>\n {{ a.label }}\n </div>\n }\n</div>\n","import { Injectable, Injector, Signal, inject, runInInjectionContext } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { MatIconRegistry } from '@angular/material/icon';\nimport { DmsObject, Utils } from '@yuuvis/client-core';\nimport { Observable, forkJoin, map } from 'rxjs';\nimport { Action, ActionClass, ActionContext, ActionOptions, BASE_ACTION } from './actions.interface';\nimport { CopyAction } from './actions/copy-action/copy-action';\nimport { CutAction } from './actions/cut-action/cut-action';\nimport { DeleteAction } from './actions/delete-action/delete-action';\nimport { DownloadAction } from './actions/download-action/download-action';\nimport { ContextmenuComponent } from './components/contextmenu/contextmenu.component';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ActionsService {\n private readonly injector = inject(Injector);\n private dialog = inject(MatDialog);\n readonly iconRegistry = inject(MatIconRegistry);\n\n private _registeredActions: Record<string, ActionClass> = {};\n\n /**\n * Registers actions that can be used in the application.\n * @param a Array of actions to register, each action must have an id and a\n * class that extends ActionClass\n */\n registerActions(a: { id: string; action: ActionClass }[]) {\n Array.isArray(a) &&\n a.forEach((a) => {\n this._registeredActions[a.id] = a.action;\n });\n }\n\n /**\n * Conceals actions that are no longer needed or should not be available.\n * This will remove the actions from the registered actions list.\n * @param actionIDs Array of action IDs to conceal\n */\n concealActions(actionIDs: string[]) {\n Array.isArray(actionIDs) && actionIDs.forEach((id) => delete this._registeredActions[id]);\n }\n\n /**\n * Returns all actions that are executable for the given selection.\n * @param selection Array of DmsObjects to check for executable actions\n * @param options options to filter the actions\n * @returns Observable of actions that are executable for the given selection\n */\n getActions(selection: DmsObject[], options?: ActionOptions): Observable<Action[]> {\n // TODO: check if selection is empty or if nessasery at all\n // if (!selection || selection.length === 0) return of([]);\n const s: Observable<{ action: Action; executable: boolean }>[] = this.getAvailableActions(options?.context)\n .filter((ac) =>\n options?.exclude\n ? Array.isArray(options.exclude)\n ? !options.exclude.includes(ac.id)\n : options.exclude instanceof RegExp\n ? !options.exclude.test(ac.id)\n : true\n : true\n )\n .map((action: Action) =>\n action.isExecutable(selection).pipe(\n map((executable: boolean) => ({\n action,\n executable\n }))\n )\n );\n\n return forkJoin(s).pipe(map((res: { action: Action; executable: boolean }[]) => res.filter((r) => r.executable).map((r) => r.action)));\n }\n\n /**\n * Get all available actions. This includes the default actions and all registered actions but\n * without checking if they are executable.\n * @param context Context passed to the actions\n * @returns Array of available actions\n */\n getAvailableActions(context?: ActionContext): Action[] {\n let a: Action[] = [];\n\n runInInjectionContext(this.injector, () => {\n a = [...Object.values(this._registeredActions).map((ac: ActionClass) => new ac(context))];\n });\n return a;\n }\n\n getActionsForType(objectTypeId: string, context?: ActionContext): Action[] {\n return this.getAvailableActions(context).filter((a: Action) => this._actionsSupportsType(a, objectTypeId));\n }\n\n getActionById(id: string, context?: ActionContext): Action | undefined {\n return this.getAvailableActions(context).find((a) => a.id === id);\n }\n\n getActionsById(ids: string[], context?: ActionContext): Action[] {\n return this.getAvailableActions(context).filter((a) => ids.includes(a.id));\n }\n\n openContextMenu(actions: Signal<Action[]>, callback: (action: Action) => void, overlayOrigin: { x: number; y: number }) {\n if (actions().length)\n this.dialog.open(ContextmenuComponent, {\n data: { actions, callback },\n panelClass: 'context-menu-dialog'\n // position: { top: `${overlayOrigin.y}`, left: `${overlayOrigin.x}` }\n });\n\n setTimeout(() => {\n const dialog = document.querySelector('.context-menu-dialog') as HTMLElement;\n if (dialog) {\n const dialogWidth = dialog.offsetWidth;\n const dialogHeight = dialog.offsetHeight;\n const screenW = window.innerWidth;\n const screenH = window.innerHeight;\n\n let left = overlayOrigin.x;\n let top = overlayOrigin.y;\n if (left + dialogWidth > screenW) {\n left = screenW - dialogWidth - 10;\n }\n if (top + dialogHeight > screenH) {\n top = screenH - dialogHeight - 10;\n }\n\n dialog.style.position = 'fixed';\n dialog.style.left = `${left}px`;\n dialog.style.top = `${top}px`;\n }\n });\n }\n\n private _actionsSupportsType(action: Action, objectTypeId: string): boolean {\n const matchesTypes = action.supports.types ? action.supports.types.includes(objectTypeId) : false;\n const matchesSOTs = action.supports.sots ? action.supports.sots.includes(objectTypeId) : false;\n const matchesPattern = action.supports.pattern ? Utils.patternToRegExp(action.supports.pattern).test(objectTypeId) : false;\n return matchesTypes || matchesSOTs || matchesPattern;\n }\n\n /**\n * Registers a set of default actions that are commonly used in the application. \n * These actions include delete, download, copy and cut. This method can be called \n * during the initialization of the application to ensure that these actions \n * are available for use.\n */\n registerDefaultActions() {\n this.registerActions([\n { id: BASE_ACTION.delete, action: DeleteAction },\n { id: BASE_ACTION.download, action: DownloadAction },\n { id: BASE_ACTION.copy, action: CopyAction },\n { id: BASE_ACTION.cut, action: CutAction }\n ]);\n }\n}\n","import { CdkContextMenuTrigger, MENU_STACK, MENU_TRIGGER, MenuStack } from '@angular/cdk/menu';\nimport { Directive, effect, Input, input, signal, TemplateRef, untracked } from '@angular/core';\n\n@Directive({\n selector: '[yuvContextMenuTrigger]',\n exportAs: 'yuvContextMenuTrigger',\n standalone: true,\n providers: [\n { provide: MENU_TRIGGER, useExisting: YuvContextMenuTriggerDirective },\n { provide: MENU_STACK, useClass: MenuStack }\n ]\n})\nexport class YuvContextMenuTriggerDirective extends CdkContextMenuTrigger {\n @Input({ alias: 'yuvContextMenuTrigger' })\n override menuTemplateRef!: TemplateRef<unknown>;\n\n triggerWhen = input<boolean | null>(null, { alias: 'yuvContextMenuTriggerWhen' });\n \n #contextMenuEvent = signal<MouseEvent | null>(null);\n\n constructor() {\n super();\n\n effect(() => {\n const event = this.#contextMenuEvent();\n const triggerWhen = this.triggerWhen();\n untracked(() => {\n if ((event && triggerWhen) || (event && triggerWhen === null)) {\n super._openOnContextMenu(event);\n }\n });\n });\n }\n\n override _openOnContextMenu(event: MouseEvent) {\n this.#contextMenuEvent.set(event);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["TranslateService"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import * as i1 from '@angular/common';
2
2
  import { CommonModule } from '@angular/common';
3
3
  import * as i0 from '@angular/core';
4
- import { ElementRef, TemplateRef, Input, ContentChild, HostBinding, ViewChild, Component } from '@angular/core';
4
+ import { input, ElementRef, TemplateRef, ContentChild, ViewChild, Component } from '@angular/core';
5
5
  import * as i2 from '@angular/router';
6
6
  import { RouterModule } from '@angular/router';
7
7
  import { YuvIconComponent } from '@yuuvis/client-framework/icons';
@@ -37,11 +37,15 @@ class AppBarComponent {
37
37
  /**
38
38
  * Menu icon SVG. By default this will be the hamburger menu icon
39
39
  */
40
- this.menuIcon = '<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 -960 960 960" width="24"><path d="M140.001-254.616v-59.999h679.998v59.999H140.001Zm0-195.385v-59.998h679.998v59.998H140.001Zm0-195.384v-59.999h679.998v59.999H140.001Z"/></svg>';
40
+ this.menuIcon = input('<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 -960 960 960" width="24"><path d="M140.001-254.616v-59.999h679.998v59.999H140.001Zm0-195.385v-59.998h679.998v59.998H140.001Zm0-195.384v-59.999h679.998v59.999H140.001Z"/></svg>', ...(ngDevMode ? [{ debugName: "menuIcon" }] : []));
41
+ /**
42
+ * App title visible in the app beside the menu
43
+ */
44
+ this.appTitle = input(...(ngDevMode ? [undefined, { debugName: "appTitle" }] : []));
41
45
  /**
42
46
  * Where to route to, when the title is clicked. Defaults to '/'
43
47
  */
44
- this.appTitleRoute = './';
48
+ this.appTitleRoute = input('./', ...(ngDevMode ? [{ debugName: "appTitleRoute" }] : []));
45
49
  this.sidenavVisible = false;
46
50
  }
47
51
  toggleSideNav() {
@@ -58,19 +62,18 @@ class AppBarComponent {
58
62
  this.dialogElement?.nativeElement.close();
59
63
  }
60
64
  }
61
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: AppBarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
62
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.20", type: AppBarComponent, isStandalone: true, selector: "yuv-app-bar", inputs: { menuIcon: "menuIcon", appTitle: "appTitle", appTitleRoute: "appTitleRoute" }, host: { properties: { "class.has-menu": "this.appBarSideNav" } }, queries: [{ propertyName: "appBarSideNav", first: true, predicate: ["appBarSideNav"], descendants: true, read: TemplateRef }, { propertyName: "appBarActions", first: true, predicate: ["appBarActions"], descendants: true, read: TemplateRef }, { propertyName: "appBarPrimaryActions", first: true, predicate: ["appBarPrimaryActions"], descendants: true, read: TemplateRef }], viewQueries: [{ propertyName: "dialogElement", first: true, predicate: ["dialogEl"], descendants: true, read: ElementRef }], ngImport: i0, template: "@if (!!appBarSideNav) {\n <button class=\"menuIcon\" (click)=\"toggleSideNav()\">\n <yuv-icon [svg]=\"menuIcon\"></yuv-icon>\n </button>\n} @else {\n <a class=\"app-title\" [routerLink]=\"appTitleRoute\">\n <yuv-icon [svg]=\"menuIcon\"></yuv-icon>\n </a>\n}\n<a class=\"app-title\" [routerLink]=\"appTitleRoute\">{{ appTitle }}</a>\n\n<div class=\"primary-actions\">\n <ng-container *ngTemplateOutlet=\"appBarPrimaryActions\"></ng-container>\n</div>\n<div class=\"actions\">\n <ng-container *ngTemplateOutlet=\"appBarActions\"></ng-container>\n</div>\n\n<dialog #dialogEl (click)=\"onDialogClick($event)\">\n <section>\n <ng-container *ngTemplateOutlet=\"appBarSideNav\"></ng-container>\n </section>\n</dialog>\n", styles: [":host{--app-bar-icon-size: 24px;--app-bar-button-padding: var(--ymt-spacing-s);--app-bar-sidenav-margin-start: 0;display:flex;gap:var(--ymt-spacing-m);align-items:center;background-color:var(--ymt-surface-panel)}:host:not(.has-menu){min-height:calc(var(--app-bar-icon-size) + var(--app-bar-button-padding) * 2);padding-inline-start:var(--ymt-spacing-m)}:host:not(.has-menu) .menuIcon{display:none}:host:not(.has-menu) .sidenav{display:none}:host .menuIcon{border:0;padding:var(--app-bar-button-padding);flex:0 0 auto}:host a.app-title{display:flex;align-items:center;justify-content:center;color:var(--ymt-text-color);text-decoration:none;flex:0 0 auto;border-radius:2px}:host a.app-title:active,:host a.app-title:focus-visible{outline:1px solid var(--ymt-text-color-subtle);outline-offset:.25em}:host .primary-actions{flex:0;display:flex;margin-inline:var(--ymt-spacing-m)}:host .actions{flex:1;display:flex;margin-inline-end:var(--ymt-spacing-m);justify-content:flex-end}:host dialog{max-height:100%;width:max-content;height:100%;inset-inline-start:var(--app-bar-sidenav-margin-start);margin:0;padding:0;box-sizing:border-box;outline:0;border:0}:host dialog::backdrop{background-color:var(--ymt-surface);opacity:.8;backdrop-filter:blur(5px)}:host dialog>section{height:100%;overflow-y:auto;background-color:var(--ymt-surface);color:var(--ymt-text-color);border-inline-end:1px solid var(--ymt-outline-variant)}:host dialog[open]{animation:dialogAppear .2s ease-in-out}@keyframes dialogAppear{0%{opacity:0;transform:translate(-100%)}to{opacity:1;transform:translate(0)}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: YuvIconComponent, selector: "yuv-icon", inputs: ["label", "svg", "svgSrc"] }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }] }); }
65
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AppBarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
66
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.19", type: AppBarComponent, isStandalone: true, selector: "yuv-app-bar", inputs: { menuIcon: { classPropertyName: "menuIcon", publicName: "menuIcon", isSignal: true, isRequired: false, transformFunction: null }, appTitle: { classPropertyName: "appTitle", publicName: "appTitle", isSignal: true, isRequired: false, transformFunction: null }, appTitleRoute: { classPropertyName: "appTitleRoute", publicName: "appTitleRoute", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "has-menu" }, queries: [{ propertyName: "appBarSideNav", first: true, predicate: ["appBarSideNav"], descendants: true, read: TemplateRef }, { propertyName: "appBarActions", first: true, predicate: ["appBarActions"], descendants: true, read: TemplateRef }, { propertyName: "appBarPrimaryActions", first: true, predicate: ["appBarPrimaryActions"], descendants: true, read: TemplateRef }], viewQueries: [{ propertyName: "dialogElement", first: true, predicate: ["dialogEl"], descendants: true, read: ElementRef }], ngImport: i0, template: "@if (!!appBarSideNav) {\n <button class=\"menuIcon\" (click)=\"toggleSideNav()\">\n <yuv-icon [svg]=\"menuIcon()\"></yuv-icon>\n </button>\n} @else {\n <a class=\"app-title\" [routerLink]=\"appTitleRoute()\">\n <yuv-icon [svg]=\"menuIcon()\"></yuv-icon>\n </a>\n}\n<a class=\"app-title\" [routerLink]=\"appTitleRoute()\">{{ appTitle() }}</a>\n\n<div class=\"primary-actions\">\n <ng-container *ngTemplateOutlet=\"appBarPrimaryActions\"></ng-container>\n</div>\n<div class=\"actions\">\n <ng-container *ngTemplateOutlet=\"appBarActions\"></ng-container>\n</div>\n\n<dialog #dialogEl (click)=\"onDialogClick($event)\">\n <section>\n <ng-container *ngTemplateOutlet=\"appBarSideNav\"></ng-container>\n </section>\n</dialog>\n", styles: [":host{--app-bar-icon-size: 24px;--app-bar-button-padding: var(--ymt-spacing-s);--app-bar-sidenav-margin-start: 0;display:flex;gap:var(--ymt-spacing-m);align-items:center;background-color:var(--ymt-surface-panel)}:host:not(.has-menu){min-height:calc(var(--app-bar-icon-size) + var(--app-bar-button-padding) * 2);padding-inline-start:var(--ymt-spacing-m)}:host:not(.has-menu) .menuIcon{display:none}:host:not(.has-menu) .sidenav{display:none}:host .menuIcon{border:0;padding:var(--app-bar-button-padding);flex:0 0 auto}:host a.app-title{display:flex;align-items:center;justify-content:center;color:var(--ymt-text-color);text-decoration:none;flex:0 0 auto;border-radius:2px}:host a.app-title:active,:host a.app-title:focus-visible{outline:1px solid var(--ymt-text-color-subtle);outline-offset:.25em}:host .primary-actions{flex:0;display:flex;margin-inline:var(--ymt-spacing-m)}:host .actions{flex:1;display:flex;margin-inline-end:var(--ymt-spacing-m);justify-content:flex-end}:host dialog{max-height:100%;width:max-content;height:100%;inset-inline-start:var(--app-bar-sidenav-margin-start);margin:0;padding:0;box-sizing:border-box;outline:0;border:0}:host dialog::backdrop{background-color:var(--ymt-surface);opacity:.8;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}:host dialog>section{height:100%;overflow-y:auto;background-color:var(--ymt-surface);color:var(--ymt-text-color);border-inline-end:1px solid var(--ymt-outline-variant)}:host dialog[open]{animation:dialogAppear .2s ease-in-out}@keyframes dialogAppear{0%{opacity:0;transform:translate(-100%)}to{opacity:1;transform:translate(0)}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: YuvIconComponent, selector: "yuv-icon", inputs: ["label", "svg", "svgSrc"] }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }] }); }
63
67
  }
64
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: AppBarComponent, decorators: [{
68
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AppBarComponent, decorators: [{
65
69
  type: Component,
66
- args: [{ selector: 'yuv-app-bar', standalone: true, imports: [CommonModule, YuvIconComponent, RouterModule], template: "@if (!!appBarSideNav) {\n <button class=\"menuIcon\" (click)=\"toggleSideNav()\">\n <yuv-icon [svg]=\"menuIcon\"></yuv-icon>\n </button>\n} @else {\n <a class=\"app-title\" [routerLink]=\"appTitleRoute\">\n <yuv-icon [svg]=\"menuIcon\"></yuv-icon>\n </a>\n}\n<a class=\"app-title\" [routerLink]=\"appTitleRoute\">{{ appTitle }}</a>\n\n<div class=\"primary-actions\">\n <ng-container *ngTemplateOutlet=\"appBarPrimaryActions\"></ng-container>\n</div>\n<div class=\"actions\">\n <ng-container *ngTemplateOutlet=\"appBarActions\"></ng-container>\n</div>\n\n<dialog #dialogEl (click)=\"onDialogClick($event)\">\n <section>\n <ng-container *ngTemplateOutlet=\"appBarSideNav\"></ng-container>\n </section>\n</dialog>\n", styles: [":host{--app-bar-icon-size: 24px;--app-bar-button-padding: var(--ymt-spacing-s);--app-bar-sidenav-margin-start: 0;display:flex;gap:var(--ymt-spacing-m);align-items:center;background-color:var(--ymt-surface-panel)}:host:not(.has-menu){min-height:calc(var(--app-bar-icon-size) + var(--app-bar-button-padding) * 2);padding-inline-start:var(--ymt-spacing-m)}:host:not(.has-menu) .menuIcon{display:none}:host:not(.has-menu) .sidenav{display:none}:host .menuIcon{border:0;padding:var(--app-bar-button-padding);flex:0 0 auto}:host a.app-title{display:flex;align-items:center;justify-content:center;color:var(--ymt-text-color);text-decoration:none;flex:0 0 auto;border-radius:2px}:host a.app-title:active,:host a.app-title:focus-visible{outline:1px solid var(--ymt-text-color-subtle);outline-offset:.25em}:host .primary-actions{flex:0;display:flex;margin-inline:var(--ymt-spacing-m)}:host .actions{flex:1;display:flex;margin-inline-end:var(--ymt-spacing-m);justify-content:flex-end}:host dialog{max-height:100%;width:max-content;height:100%;inset-inline-start:var(--app-bar-sidenav-margin-start);margin:0;padding:0;box-sizing:border-box;outline:0;border:0}:host dialog::backdrop{background-color:var(--ymt-surface);opacity:.8;backdrop-filter:blur(5px)}:host dialog>section{height:100%;overflow-y:auto;background-color:var(--ymt-surface);color:var(--ymt-text-color);border-inline-end:1px solid var(--ymt-outline-variant)}:host dialog[open]{animation:dialogAppear .2s ease-in-out}@keyframes dialogAppear{0%{opacity:0;transform:translate(-100%)}to{opacity:1;transform:translate(0)}}\n"] }]
70
+ args: [{ selector: 'yuv-app-bar', standalone: true, imports: [CommonModule, YuvIconComponent, RouterModule], host: {
71
+ class: 'has-menu'
72
+ }, template: "@if (!!appBarSideNav) {\n <button class=\"menuIcon\" (click)=\"toggleSideNav()\">\n <yuv-icon [svg]=\"menuIcon()\"></yuv-icon>\n </button>\n} @else {\n <a class=\"app-title\" [routerLink]=\"appTitleRoute()\">\n <yuv-icon [svg]=\"menuIcon()\"></yuv-icon>\n </a>\n}\n<a class=\"app-title\" [routerLink]=\"appTitleRoute()\">{{ appTitle() }}</a>\n\n<div class=\"primary-actions\">\n <ng-container *ngTemplateOutlet=\"appBarPrimaryActions\"></ng-container>\n</div>\n<div class=\"actions\">\n <ng-container *ngTemplateOutlet=\"appBarActions\"></ng-container>\n</div>\n\n<dialog #dialogEl (click)=\"onDialogClick($event)\">\n <section>\n <ng-container *ngTemplateOutlet=\"appBarSideNav\"></ng-container>\n </section>\n</dialog>\n", styles: [":host{--app-bar-icon-size: 24px;--app-bar-button-padding: var(--ymt-spacing-s);--app-bar-sidenav-margin-start: 0;display:flex;gap:var(--ymt-spacing-m);align-items:center;background-color:var(--ymt-surface-panel)}:host:not(.has-menu){min-height:calc(var(--app-bar-icon-size) + var(--app-bar-button-padding) * 2);padding-inline-start:var(--ymt-spacing-m)}:host:not(.has-menu) .menuIcon{display:none}:host:not(.has-menu) .sidenav{display:none}:host .menuIcon{border:0;padding:var(--app-bar-button-padding);flex:0 0 auto}:host a.app-title{display:flex;align-items:center;justify-content:center;color:var(--ymt-text-color);text-decoration:none;flex:0 0 auto;border-radius:2px}:host a.app-title:active,:host a.app-title:focus-visible{outline:1px solid var(--ymt-text-color-subtle);outline-offset:.25em}:host .primary-actions{flex:0;display:flex;margin-inline:var(--ymt-spacing-m)}:host .actions{flex:1;display:flex;margin-inline-end:var(--ymt-spacing-m);justify-content:flex-end}:host dialog{max-height:100%;width:max-content;height:100%;inset-inline-start:var(--app-bar-sidenav-margin-start);margin:0;padding:0;box-sizing:border-box;outline:0;border:0}:host dialog::backdrop{background-color:var(--ymt-surface);opacity:.8;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}:host dialog>section{height:100%;overflow-y:auto;background-color:var(--ymt-surface);color:var(--ymt-text-color);border-inline-end:1px solid var(--ymt-outline-variant)}:host dialog[open]{animation:dialogAppear .2s ease-in-out}@keyframes dialogAppear{0%{opacity:0;transform:translate(-100%)}to{opacity:1;transform:translate(0)}}\n"] }]
67
73
  }], propDecorators: { dialogElement: [{
68
74
  type: ViewChild,
69
75
  args: ['dialogEl', { read: ElementRef }]
70
76
  }], appBarSideNav: [{
71
- type: HostBinding,
72
- args: ['class.has-menu']
73
- }, {
74
77
  type: ContentChild,
75
78
  args: ['appBarSideNav', { read: TemplateRef }]
76
79
  }], appBarActions: [{
@@ -79,13 +82,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
79
82
  }], appBarPrimaryActions: [{
80
83
  type: ContentChild,
81
84
  args: ['appBarPrimaryActions', { read: TemplateRef }]
82
- }], menuIcon: [{
83
- type: Input
84
- }], appTitle: [{
85
- type: Input
86
- }], appTitleRoute: [{
87
- type: Input
88
- }] } });
85
+ }], menuIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "menuIcon", required: false }] }], appTitle: [{ type: i0.Input, args: [{ isSignal: true, alias: "appTitle", required: false }] }], appTitleRoute: [{ type: i0.Input, args: [{ isSignal: true, alias: "appTitleRoute", required: false }] }] } });
89
86
 
90
87
  /**
91
88
  * Generated bundle index. Do not edit.
@@ -1 +1 @@
1
- {"version":3,"file":"yuuvis-client-framework-app-bar.mjs","sources":["../../../../../libs/yuuvis/client-framework/app-bar/src/lib/app-bar.component.ts","../../../../../libs/yuuvis/client-framework/app-bar/src/lib/app-bar.component.html","../../../../../libs/yuuvis/client-framework/app-bar/src/yuuvis-client-framework-app-bar.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport { Component, ContentChild, ElementRef, HostBinding, Input, TemplateRef, ViewChild } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { YuvIconComponent } from '@yuuvis/client-framework/icons';\n\n/**\n * Application bar for yuuvis Momentum apps.\n *\n * Adding a `#appBarSideNav` template to the components body will show a menu icon\n * that opens its content in a sidenav element.\n *\n * Adding a `#appBarActions` template to the component will add its content to\n * the actions section (at the end of the app bar).\n *\n * @example\n * <yuv-app-bar title=\"MyMomentumApp\">\n * <ng-template #appBarSideNav>\n * ... content supposed to end up in a sidenav ...\n * </ng-template>\n * <ng-template #appBarPrimaryActions>\n * ... content supposed to end up in the app bars primary actions section ...\n * </ng-template>\n * <ng-template #appBarActions>\n * ... content supposed to end up in the app bars actions section ...\n * </ng-template>\n * </yuv-app-bar>\n */\n@Component({\n selector: 'yuv-app-bar',\n standalone: true,\n imports: [CommonModule, YuvIconComponent, RouterModule],\n templateUrl: './app-bar.component.html',\n styleUrls: ['./app-bar.component.scss']\n})\nexport class AppBarComponent {\n @ViewChild('dialogEl', { read: ElementRef }) dialogElement: ElementRef<HTMLDialogElement> | null = null;\n @HostBinding('class.has-menu')\n @ContentChild('appBarSideNav', { read: TemplateRef })\n appBarSideNav: TemplateRef<any> | null = null;\n @ContentChild('appBarActions', { read: TemplateRef }) appBarActions: TemplateRef<any> | null = null;\n @ContentChild('appBarPrimaryActions', { read: TemplateRef }) appBarPrimaryActions: TemplateRef<any> | null = null;\n\n /**\n * Menu icon SVG. By default this will be the hamburger menu icon\n */\n @Input() menuIcon =\n '<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24\" viewBox=\"0 -960 960 960\" width=\"24\"><path d=\"M140.001-254.616v-59.999h679.998v59.999H140.001Zm0-195.385v-59.998h679.998v59.998H140.001Zm0-195.384v-59.999h679.998v59.999H140.001Z\"/></svg>';\n /**\n * App title visible in the app beside the menu\n */\n @Input() appTitle?: string;\n /**\n * Where to route to, when the title is clicked. Defaults to '/'\n */\n @Input() appTitleRoute?: string = './';\n\n sidenavVisible = false;\n\n toggleSideNav() {\n const dialogEl = this.dialogElement!.nativeElement;\n if (!dialogEl.hasAttribute('open')) dialogEl.showModal();\n else dialogEl.close();\n\n // this.dialogElement!.nativeElement.showModal()\n // this.sidenavVisible = !this.sidenavVisible\n }\n\n onDialogClick(e: MouseEvent) {\n if ((e.target as HTMLElement).nodeName === 'DIALOG') {\n this.dialogElement?.nativeElement.close();\n }\n }\n}\n","@if (!!appBarSideNav) {\n <button class=\"menuIcon\" (click)=\"toggleSideNav()\">\n <yuv-icon [svg]=\"menuIcon\"></yuv-icon>\n </button>\n} @else {\n <a class=\"app-title\" [routerLink]=\"appTitleRoute\">\n <yuv-icon [svg]=\"menuIcon\"></yuv-icon>\n </a>\n}\n<a class=\"app-title\" [routerLink]=\"appTitleRoute\">{{ appTitle }}</a>\n\n<div class=\"primary-actions\">\n <ng-container *ngTemplateOutlet=\"appBarPrimaryActions\"></ng-container>\n</div>\n<div class=\"actions\">\n <ng-container *ngTemplateOutlet=\"appBarActions\"></ng-container>\n</div>\n\n<dialog #dialogEl (click)=\"onDialogClick($event)\">\n <section>\n <ng-container *ngTemplateOutlet=\"appBarSideNav\"></ng-container>\n </section>\n</dialog>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"yuuvis-client-framework-app-bar.mjs","sources":["../../../../../libs/yuuvis/client-framework/app-bar/src/lib/app-bar.component.ts","../../../../../libs/yuuvis/client-framework/app-bar/src/lib/app-bar.component.html","../../../../../libs/yuuvis/client-framework/app-bar/src/yuuvis-client-framework-app-bar.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport { Component, ContentChild, ElementRef, TemplateRef, ViewChild, input } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { YuvIconComponent } from '@yuuvis/client-framework/icons';\n\n/**\n * Application bar for yuuvis Momentum apps.\n *\n * Adding a `#appBarSideNav` template to the components body will show a menu icon\n * that opens its content in a sidenav element.\n *\n * Adding a `#appBarActions` template to the component will add its content to\n * the actions section (at the end of the app bar).\n *\n * @example\n * <yuv-app-bar title=\"MyMomentumApp\">\n * <ng-template #appBarSideNav>\n * ... content supposed to end up in a sidenav ...\n * </ng-template>\n * <ng-template #appBarPrimaryActions>\n * ... content supposed to end up in the app bars primary actions section ...\n * </ng-template>\n * <ng-template #appBarActions>\n * ... content supposed to end up in the app bars actions section ...\n * </ng-template>\n * </yuv-app-bar>\n */\n@Component({\n selector: 'yuv-app-bar',\n standalone: true,\n imports: [CommonModule, YuvIconComponent, RouterModule],\n templateUrl: './app-bar.component.html',\n styleUrls: ['./app-bar.component.scss'],\n host: {\n class: 'has-menu'\n }\n})\nexport class AppBarComponent {\n @ViewChild('dialogEl', { read: ElementRef }) dialogElement: ElementRef<HTMLDialogElement> | null = null;\n\n @ContentChild('appBarSideNav', { read: TemplateRef })\n appBarSideNav: TemplateRef<any> | null = null;\n\n @ContentChild('appBarActions', { read: TemplateRef }) appBarActions: TemplateRef<any> | null = null;\n @ContentChild('appBarPrimaryActions', { read: TemplateRef }) appBarPrimaryActions: TemplateRef<any> | null = null;\n\n /**\n * Menu icon SVG. By default this will be the hamburger menu icon\n */\n readonly menuIcon = input(\n '<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24\" viewBox=\"0 -960 960 960\" width=\"24\"><path d=\"M140.001-254.616v-59.999h679.998v59.999H140.001Zm0-195.385v-59.998h679.998v59.998H140.001Zm0-195.384v-59.999h679.998v59.999H140.001Z\"/></svg>'\n );\n /**\n * App title visible in the app beside the menu\n */\n readonly appTitle = input<string>();\n /**\n * Where to route to, when the title is clicked. Defaults to '/'\n */\n readonly appTitleRoute = input<string | undefined>('./');\n\n sidenavVisible = false;\n\n toggleSideNav() {\n const dialogEl = this.dialogElement!.nativeElement;\n if (!dialogEl.hasAttribute('open')) dialogEl.showModal();\n else dialogEl.close();\n\n // this.dialogElement!.nativeElement.showModal()\n // this.sidenavVisible = !this.sidenavVisible\n }\n\n onDialogClick(e: MouseEvent) {\n if ((e.target as HTMLElement).nodeName === 'DIALOG') {\n this.dialogElement?.nativeElement.close();\n }\n }\n}\n","@if (!!appBarSideNav) {\n <button class=\"menuIcon\" (click)=\"toggleSideNav()\">\n <yuv-icon [svg]=\"menuIcon()\"></yuv-icon>\n </button>\n} @else {\n <a class=\"app-title\" [routerLink]=\"appTitleRoute()\">\n <yuv-icon [svg]=\"menuIcon()\"></yuv-icon>\n </a>\n}\n<a class=\"app-title\" [routerLink]=\"appTitleRoute()\">{{ appTitle() }}</a>\n\n<div class=\"primary-actions\">\n <ng-container *ngTemplateOutlet=\"appBarPrimaryActions\"></ng-container>\n</div>\n<div class=\"actions\">\n <ng-container *ngTemplateOutlet=\"appBarActions\"></ng-container>\n</div>\n\n<dialog #dialogEl (click)=\"onDialogClick($event)\">\n <section>\n <ng-container *ngTemplateOutlet=\"appBarSideNav\"></ng-container>\n </section>\n</dialog>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -24,62 +24,62 @@ class AutocompleteComponent extends AbstractMatFormField {
24
24
  constructor() {
25
25
  super(...arguments);
26
26
  this.#dRef = inject(DestroyRef);
27
- this.ariaLabel = input('');
27
+ this.ariaLabel = input('', ...(ngDevMode ? [{ debugName: "ariaLabel" }] : []));
28
28
  this.matAutocomplete = viewChild.required('auto');
29
29
  /**
30
30
  * Template to be used for rendering selected items in multiselect (multiple="true") mode
31
31
  */
32
- this.chipTemplate = contentChild('chipTemplate', { read: TemplateRef });
33
- this.optionTemplate = contentChild('optionTemplate', { read: TemplateRef });
32
+ this.chipTemplate = contentChild('chipTemplate', ...(ngDevMode ? [{ debugName: "chipTemplate", read: TemplateRef }] : [{ read: TemplateRef }]));
33
+ this.optionTemplate = contentChild('optionTemplate', ...(ngDevMode ? [{ debugName: "optionTemplate", read: TemplateRef }] : [{ read: TemplateRef }]));
34
34
  /**
35
35
  * Show a loading spinner
36
36
  */
37
- this.busy = input(false);
37
+ this.busy = input(false, ...(ngDevMode ? [{ debugName: "busy" }] : []));
38
38
  /**
39
39
  * Enable multiple values
40
40
  */
41
- this.multiple = input(false);
41
+ this.multiple = input(false, ...(ngDevMode ? [{ debugName: "multiple" }] : []));
42
42
  /**
43
43
  * Force distinct values (only applicable for multiselect)
44
44
  */
45
- this.distinctValues = input(true);
45
+ this.distinctValues = input(true, ...(ngDevMode ? [{ debugName: "distinctValues" }] : []));
46
46
  /**
47
47
  * Add user inputs to the list of values when the user leaves the
48
48
  * control without entering (only applicable for multiselect)
49
49
  */
50
- this.addOnBlur = input(false);
50
+ this.addOnBlur = input(false, ...(ngDevMode ? [{ debugName: "addOnBlur" }] : []));
51
51
  /**
52
52
  * Minimum number of characters entered to trigger suggestions
53
53
  */
54
- this.minLength = input(2);
54
+ this.minLength = input(2, ...(ngDevMode ? [{ debugName: "minLength" }] : []));
55
55
  /**
56
56
  * Maximum number of items when multiple is true. -1 means no limit.
57
57
  */
58
- this.maxItems = input(-1);
58
+ this.maxItems = input(-1, ...(ngDevMode ? [{ debugName: "maxItems" }] : []));
59
59
  /**
60
60
  * Setting this to `true` will not allow values that are not contained in the suggestions list. The input
61
61
  * will be cleared on blur if no value from the list has been selected. Also values are only emitted when a
62
62
  * list item has been selected (usually every key stroke is changing the form controls value)
63
63
  */
64
- this.forceSelection = input(false);
65
- this._acValues = signal([]);
66
- this.autocompleteValues = input([]);
64
+ this.forceSelection = input(false, ...(ngDevMode ? [{ debugName: "forceSelection" }] : []));
65
+ this._acValues = signal([], ...(ngDevMode ? [{ debugName: "_acValues" }] : []));
66
+ this.autocompleteValues = input([], ...(ngDevMode ? [{ debugName: "autocompleteValues" }] : []));
67
67
  this.#acValueEffect = effect(() => {
68
68
  const acv = this.multiple() && this.distinctValues()
69
69
  ? this.autocompleteValues().filter((v) => !(this.value || []).some((i) => i.label === v.label))
70
70
  : this.autocompleteValues();
71
71
  this._acValues.set(acv);
72
- });
72
+ }, ...(ngDevMode ? [{ debugName: "#acValueEffect" }] : []));
73
73
  this.autocompleteFnc = output();
74
74
  this.acBlur = output();
75
75
  // value = signal<AutocompleteItem[]>([]);
76
- this.chipsInputDisabled = computed(() => this.multiple() && this.maxItems() !== -1 && this.value && this.value.length >= this.maxItems());
76
+ this.chipsInputDisabled = computed(() => this.multiple() && this.maxItems() !== -1 && this.value && this.value.length >= this.maxItems(), ...(ngDevMode ? [{ debugName: "chipsInputDisabled" }] : []));
77
77
  this.chipsControl = new FormControl([]);
78
78
  this.inputControl = new FormControl('', {
79
79
  nonNullable: true
80
80
  });
81
81
  this.ngControl = injectNgControl(this);
82
- this.#activeAutocompleteValue = signal(null);
82
+ this.#activeAutocompleteValue = signal(null, ...(ngDevMode ? [{ debugName: "#activeAutocompleteValue" }] : []));
83
83
  // multiple selection
84
84
  this.separatorKeysCodes = [ENTER, COMMA];
85
85
  // eslint-disable-next-line @typescript-eslint/no-empty-function
@@ -202,10 +202,10 @@ class AutocompleteComponent extends AbstractMatFormField {
202
202
  ngOnDestroy() {
203
203
  super.onNgOnDestroy();
204
204
  }
205
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: AutocompleteComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
206
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.20", type: AutocompleteComponent, isStandalone: true, selector: "yuv-autocomplete", inputs: { ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null }, busy: { classPropertyName: "busy", publicName: "busy", isSignal: true, isRequired: false, transformFunction: null }, multiple: { classPropertyName: "multiple", publicName: "multiple", isSignal: true, isRequired: false, transformFunction: null }, distinctValues: { classPropertyName: "distinctValues", publicName: "distinctValues", isSignal: true, isRequired: false, transformFunction: null }, addOnBlur: { classPropertyName: "addOnBlur", publicName: "addOnBlur", isSignal: true, isRequired: false, transformFunction: null }, minLength: { classPropertyName: "minLength", publicName: "minLength", isSignal: true, isRequired: false, transformFunction: null }, maxItems: { classPropertyName: "maxItems", publicName: "maxItems", isSignal: true, isRequired: false, transformFunction: null }, forceSelection: { classPropertyName: "forceSelection", publicName: "forceSelection", isSignal: true, isRequired: false, transformFunction: null }, autocompleteValues: { classPropertyName: "autocompleteValues", publicName: "autocompleteValues", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { autocompleteFnc: "autocompleteFnc", acBlur: "acBlur" }, host: { attributes: { "attr.aria-disabled": "disabled" } }, providers: [{ provide: MatFormFieldControl, useExisting: AutocompleteComponent }], queries: [{ propertyName: "chipTemplate", first: true, predicate: ["chipTemplate"], descendants: true, read: TemplateRef, isSignal: true }, { propertyName: "optionTemplate", first: true, predicate: ["optionTemplate"], descendants: true, read: TemplateRef, isSignal: true }], viewQueries: [{ propertyName: "matAutocomplete", first: true, predicate: ["auto"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "@if (multiple()) {\n <mat-chip-grid yuvScrollButtons #chipGrid [attr.aria-label]=\"ariaLabel()\" [formControl]=\"chipsControl\">\n @for (v of value; track $index) {\n <mat-chip-row (removed)=\"removeItem(v)\">\n {{ v.label || v.value || v }}\n <button matChipRemove>\n <mat-icon>cancel</mat-icon>\n </button>\n </mat-chip-row>\n }\n <input\n [disabled]=\"!!chipsInputDisabled()\"\n type=\"text\"\n (blur)=\"onInputBlur()\"\n [placeholder]=\"placeholder || ''\"\n [formControl]=\"inputControl\"\n [matAutocomplete]=\"auto\"\n [matChipInputFor]=\"chipGrid\"\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\"\n (matChipInputTokenEnd)=\"add($event)\"\n />\n </mat-chip-grid>\n} @else {\n <input\n type=\"text\"\n matInput\n (blur)=\"onInputBlur()\"\n [placeholder]=\"placeholder || ''\"\n [attr.aria-label]=\"ariaLabel()\"\n [formControl]=\"inputControl\"\n [matAutocomplete]=\"auto\"\n />\n}\n@if (busy()) {\n <mat-spinner [diameter]=\"16\"></mat-spinner>\n}\n<mat-autocomplete\n #auto=\"matAutocomplete\"\n (optionSelected)=\"acOptionSelected($event)\"\n (optionActivated)=\"acOptionActivated($event)\"\n (closed)=\"acPanelClosed()\"\n [displayWith]=\"displayFn\"\n>\n @for (option of _acValues(); track option.label) {\n <mat-option [value]=\"option\">\n <ng-container *ngTemplateOutlet=\"optionTemplate() || null; context: { $implicit: option }\"></ng-container>\n @if (!optionTemplate()) {\n {{ option.label }}\n }\n </mat-option>\n }\n</mat-autocomplete>\n", styles: [":host{display:inline-flex;position:relative}:host:has(mat-chip-grid){min-width:0}:host input{background-color:transparent;border:0;width:100%;min-height:calc(var(--mdc-chip-container-height, 32px) + 4px);font-family:var(--mdc-chip-label-text-font, var(--mat-sys-label-large-font));line-height:var(--mdc-chip-label-text-line-height, var(--mat-sys-label-large-line-height));font-size:var(--mdc-chip-label-text-size, var(--mat-sys-label-large-size));font-weight:var(--mdc-chip-label-text-weight, var(--mat-sys-label-large-weight));letter-spacing:var(--mdc-chip-label-text-tracking, var(--mat-sys-label-large-tracking))}:host mat-spinner{align-self:center;position:absolute;inset-inline-end:0}:host mat-chip-grid{width:100%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: MatChipsModule }, { kind: "component", type: i2.MatChipGrid, selector: "mat-chip-grid", inputs: ["disabled", "placeholder", "required", "value", "errorStateMatcher"], outputs: ["change", "valueChange"] }, { kind: "directive", type: i2.MatChipInput, selector: "input[matChipInputFor]", inputs: ["matChipInputFor", "matChipInputAddOnBlur", "matChipInputSeparatorKeyCodes", "placeholder", "id", "disabled"], outputs: ["matChipInputTokenEnd"], exportAs: ["matChipInput", "matChipInputFor"] }, { kind: "directive", type: i2.MatChipRemove, selector: "[matChipRemove]" }, { kind: "component", type: i2.MatChipRow, selector: "mat-chip-row, [mat-chip-row], mat-basic-chip-row, [mat-basic-chip-row]", inputs: ["editable"], outputs: ["edited"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i4.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "ngmodule", type: MatProgressSpinnerModule }, { kind: "component", type: i5.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "ngmodule", type: MatAutocompleteModule }, { kind: "component", type: i6.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i6.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i6.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i7.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: ScrollButtonsDirective, selector: "[yuvScrollButtons]", inputs: ["yuvScrollButtonsAmount"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
205
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AutocompleteComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
206
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.19", type: AutocompleteComponent, isStandalone: true, selector: "yuv-autocomplete", inputs: { ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null }, busy: { classPropertyName: "busy", publicName: "busy", isSignal: true, isRequired: false, transformFunction: null }, multiple: { classPropertyName: "multiple", publicName: "multiple", isSignal: true, isRequired: false, transformFunction: null }, distinctValues: { classPropertyName: "distinctValues", publicName: "distinctValues", isSignal: true, isRequired: false, transformFunction: null }, addOnBlur: { classPropertyName: "addOnBlur", publicName: "addOnBlur", isSignal: true, isRequired: false, transformFunction: null }, minLength: { classPropertyName: "minLength", publicName: "minLength", isSignal: true, isRequired: false, transformFunction: null }, maxItems: { classPropertyName: "maxItems", publicName: "maxItems", isSignal: true, isRequired: false, transformFunction: null }, forceSelection: { classPropertyName: "forceSelection", publicName: "forceSelection", isSignal: true, isRequired: false, transformFunction: null }, autocompleteValues: { classPropertyName: "autocompleteValues", publicName: "autocompleteValues", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { autocompleteFnc: "autocompleteFnc", acBlur: "acBlur" }, host: { attributes: { "attr.aria-disabled": "disabled" } }, providers: [{ provide: MatFormFieldControl, useExisting: AutocompleteComponent }], queries: [{ propertyName: "chipTemplate", first: true, predicate: ["chipTemplate"], descendants: true, read: TemplateRef, isSignal: true }, { propertyName: "optionTemplate", first: true, predicate: ["optionTemplate"], descendants: true, read: TemplateRef, isSignal: true }], viewQueries: [{ propertyName: "matAutocomplete", first: true, predicate: ["auto"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "@if (multiple()) {\n <mat-chip-grid yuvScrollButtons #chipGrid [attr.aria-label]=\"ariaLabel()\" [formControl]=\"chipsControl\">\n @for (v of value; track $index) {\n <mat-chip-row (removed)=\"removeItem(v)\">\n {{ v.label || v.value || v }}\n <button matChipRemove>\n <mat-icon>cancel</mat-icon>\n </button>\n </mat-chip-row>\n }\n <input\n [disabled]=\"!!chipsInputDisabled()\"\n type=\"text\"\n (blur)=\"onInputBlur()\"\n [placeholder]=\"placeholder || ''\"\n [formControl]=\"inputControl\"\n [matAutocomplete]=\"auto\"\n [matChipInputFor]=\"chipGrid\"\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\"\n (matChipInputTokenEnd)=\"add($event)\"\n />\n </mat-chip-grid>\n} @else {\n <input\n type=\"text\"\n matInput\n (blur)=\"onInputBlur()\"\n [placeholder]=\"placeholder || ''\"\n [attr.aria-label]=\"ariaLabel()\"\n [formControl]=\"inputControl\"\n [matAutocomplete]=\"auto\"\n />\n}\n@if (busy()) {\n <mat-spinner [diameter]=\"16\"></mat-spinner>\n}\n<mat-autocomplete\n #auto=\"matAutocomplete\"\n (optionSelected)=\"acOptionSelected($event)\"\n (optionActivated)=\"acOptionActivated($event)\"\n (closed)=\"acPanelClosed()\"\n [displayWith]=\"displayFn\"\n>\n @for (option of _acValues(); track option.label) {\n <mat-option [value]=\"option\">\n <ng-container *ngTemplateOutlet=\"optionTemplate() || null; context: { $implicit: option }\"></ng-container>\n @if (!optionTemplate()) {\n {{ option.label }}\n }\n </mat-option>\n }\n</mat-autocomplete>\n", styles: [":host{display:inline-flex;position:relative}:host:has(mat-chip-grid){min-width:0}:host input{background-color:transparent;border:0;width:100%;min-height:calc(var(--mdc-chip-container-height, 32px) + 4px);font-family:var(--mdc-chip-label-text-font, var(--mat-sys-label-large-font));line-height:var(--mdc-chip-label-text-line-height, var(--mat-sys-label-large-line-height));font-size:var(--mdc-chip-label-text-size, var(--mat-sys-label-large-size));font-weight:var(--mdc-chip-label-text-weight, var(--mat-sys-label-large-weight));letter-spacing:var(--mdc-chip-label-text-tracking, var(--mat-sys-label-large-tracking))}:host mat-spinner{align-self:center;position:absolute;inset-inline-end:0}:host mat-chip-grid{width:100%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: MatChipsModule }, { kind: "component", type: i2.MatChipGrid, selector: "mat-chip-grid", inputs: ["disabled", "placeholder", "required", "value", "errorStateMatcher"], outputs: ["change", "valueChange"] }, { kind: "directive", type: i2.MatChipInput, selector: "input[matChipInputFor]", inputs: ["matChipInputFor", "matChipInputAddOnBlur", "matChipInputSeparatorKeyCodes", "placeholder", "id", "disabled", "readonly", "matChipInputDisabledInteractive"], outputs: ["matChipInputTokenEnd"], exportAs: ["matChipInput", "matChipInputFor"] }, { kind: "directive", type: i2.MatChipRemove, selector: "[matChipRemove]" }, { kind: "component", type: i2.MatChipRow, selector: "mat-chip-row, [mat-chip-row], mat-basic-chip-row, [mat-basic-chip-row]", inputs: ["editable"], outputs: ["edited"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i4.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "ngmodule", type: MatProgressSpinnerModule }, { kind: "component", type: i5.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "ngmodule", type: MatAutocompleteModule }, { kind: "component", type: i6.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i6.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i6.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i7.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: ScrollButtonsDirective, selector: "[yuvScrollButtons]", inputs: ["yuvScrollButtonsAmount"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
207
207
  }
208
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: AutocompleteComponent, decorators: [{
208
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AutocompleteComponent, decorators: [{
209
209
  type: Component,
210
210
  args: [{ selector: 'yuv-autocomplete', imports: [
211
211
  CommonModule,
@@ -219,14 +219,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
219
219
  ], changeDetection: ChangeDetectionStrategy.OnPush, providers: [{ provide: MatFormFieldControl, useExisting: AutocompleteComponent }], host: {
220
220
  'attr.aria-disabled': 'disabled'
221
221
  }, template: "@if (multiple()) {\n <mat-chip-grid yuvScrollButtons #chipGrid [attr.aria-label]=\"ariaLabel()\" [formControl]=\"chipsControl\">\n @for (v of value; track $index) {\n <mat-chip-row (removed)=\"removeItem(v)\">\n {{ v.label || v.value || v }}\n <button matChipRemove>\n <mat-icon>cancel</mat-icon>\n </button>\n </mat-chip-row>\n }\n <input\n [disabled]=\"!!chipsInputDisabled()\"\n type=\"text\"\n (blur)=\"onInputBlur()\"\n [placeholder]=\"placeholder || ''\"\n [formControl]=\"inputControl\"\n [matAutocomplete]=\"auto\"\n [matChipInputFor]=\"chipGrid\"\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\"\n (matChipInputTokenEnd)=\"add($event)\"\n />\n </mat-chip-grid>\n} @else {\n <input\n type=\"text\"\n matInput\n (blur)=\"onInputBlur()\"\n [placeholder]=\"placeholder || ''\"\n [attr.aria-label]=\"ariaLabel()\"\n [formControl]=\"inputControl\"\n [matAutocomplete]=\"auto\"\n />\n}\n@if (busy()) {\n <mat-spinner [diameter]=\"16\"></mat-spinner>\n}\n<mat-autocomplete\n #auto=\"matAutocomplete\"\n (optionSelected)=\"acOptionSelected($event)\"\n (optionActivated)=\"acOptionActivated($event)\"\n (closed)=\"acPanelClosed()\"\n [displayWith]=\"displayFn\"\n>\n @for (option of _acValues(); track option.label) {\n <mat-option [value]=\"option\">\n <ng-container *ngTemplateOutlet=\"optionTemplate() || null; context: { $implicit: option }\"></ng-container>\n @if (!optionTemplate()) {\n {{ option.label }}\n }\n </mat-option>\n }\n</mat-autocomplete>\n", styles: [":host{display:inline-flex;position:relative}:host:has(mat-chip-grid){min-width:0}:host input{background-color:transparent;border:0;width:100%;min-height:calc(var(--mdc-chip-container-height, 32px) + 4px);font-family:var(--mdc-chip-label-text-font, var(--mat-sys-label-large-font));line-height:var(--mdc-chip-label-text-line-height, var(--mat-sys-label-large-line-height));font-size:var(--mdc-chip-label-text-size, var(--mat-sys-label-large-size));font-weight:var(--mdc-chip-label-text-weight, var(--mat-sys-label-large-weight));letter-spacing:var(--mdc-chip-label-text-tracking, var(--mat-sys-label-large-tracking))}:host mat-spinner{align-self:center;position:absolute;inset-inline-end:0}:host mat-chip-grid{width:100%}\n"] }]
222
- }] });
222
+ }], propDecorators: { ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabel", required: false }] }], matAutocomplete: [{ type: i0.ViewChild, args: ['auto', { isSignal: true }] }], chipTemplate: [{ type: i0.ContentChild, args: ['chipTemplate', { ...{ read: TemplateRef }, isSignal: true }] }], optionTemplate: [{ type: i0.ContentChild, args: ['optionTemplate', { ...{ read: TemplateRef }, isSignal: true }] }], busy: [{ type: i0.Input, args: [{ isSignal: true, alias: "busy", required: false }] }], multiple: [{ type: i0.Input, args: [{ isSignal: true, alias: "multiple", required: false }] }], distinctValues: [{ type: i0.Input, args: [{ isSignal: true, alias: "distinctValues", required: false }] }], addOnBlur: [{ type: i0.Input, args: [{ isSignal: true, alias: "addOnBlur", required: false }] }], minLength: [{ type: i0.Input, args: [{ isSignal: true, alias: "minLength", required: false }] }], maxItems: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxItems", required: false }] }], forceSelection: [{ type: i0.Input, args: [{ isSignal: true, alias: "forceSelection", required: false }] }], autocompleteValues: [{ type: i0.Input, args: [{ isSignal: true, alias: "autocompleteValues", required: false }] }], autocompleteFnc: [{ type: i0.Output, args: ["autocompleteFnc"] }], acBlur: [{ type: i0.Output, args: ["acBlur"] }] } });
223
223
 
224
224
  class YuvAutocompleteModule {
225
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: YuvAutocompleteModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
226
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.20", ngImport: i0, type: YuvAutocompleteModule, imports: [AutocompleteComponent], exports: [AutocompleteComponent] }); }
227
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: YuvAutocompleteModule, imports: [AutocompleteComponent] }); }
225
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: YuvAutocompleteModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
226
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.19", ngImport: i0, type: YuvAutocompleteModule, imports: [AutocompleteComponent], exports: [AutocompleteComponent] }); }
227
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: YuvAutocompleteModule, imports: [AutocompleteComponent] }); }
228
228
  }
229
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: YuvAutocompleteModule, decorators: [{
229
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: YuvAutocompleteModule, decorators: [{
230
230
  type: NgModule,
231
231
  args: [{
232
232
  imports: [AutocompleteComponent],