ngx-edu-sharing-ui 0.7.0 → 9.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (367) hide show
  1. package/assets/scss/mixins.scss +4 -1
  2. package/assets/scss/variables.scss +3 -0
  3. package/esm2022/lib/actionbar/actionbar.component.mjs +188 -0
  4. package/esm2022/lib/common/edu-sharing-ui-common.module.mjs +134 -0
  5. package/esm2022/lib/directives/border-box-observer.directive.mjs +71 -0
  6. package/esm2022/lib/directives/check-text-overflow.directive.mjs +65 -0
  7. package/esm2022/lib/directives/drag-nodes/drag-nodes.mjs +14 -0
  8. package/esm2022/lib/directives/drag-nodes/nodes-drag-source.directive.mjs +79 -0
  9. package/esm2022/lib/directives/drag-nodes/nodes-drag.directive.mjs +49 -0
  10. package/esm2022/lib/directives/drag-nodes/nodes-drop-target.directive.mjs +105 -0
  11. package/esm2022/lib/directives/focus-state.directive.mjs +44 -0
  12. package/esm2022/lib/directives/icon.directive.mjs +139 -0
  13. package/esm2022/lib/dropdown/dropdown.component.mjs +70 -0
  14. package/esm2022/lib/edu-sharing-ui-configuration.mjs +41 -0
  15. package/esm2022/lib/edu-sharing-ui.module.mjs +78 -0
  16. package/esm2022/lib/list-items/available-widgets.mjs +27 -0
  17. package/esm2022/lib/list-items/format-duration.pipe.mjs +20 -0
  18. package/esm2022/lib/list-items/list-base/list-base.component.mjs +46 -0
  19. package/esm2022/lib/list-items/list-collection-info/list-collection-info.component.mjs +29 -0
  20. package/esm2022/lib/list-items/list-counts/list-counts.component.mjs +54 -0
  21. package/esm2022/lib/list-items/list-items.module.mjs +50 -0
  22. package/esm2022/lib/list-items/list-node-license/list-node-license.component.mjs +41 -0
  23. package/esm2022/lib/list-items/list-node-replication-source/list-node-replication-source.component.mjs +47 -0
  24. package/esm2022/lib/list-items/list-node-workflow/list-node-workflow.component.mjs +24 -0
  25. package/esm2022/lib/list-items/list-text/list-text.component.mjs +106 -0
  26. package/esm2022/lib/list-items/list-widget.mjs +49 -0
  27. package/esm2022/lib/list-items/node-row/node-row.component.mjs +24 -0
  28. package/esm2022/lib/list-items/node-source.pipe.mjs +49 -0
  29. package/esm2022/lib/node-entries/combined-data-source.mjs +41 -0
  30. package/esm2022/lib/node-entries/custom-templates-data-source.mjs +7 -0
  31. package/esm2022/lib/node-entries/drag-preview/drag-preview.component.mjs +21 -0
  32. package/esm2022/lib/node-entries/entries-model.mjs +23 -0
  33. package/esm2022/lib/node-entries/items-cap.mjs +47 -0
  34. package/esm2022/lib/node-entries/list-item-label.pipe.mjs +34 -0
  35. package/esm2022/lib/node-entries/node-cache.mjs +65 -0
  36. package/esm2022/lib/node-entries/node-data-source-remote.mjs +4 -0
  37. package/esm2022/lib/node-entries/node-data-source.mjs +115 -0
  38. package/esm2022/lib/node-entries/node-entries-card/node-entries-card.component.mjs +131 -0
  39. package/esm2022/lib/node-entries/node-entries-card-grid/node-entries-card-grid.component.mjs +307 -0
  40. package/esm2022/lib/node-entries/node-entries-card-small/node-entries-card-small.component.mjs +45 -0
  41. package/esm2022/lib/node-entries/node-entries-global-options/node-entries-global-options.component.mjs +23 -0
  42. package/esm2022/lib/node-entries/node-entries-global.service.mjs +58 -0
  43. package/esm2022/lib/node-entries/node-entries-table/column-chooser/column-chooser.component.mjs +42 -0
  44. package/esm2022/lib/node-entries/node-entries-table/node-entries-table.component.mjs +290 -0
  45. package/esm2022/lib/node-entries/node-entries-templates.service.mjs +11 -0
  46. package/esm2022/lib/node-entries/node-entries-wrapper.component.mjs +324 -0
  47. package/esm2022/lib/node-entries/node-entries.component.mjs +131 -0
  48. package/esm2022/lib/node-entries/node-entries.module.mjs +161 -0
  49. package/esm2022/lib/node-entries/node-rating/node-rating.component.mjs +102 -0
  50. package/esm2022/lib/node-entries/node-stats-badges/node-stats-badges.component.mjs +48 -0
  51. package/esm2022/lib/node-entries/node-type-badge/node-type-badge.component.mjs +36 -0
  52. package/esm2022/lib/node-entries/option-button/option-button.component.mjs +62 -0
  53. package/esm2022/lib/node-entries/preview-image/preview-image.component.mjs +53 -0
  54. package/esm2022/lib/node-entries/sort-select-panel/sort-select-panel.component.mjs +41 -0
  55. package/esm2022/lib/node-url/node-url.component.mjs +128 -0
  56. package/esm2022/lib/pipes/file-size.pipe.mjs +31 -0
  57. package/esm2022/lib/pipes/format-date.pipe.mjs +38 -0
  58. package/esm2022/lib/pipes/node-icon.pipe.mjs +18 -0
  59. package/esm2022/lib/pipes/node-image-size.pipe.mjs +24 -0
  60. package/esm2022/lib/pipes/node-image.pipe.mjs +55 -0
  61. package/esm2022/lib/pipes/node-person-name.pipe.mjs +50 -0
  62. package/esm2022/lib/pipes/node-title.pipe.mjs +19 -0
  63. package/esm2022/lib/pipes/option-tooltip.pipe.mjs +33 -0
  64. package/esm2022/lib/pipes/replace-chars.pipe.mjs +29 -0
  65. package/esm2022/lib/pipes/vcard-name.pipe.mjs +19 -0
  66. package/esm2022/lib/services/abstract/app.service.mjs +3 -0
  67. package/esm2022/lib/services/abstract/keyboard-shortcuts.service.mjs +10 -0
  68. package/esm2022/lib/services/abstract/options-helper.service.mjs +3 -0
  69. package/esm2022/lib/services/abstract/toast.service.mjs +3 -0
  70. package/esm2022/lib/services/accessibility.service.mjs +73 -0
  71. package/esm2022/lib/services/local-events.service.mjs +36 -0
  72. package/esm2022/lib/services/node-entries.service.mjs +137 -0
  73. package/esm2022/lib/services/node-helper.service.mjs +234 -0
  74. package/esm2022/lib/services/nodes-drag-drop.service.mjs +155 -0
  75. package/esm2022/lib/services/options-helper-data.service.mjs +134 -0
  76. package/esm2022/lib/services/repo-url.service.mjs +49 -0
  77. package/esm2022/lib/services/temporary-storage.service.mjs +48 -0
  78. package/esm2022/lib/services/ui.service.mjs +162 -0
  79. package/esm2022/lib/sort-dropdown/sort-dropdown.component.mjs +50 -0
  80. package/esm2022/lib/spinner/spinner.component.mjs +18 -0
  81. package/esm2022/lib/translations/fallback-translation-handler.mjs +6 -0
  82. package/esm2022/lib/translations/languages.mjs +5 -0
  83. package/esm2022/lib/translations/translation-loader.mjs +149 -0
  84. package/esm2022/lib/translations/translation-source.mjs +11 -0
  85. package/esm2022/lib/translations/translations.module.mjs +67 -0
  86. package/esm2022/lib/translations/translations.service.mjs +171 -0
  87. package/esm2022/lib/types/accessibillity.mjs +19 -0
  88. package/esm2022/lib/types/api-models.mjs +2 -0
  89. package/esm2022/lib/types/drag-drop.mjs +2 -0
  90. package/esm2022/lib/types/keyboard-shortcuts.mjs +11 -0
  91. package/esm2022/lib/types/list-item.mjs +41 -0
  92. package/esm2022/lib/types/option-item.mjs +174 -0
  93. package/esm2022/lib/types/workflow.mjs +25 -0
  94. package/esm2022/lib/util/DateHelper.mjs +200 -0
  95. package/esm2022/lib/util/VCard.mjs +278 -0
  96. package/esm2022/lib/util/color-helper.mjs +124 -0
  97. package/esm2022/lib/util/duration-helper.mjs +102 -0
  98. package/esm2022/lib/util/functions.mjs +13 -0
  99. package/esm2022/lib/util/helper.mjs +64 -0
  100. package/esm2022/lib/util/isNumeric.mjs +11 -0
  101. package/esm2022/lib/util/rest-helper.mjs +33 -0
  102. package/esm2022/lib/util/ui-animation.mjs +146 -0
  103. package/esm2022/lib/util/ui-constants.mjs +21 -0
  104. package/esm2022/module.mjs +76 -0
  105. package/esm2022/ngx-edu-sharing-ui.mjs +5 -0
  106. package/fesm2022/ngx-edu-sharing-ui.mjs +6509 -0
  107. package/fesm2022/ngx-edu-sharing-ui.mjs.map +1 -0
  108. package/index.d.ts +5 -0
  109. package/lib/actionbar/actionbar.component.d.ts +74 -0
  110. package/lib/common/edu-sharing-ui-common.module.d.ts +32 -0
  111. package/lib/directives/border-box-observer.directive.d.ts +31 -0
  112. package/lib/directives/check-text-overflow.directive.d.ts +20 -0
  113. package/lib/directives/drag-nodes/drag-nodes.d.ts +16 -0
  114. package/lib/directives/drag-nodes/nodes-drag-source.directive.d.ts +37 -0
  115. package/lib/directives/drag-nodes/nodes-drag.directive.d.ts +17 -0
  116. package/lib/directives/drag-nodes/nodes-drop-target.directive.d.ts +22 -0
  117. package/lib/directives/focus-state.directive.d.ts +14 -0
  118. package/lib/directives/icon.directive.d.ts +46 -0
  119. package/lib/dropdown/dropdown.component.d.ts +40 -0
  120. package/lib/edu-sharing-ui-configuration.d.ts +11 -0
  121. package/lib/edu-sharing-ui.module.d.ts +19 -0
  122. package/lib/list-items/available-widgets.d.ts +13 -0
  123. package/lib/list-items/format-duration.pipe.d.ts +10 -0
  124. package/lib/list-items/list-base/list-base.component.d.ts +18 -0
  125. package/lib/list-items/list-collection-info/list-collection-info.component.d.ts +14 -0
  126. package/lib/list-items/list-counts/list-counts.component.d.ts +13 -0
  127. package/lib/list-items/list-items.module.d.ts +20 -0
  128. package/lib/list-items/list-node-license/list-node-license.component.d.ts +20 -0
  129. package/lib/list-items/list-node-replication-source/list-node-replication-source.component.d.ts +22 -0
  130. package/lib/list-items/list-node-workflow/list-node-workflow.component.d.ts +12 -0
  131. package/lib/list-items/list-text/list-text.component.d.ts +28 -0
  132. package/lib/list-items/list-widget.d.ts +32 -0
  133. package/lib/list-items/node-row/node-row.component.d.ts +12 -0
  134. package/lib/list-items/node-source.pipe.d.ts +16 -0
  135. package/lib/node-entries/combined-data-source.d.ts +19 -0
  136. package/{src/lib/node-entries/custom-templates-data-source.ts → lib/node-entries/custom-templates-data-source.d.ts} +2 -2
  137. package/lib/node-entries/drag-preview/drag-preview.component.d.ts +11 -0
  138. package/{src/lib/node-entries/entries-model.ts → lib/node-entries/entries-model.d.ts} +19 -47
  139. package/lib/node-entries/items-cap.d.ts +17 -0
  140. package/lib/node-entries/list-item-label.pipe.d.ts +14 -0
  141. package/lib/node-entries/node-cache.d.ts +17 -0
  142. package/{src/lib/node-entries/node-data-source-remote.ts → lib/node-entries/node-data-source-remote.d.ts} +2 -12
  143. package/lib/node-entries/node-data-source.d.ts +42 -0
  144. package/lib/node-entries/node-entries-card/node-entries-card.component.d.ts +45 -0
  145. package/lib/node-entries/node-entries-card-grid/node-entries-card-grid.component.d.ts +92 -0
  146. package/lib/node-entries/node-entries-card-small/node-entries-card-small.component.d.ts +23 -0
  147. package/lib/node-entries/node-entries-global-options/node-entries-global-options.component.d.ts +12 -0
  148. package/lib/node-entries/node-entries-global.service.d.ts +50 -0
  149. package/lib/node-entries/node-entries-table/column-chooser/column-chooser.component.d.ts +17 -0
  150. package/lib/node-entries/node-entries-table/node-entries-table.component.d.ts +76 -0
  151. package/{src/lib/node-entries/node-entries-templates.service.ts → lib/node-entries/node-entries-templates.service.d.ts} +6 -9
  152. package/lib/node-entries/node-entries-wrapper.component.d.ts +129 -0
  153. package/lib/node-entries/node-entries.component.d.ts +32 -0
  154. package/lib/node-entries/node-entries.module.d.ts +43 -0
  155. package/lib/node-entries/node-rating/node-rating.component.d.ts +26 -0
  156. package/lib/node-entries/node-stats-badges/node-stats-badges.component.d.ts +17 -0
  157. package/lib/node-entries/node-type-badge/node-type-badge.component.d.ts +21 -0
  158. package/lib/node-entries/option-button/option-button.component.d.ts +11 -0
  159. package/lib/node-entries/preview-image/preview-image.component.d.ts +22 -0
  160. package/lib/node-entries/sort-select-panel/sort-select-panel.component.d.ts +16 -0
  161. package/lib/node-url/node-url.component.d.ts +51 -0
  162. package/lib/pipes/file-size.pipe.d.ts +10 -0
  163. package/lib/pipes/format-date.pipe.d.ts +21 -0
  164. package/lib/pipes/node-icon.pipe.d.ts +11 -0
  165. package/lib/pipes/node-image-size.pipe.d.ts +8 -0
  166. package/lib/pipes/node-image.pipe.d.ts +28 -0
  167. package/lib/pipes/node-person-name.pipe.d.ts +10 -0
  168. package/lib/pipes/node-title.pipe.d.ts +11 -0
  169. package/lib/pipes/option-tooltip.pipe.d.ts +12 -0
  170. package/lib/pipes/replace-chars.pipe.d.ts +10 -0
  171. package/lib/pipes/vcard-name.pipe.d.ts +10 -0
  172. package/{src/lib/services/abstract/app.service.ts → lib/services/abstract/app.service.d.ts} +1 -1
  173. package/lib/services/abstract/keyboard-shortcuts.service.d.ts +11 -0
  174. package/lib/services/abstract/options-helper.service.d.ts +10 -0
  175. package/{src/lib/services/abstract/toast.service.ts → lib/services/abstract/toast.service.d.ts} +1 -2
  176. package/lib/services/accessibility.service.d.ts +18 -0
  177. package/{src/lib/services/local-events.service.ts → lib/services/local-events.service.d.ts} +7 -10
  178. package/lib/services/node-entries.service.d.ts +69 -0
  179. package/lib/services/node-helper.service.d.ts +56 -0
  180. package/lib/services/nodes-drag-drop.service.d.ts +41 -0
  181. package/lib/services/options-helper-data.service.d.ts +75 -0
  182. package/lib/services/repo-url.service.d.ts +25 -0
  183. package/lib/services/temporary-storage.service.d.ts +35 -0
  184. package/lib/services/ui.service.d.ts +41 -0
  185. package/lib/sort-dropdown/sort-dropdown.component.d.ts +15 -0
  186. package/lib/spinner/spinner.component.d.ts +7 -0
  187. package/lib/translations/fallback-translation-handler.d.ts +4 -0
  188. package/lib/translations/languages.d.ts +4 -0
  189. package/lib/translations/translation-loader.d.ts +51 -0
  190. package/{src/lib/translations/translation-source.ts → lib/translations/translation-source.d.ts} +4 -4
  191. package/lib/translations/translations.module.d.ts +15 -0
  192. package/lib/translations/translations.service.d.ts +30 -0
  193. package/lib/types/accessibillity.d.ts +15 -0
  194. package/{src/lib/types/drag-drop.ts → lib/types/drag-drop.d.ts} +0 -3
  195. package/lib/types/keyboard-shortcuts.d.ts +10 -0
  196. package/lib/types/list-item.d.ts +55 -0
  197. package/lib/types/option-item.d.ts +236 -0
  198. package/lib/types/workflow.d.ts +14 -0
  199. package/lib/util/DateHelper.d.ts +44 -0
  200. package/lib/util/VCard.d.ts +66 -0
  201. package/lib/util/color-helper.d.ts +25 -0
  202. package/lib/util/duration-helper.d.ts +14 -0
  203. package/lib/util/functions.d.ts +4 -0
  204. package/lib/util/helper.d.ts +20 -0
  205. package/lib/util/isNumeric.d.ts +5 -0
  206. package/lib/util/rest-helper.d.ts +10 -0
  207. package/lib/util/ui-animation.d.ts +39 -0
  208. package/lib/util/ui-constants.d.ts +18 -0
  209. package/{src/module.ts → module.d.ts} +0 -4
  210. package/package.json +23 -9
  211. package/.browserslistrc +0 -16
  212. package/.eslintrc.json +0 -44
  213. package/karma.conf.js +0 -42
  214. package/ng-package.json +0 -10
  215. package/src/lib/actionbar/actionbar.component.html +0 -59
  216. package/src/lib/actionbar/actionbar.component.scss +0 -123
  217. package/src/lib/actionbar/actionbar.component.ts +0 -174
  218. package/src/lib/common/edu-sharing-ui-common.module.ts +0 -80
  219. package/src/lib/directives/border-box-observer.directive.ts +0 -75
  220. package/src/lib/directives/check-text-overflow.directive.ts +0 -61
  221. package/src/lib/directives/drag-nodes/drag-nodes.ts +0 -32
  222. package/src/lib/directives/drag-nodes/nodes-drag-source.directive.ts +0 -79
  223. package/src/lib/directives/drag-nodes/nodes-drag.directive.ts +0 -43
  224. package/src/lib/directives/drag-nodes/nodes-drop-target.directive.ts +0 -116
  225. package/src/lib/directives/focus-state.directive.ts +0 -34
  226. package/src/lib/directives/icon.directive.ts +0 -142
  227. package/src/lib/directives/nodes-drop-target-legacy.directive.ts +0 -155
  228. package/src/lib/dropdown/dropdown.component.html +0 -32
  229. package/src/lib/dropdown/dropdown.component.scss +0 -67
  230. package/src/lib/dropdown/dropdown.component.ts +0 -71
  231. package/src/lib/edu-sharing-ui-configuration.ts +0 -47
  232. package/src/lib/edu-sharing-ui.module.ts +0 -49
  233. package/src/lib/list-items/available-widgets.ts +0 -30
  234. package/src/lib/list-items/format-duration.pipe.ts +0 -17
  235. package/src/lib/list-items/list-base/list-base.component.html +0 -52
  236. package/src/lib/list-items/list-base/list-base.component.ts +0 -44
  237. package/src/lib/list-items/list-collection-info/list-collection-info.component.html +0 -48
  238. package/src/lib/list-items/list-collection-info/list-collection-info.component.scss +0 -8
  239. package/src/lib/list-items/list-collection-info/list-collection-info.component.ts +0 -24
  240. package/src/lib/list-items/list-counts/list-counts.component.html +0 -1
  241. package/src/lib/list-items/list-counts/list-counts.component.scss +0 -3
  242. package/src/lib/list-items/list-counts/list-counts.component.ts +0 -59
  243. package/src/lib/list-items/list-items.module.ts +0 -33
  244. package/src/lib/list-items/list-node-license/list-node-license.component.html +0 -8
  245. package/src/lib/list-items/list-node-license/list-node-license.component.ts +0 -47
  246. package/src/lib/list-items/list-node-replication-source/list-node-replication-source.component.html +0 -11
  247. package/src/lib/list-items/list-node-replication-source/list-node-replication-source.component.ts +0 -60
  248. package/src/lib/list-items/list-node-workflow/list-node-workflow.component.html +0 -3
  249. package/src/lib/list-items/list-node-workflow/list-node-workflow.component.ts +0 -21
  250. package/src/lib/list-items/list-text/list-text.component.html +0 -176
  251. package/src/lib/list-items/list-text/list-text.component.scss +0 -3
  252. package/src/lib/list-items/list-text/list-text.component.ts +0 -107
  253. package/src/lib/list-items/list-widget.ts +0 -52
  254. package/src/lib/list-items/node-row/node-row.component.html +0 -31
  255. package/src/lib/list-items/node-row/node-row.component.scss +0 -50
  256. package/src/lib/list-items/node-row/node-row.component.ts +0 -16
  257. package/src/lib/list-items/node-source.pipe.ts +0 -48
  258. package/src/lib/node-entries/combined-data-source.ts +0 -51
  259. package/src/lib/node-entries/drag-preview/drag-preview.component.html +0 -6
  260. package/src/lib/node-entries/drag-preview/drag-preview.component.scss +0 -35
  261. package/src/lib/node-entries/drag-preview/drag-preview.component.ts +0 -15
  262. package/src/lib/node-entries/items-cap.ts +0 -54
  263. package/src/lib/node-entries/list-item-label.pipe.ts +0 -28
  264. package/src/lib/node-entries/mixins.scss +0 -23
  265. package/src/lib/node-entries/node-cache.spec.ts +0 -199
  266. package/src/lib/node-entries/node-cache.ts +0 -81
  267. package/src/lib/node-entries/node-data-source.ts +0 -148
  268. package/src/lib/node-entries/node-entries-card/node-entries-card.component.html +0 -167
  269. package/src/lib/node-entries/node-entries-card/node-entries-card.component.scss +0 -28
  270. package/src/lib/node-entries/node-entries-card/node-entries-card.component.ts +0 -132
  271. package/src/lib/node-entries/node-entries-card/node-entries-card.main.scss +0 -261
  272. package/src/lib/node-entries/node-entries-card-grid/node-entries-card-grid.component.html +0 -205
  273. package/src/lib/node-entries/node-entries-card-grid/node-entries-card-grid.component.scss +0 -181
  274. package/src/lib/node-entries/node-entries-card-grid/node-entries-card-grid.component.ts +0 -361
  275. package/src/lib/node-entries/node-entries-card-small/node-entries-card-small.component.html +0 -100
  276. package/src/lib/node-entries/node-entries-card-small/node-entries-card-small.component.scss +0 -46
  277. package/src/lib/node-entries/node-entries-card-small/node-entries-card-small.component.ts +0 -40
  278. package/src/lib/node-entries/node-entries-global-options/node-entries-global-options.component.html +0 -23
  279. package/src/lib/node-entries/node-entries-global-options/node-entries-global-options.component.scss +0 -58
  280. package/src/lib/node-entries/node-entries-global-options/node-entries-global-options.component.ts +0 -16
  281. package/src/lib/node-entries/node-entries-global.service.ts +0 -79
  282. package/src/lib/node-entries/node-entries-table/column-chooser/column-chooser.component.html +0 -25
  283. package/src/lib/node-entries/node-entries-table/column-chooser/column-chooser.component.scss +0 -32
  284. package/src/lib/node-entries/node-entries-table/column-chooser/column-chooser.component.ts +0 -31
  285. package/src/lib/node-entries/node-entries-table/node-entries-table.component.html +0 -270
  286. package/src/lib/node-entries/node-entries-table/node-entries-table.component.scss +0 -169
  287. package/src/lib/node-entries/node-entries-table/node-entries-table.component.ts +0 -333
  288. package/src/lib/node-entries/node-entries-wrapper.component.ts +0 -363
  289. package/src/lib/node-entries/node-entries.component.html +0 -33
  290. package/src/lib/node-entries/node-entries.component.scss +0 -13
  291. package/src/lib/node-entries/node-entries.component.ts +0 -151
  292. package/src/lib/node-entries/node-entries.module.ts +0 -93
  293. package/src/lib/node-entries/node-rating/node-rating.component.html +0 -53
  294. package/src/lib/node-entries/node-rating/node-rating.component.scss +0 -31
  295. package/src/lib/node-entries/node-rating/node-rating.component.ts +0 -105
  296. package/src/lib/node-entries/node-stats-badges/node-stats-badges.component.html +0 -39
  297. package/src/lib/node-entries/node-stats-badges/node-stats-badges.component.scss +0 -44
  298. package/src/lib/node-entries/node-stats-badges/node-stats-badges.component.ts +0 -43
  299. package/src/lib/node-entries/node-type-badge/node-type-badge.component.html +0 -31
  300. package/src/lib/node-entries/node-type-badge/node-type-badge.component.scss +0 -5
  301. package/src/lib/node-entries/node-type-badge/node-type-badge.component.ts +0 -36
  302. package/src/lib/node-entries/option-button/option-button.component.ts +0 -42
  303. package/src/lib/node-entries/preview-image/preview-image.component.html +0 -19
  304. package/src/lib/node-entries/preview-image/preview-image.component.scss +0 -31
  305. package/src/lib/node-entries/preview-image/preview-image.component.ts +0 -47
  306. package/src/lib/node-entries/sort-select-panel/sort-select-panel.component.html +0 -27
  307. package/src/lib/node-entries/sort-select-panel/sort-select-panel.component.scss +0 -9
  308. package/src/lib/node-entries/sort-select-panel/sort-select-panel.component.ts +0 -26
  309. package/src/lib/node-url/node-url.component.html +0 -66
  310. package/src/lib/node-url/node-url.component.scss +0 -32
  311. package/src/lib/node-url/node-url.component.ts +0 -136
  312. package/src/lib/pipes/file-size.pipe.ts +0 -24
  313. package/src/lib/pipes/format-date.pipe.ts +0 -39
  314. package/src/lib/pipes/node-icon.pipe.ts +0 -11
  315. package/src/lib/pipes/node-image-size.pipe.ts +0 -18
  316. package/src/lib/pipes/node-image.pipe.ts +0 -71
  317. package/src/lib/pipes/node-person-name.pipe.ts +0 -41
  318. package/src/lib/pipes/node-title.pipe.ts +0 -12
  319. package/src/lib/pipes/option-tooltip.pipe.ts +0 -32
  320. package/src/lib/pipes/replace-chars.pipe.ts +0 -21
  321. package/src/lib/pipes/vcard-name.pipe.ts +0 -11
  322. package/src/lib/services/abstract/keyboard-shortcuts.service.ts +0 -10
  323. package/src/lib/services/abstract/options-helper.service.ts +0 -29
  324. package/src/lib/services/accessibility.service.ts +0 -101
  325. package/src/lib/services/node-entries.service.ts +0 -172
  326. package/src/lib/services/node-helper.service.ts +0 -239
  327. package/src/lib/services/nodes-drag-drop.service.ts +0 -165
  328. package/src/lib/services/options-helper-data.service.ts +0 -186
  329. package/src/lib/services/repo-url.service.ts +0 -46
  330. package/src/lib/services/temporary-storage.service.ts +0 -58
  331. package/src/lib/services/ui.service.ts +0 -182
  332. package/src/lib/sort-dropdown/sort-dropdown.component.html +0 -22
  333. package/src/lib/sort-dropdown/sort-dropdown.component.scss +0 -47
  334. package/src/lib/sort-dropdown/sort-dropdown.component.ts +0 -42
  335. package/src/lib/spinner/spinner.component.html +0 -14
  336. package/src/lib/spinner/spinner.component.scss +0 -141
  337. package/src/lib/spinner/spinner.component.ts +0 -12
  338. package/src/lib/translations/README.md +0 -44
  339. package/src/lib/translations/fallback-translation-handler.ts +0 -7
  340. package/src/lib/translations/languages.ts +0 -6
  341. package/src/lib/translations/translation-loader.spec.ts +0 -352
  342. package/src/lib/translations/translation-loader.ts +0 -189
  343. package/src/lib/translations/translations.module.ts +0 -49
  344. package/src/lib/translations/translations.service.spec.ts +0 -152
  345. package/src/lib/translations/translations.service.ts +0 -188
  346. package/src/lib/types/accessibillity.ts +0 -15
  347. package/src/lib/types/keyboard-shortcuts.ts +0 -29
  348. package/src/lib/types/list-item.ts +0 -67
  349. package/src/lib/types/option-item.ts +0 -247
  350. package/src/lib/types/workflow.ts +0 -35
  351. package/src/lib/util/DateHelper.spec.ts +0 -112
  352. package/src/lib/util/DateHelper.ts +0 -197
  353. package/src/lib/util/VCard.ts +0 -277
  354. package/src/lib/util/color-helper.ts +0 -125
  355. package/src/lib/util/duration-helper.spec.ts +0 -35
  356. package/src/lib/util/duration-helper.ts +0 -98
  357. package/src/lib/util/functions.ts +0 -15
  358. package/src/lib/util/helper.ts +0 -60
  359. package/src/lib/util/isNumeric.ts +0 -13
  360. package/src/lib/util/rest-helper.ts +0 -28
  361. package/src/lib/util/ui-animation.ts +0 -154
  362. package/src/lib/util/ui-constants.ts +0 -20
  363. package/src/test.ts +0 -28
  364. package/tsconfig.lib.json +0 -15
  365. package/tsconfig.lib.prod.json +0 -10
  366. package/tsconfig.spec.json +0 -17
  367. /package/{src/lib/types/api-models.ts → lib/types/api-models.d.ts} +0 -0
@@ -1,132 +0,0 @@
1
- import {
2
- ApplicationRef,
3
- Component,
4
- Input,
5
- OnChanges,
6
- OnInit,
7
- Optional,
8
- SimpleChanges,
9
- ViewChild,
10
- } from '@angular/core';
11
- import { MatMenuTrigger } from '@angular/material/menu';
12
- import { ClickSource, InteractionType } from '../entries-model';
13
- import { NodeEntriesTemplatesService } from '../node-entries-templates.service';
14
- import { CustomFieldSpecialType, NodeEntriesGlobalService } from '../node-entries-global.service';
15
- import { Target } from '../../types/option-item';
16
- import { NodeEntriesService } from '../../services/node-entries.service';
17
- import { NodeHelperService } from '../../services/node-helper.service';
18
- import { AuthenticationService, ConfigService, Node, RestConstants } from 'ngx-edu-sharing-api';
19
- import { ColorHelper, PreferredColor } from '../../util/color-helper';
20
- import { take } from 'rxjs/operators';
21
- import { DropdownComponent } from '../../dropdown/dropdown.component';
22
- import { Toast } from '../../services/abstract/toast.service';
23
-
24
- @Component({
25
- selector: 'es-node-entries-card',
26
- templateUrl: 'node-entries-card.component.html',
27
- styleUrls: ['node-entries-card.component.scss'],
28
- })
29
- export class NodeEntriesCardComponent<T extends Node> implements OnChanges, OnInit {
30
- readonly InteractionType = InteractionType;
31
- readonly Target = Target;
32
- readonly ClickSource = ClickSource;
33
- readonly CustomFieldSpecialType = CustomFieldSpecialType;
34
- @Input() dropdown: DropdownComponent;
35
-
36
- @ViewChild('menuTrigger') menuTrigger: MatMenuTrigger;
37
-
38
- @Input() node: T;
39
- dropdownLeft: number;
40
- dropdownTop: number;
41
- showRatings: boolean;
42
- isCollection: boolean;
43
- constructor(
44
- public entriesService: NodeEntriesService<T>,
45
- public nodeHelper: NodeHelperService,
46
- public applicationRef: ApplicationRef,
47
- public configService: ConfigService,
48
- public authenticationService: AuthenticationService,
49
- public templatesService: NodeEntriesTemplatesService,
50
- private nodeEntriesGlobalService: NodeEntriesGlobalService,
51
- @Optional() private toast: Toast,
52
- ) {}
53
-
54
- ngOnChanges(changes: SimpleChanges): void {
55
- this.isCollection = this.nodeHelper.isNodeCollection(changes.node?.currentValue);
56
- }
57
-
58
- getTextColor() {
59
- return ColorHelper.getPreferredColor(this.node.collection.color) === PreferredColor.Black
60
- ? '#000'
61
- : '#fff';
62
- }
63
- optionsOnCard() {
64
- const options = this.entriesService.options[Target.List];
65
- const always = options.filter((o) => o.showAlways);
66
- if (always.some((o) => o.showCallback(this.node))) {
67
- return always;
68
- }
69
- // we do NOT show any additional actions
70
- return [];
71
- // return options.filter((o) => o.showAsAction && o.showCallback(this.node)).slice(0, 3);
72
- }
73
-
74
- openContextmenu(event: MouseEvent | Event) {
75
- event.stopPropagation();
76
- event.preventDefault();
77
- if (!this.dropdown) {
78
- // Call `preventDefault()` even when there is no menu, so we can use `cdkDrag` with a
79
- // start delay without being interrupted by the standard long-tap action.
80
- return;
81
- }
82
- if (event instanceof MouseEvent) {
83
- ({ clientX: this.dropdownLeft, clientY: this.dropdownTop } = event);
84
- } else {
85
- ({ x: this.dropdownLeft, y: this.dropdownTop } = (
86
- event.target as HTMLElement
87
- ).getBoundingClientRect());
88
- }
89
- if (!this.entriesService.selection.selected.includes(this.node)) {
90
- this.entriesService.selection.clear();
91
- this.entriesService.selection.select(this.node);
92
- }
93
- // Wait for the menu to reflect changed options.
94
- setTimeout(() => {
95
- if (this.dropdown.canShowDropdown()) {
96
- this.menuTrigger.openMenu();
97
- } else {
98
- this.toast.toast('NO_AVAILABLE_OPTIONS');
99
- }
100
- });
101
- }
102
-
103
- getVisibleColumns() {
104
- return this.entriesService.columns?.filter((c) => c.visible);
105
- }
106
-
107
- async openMenu(node: T) {
108
- this.entriesService.selection.clear();
109
- this.entriesService.selection.select(node);
110
- await this.applicationRef.tick();
111
- this.dropdown.menu.focusFirstItem();
112
- }
113
-
114
- async ngOnInit() {
115
- await this.configService.observeConfig().pipe(take(1)).toPromise();
116
- this.showRatings =
117
- this.configService.instant('', 'none') !== 'none' &&
118
- (await this.authenticationService.hasToolpermission(
119
- RestConstants.TOOLPERMISSION_RATE_READ,
120
- ));
121
- }
122
-
123
- getTemplate(name: CustomFieldSpecialType) {
124
- return this.nodeEntriesGlobalService.getCustomFieldTemplate(
125
- {
126
- type: 'NODE',
127
- name,
128
- },
129
- this.node as Node,
130
- );
131
- }
132
- }
@@ -1,261 +0,0 @@
1
- @import '../../../../assets/scss/mixins';
2
- @import '../mixins';
3
-
4
- $optionBarHeight: 50px;
5
-
6
- .grid-card {
7
- transition: all var(--transitionNormal);
8
- // to prevent click animation to float across the whole screen
9
- overflow: hidden;
10
- background-color: #fff;
11
- @include materialShadowBottom();
12
- display: grid;
13
- height: 100%;
14
- grid-template-columns: auto;
15
- @include contrastMode {
16
- border: 1px solid rgba(black, 0.42);
17
- }
18
- &.selected {
19
- background-color: rgb(var(--palette-primary-50));
20
- }
21
- .dropdown-dummy {
22
- position: fixed;
23
- }
24
- .card-options {
25
- display: grid;
26
- grid-template-columns: 1fr auto;
27
- grid-column-gap: 10px;
28
- .card-rating-area {
29
- display: flex;
30
- align-items: center;
31
- height: 100%;
32
- }
33
- .card-options-area {
34
- display: flex;
35
- .card-options-spacer {
36
- // margin: 0 5px;
37
- // border-left: 1px solid #ccc;
38
- }
39
-
40
- es-option-button,
41
- button {
42
- transition: all var(--transitionNormal);
43
- margin: 0 2px;
44
- border-radius: 50%;
45
-
46
- &:hover,
47
- &:focus {
48
- background-color: #fff;
49
- }
50
- }
51
- }
52
- }
53
- &:not(.grid-card-collection) {
54
- .card-top-bar {
55
- background-color: rgb(var(--palette-primary-200));
56
- }
57
- }
58
- &.grid-card-virtual {
59
- outline: 2px dashed var(--nodeVirtualColor);
60
- }
61
- .card-top-bar {
62
- height: $topBarHeight;
63
- display: flex;
64
- gap: 15px;
65
-
66
- align-items: center;
67
- padding: 0 $entriesCardPaddingHorizontal;
68
- position: relative;
69
- .card-top-bar-collection-color {
70
- position: absolute;
71
- background-color: rgba(255, 255, 255, 0.5);
72
- left: 0;
73
- top: 0;
74
- right: 0;
75
- bottom: 0;
76
- }
77
- .card-top-bar-flag {
78
- @include card-top-bar-badge;
79
- }
80
- .card-top-bar-checkbox {
81
- mat-checkbox {
82
- margin-right: -5px;
83
- position: relative;
84
- top: -1.3px;
85
- &.cdk-keyboard-focused ::ng-deep .mat-focus-indicator {
86
- @include removeDefaultFocus();
87
- &::after {
88
- content: '';
89
- position: absolute;
90
- left: 2px;
91
- right: 2px;
92
- top: 2px;
93
- bottom: 2px;
94
- @include setGlobalKeyboardFocus('border');
95
- border-color: white;
96
- }
97
- }
98
- }
99
- }
100
- .card-top-bar-empty {
101
- width: 0;
102
- flex-grow: 1;
103
- }
104
- }
105
- .card-image-area {
106
- height: $imageHeight;
107
- padding: 0;
108
- display: flex;
109
- es-preview-image {
110
- flex-grow: 1;
111
- }
112
- .card-collection-image {
113
- display: flex;
114
- width: 100%;
115
- height: 100%;
116
- align-items: center;
117
- justify-content: center;
118
- i {
119
- display: flex;
120
- align-items: center;
121
- justify-content: center;
122
- user-select: none;
123
- color: rgba(0, 0, 0, 0.75);
124
- background-color: rgba(255, 255, 255, 0.5);
125
- padding: $collectionIconPadding;
126
- font-size: $collectionIconSize;
127
- border-radius: 50%;
128
- }
129
- }
130
- }
131
- .card-meta {
132
- padding: $entriesCardPaddingVertical $entriesCardPaddingHorizontal 0
133
- $entriesCardPaddingHorizontal;
134
- display: grid;
135
- flex-direction: row;
136
- .card-meta-row {
137
- display: flex;
138
- flex-direction: row;
139
- align-items: center;
140
- min-height: 2.5em;
141
- gap: 5px;
142
- &:not(:first-child) {
143
- > label {
144
- cursor: inherit;
145
- color: var(--textLight);
146
- font-size: 85%;
147
- }
148
- > es-list-base {
149
- color: #000;
150
- flex-grow: 1;
151
- margin: 5px 0;
152
- display: flex;
153
- justify-content: flex-end;
154
- text-align: end;
155
- word-break: break-word;
156
- // height: 1em;
157
- }
158
- }
159
- &:first-child {
160
- > es-list-base,
161
- > es-node-url {
162
- width: 100%;
163
- color: var(--textMain);
164
- font-size: 120%;
165
- height: 1.25 * 2em;
166
- text-align: left;
167
- word-break: break-word;
168
- }
169
- }
170
- }
171
- }
172
- &.dynamic-single-click:hover {
173
- @include materialShadowMediumLarge(false, 0.2);
174
- background-color: rgb(var(--palette-primary-50));
175
- // transform: scale(1.0075);
176
- }
177
- &.dynamic-single-click.grid-card-collection:hover .card-meta {
178
- background-color: rgba(255, 255, 255, 0.9);
179
- }
180
- &.grid-card-collection {
181
- .card-meta {
182
- background-color: rgba(255, 255, 255, 0.8);
183
- }
184
- .card-options {
185
- background-color: rgba(255, 255, 255, 0.9);
186
- }
187
- }
188
- .card-options {
189
- border-top: 1px solid #ddd;
190
- // margin-top: 2px; white artefact on hover
191
- }
192
- }
193
- :host ::ng-deep {
194
- .grid-card {
195
- .card-meta-row {
196
- &:first-child {
197
- es-list-base,
198
- es-node-url a es-list-base {
199
- @include limitLineCount(2, 1.25);
200
- > es-list-text {
201
- word-break: break-word;
202
- }
203
- }
204
- }
205
- es-node-url {
206
- a {
207
- color: var(--textMain);
208
- &.cdk-keyboard-focused {
209
- display: inline-flex;
210
- @include setGlobalKeyboardFocus('outline');
211
- }
212
- }
213
- }
214
- }
215
- }
216
- .card-meta {
217
- es-list-base {
218
- img {
219
- max-width: 100px;
220
- max-height: 20px;
221
- }
222
- es-list-node-license {
223
- img {
224
- height: 20px;
225
- }
226
- }
227
- es-list-collection-info {
228
- display: flex;
229
- align-items: center;
230
- // justify-content: flex-end;
231
- i {
232
- font-size: 12pt;
233
- margin: 0 6px;
234
- }
235
- }
236
- }
237
- }
238
- .grid-card-collection es-node-url {
239
- a.cdk-keyboard-focused .card-meta {
240
- // @TDOO: better focus visibility is required
241
- background-color: #fff;
242
- }
243
- }
244
- }
245
- /**
246
- custom overlay provided via template
247
- */
248
- .card-overlay {
249
- position: absolute;
250
- z-index: 2;
251
- left: 0;
252
- right: 0;
253
- top: 0;
254
- bottom: 0;
255
- // Pass pointer events through to the underlying card when the overlay template is empty...
256
- pointer-events: none;
257
- // ...but re-enable pointer-event handling for the overlay's content (if any).
258
- & ::ng-deep > * {
259
- pointer-events: auto;
260
- }
261
- }
@@ -1,205 +0,0 @@
1
- <ng-template #gridTop>
2
- <es-sort-select-panel
3
- *ngIf="entriesService.sort?.allowed"
4
- class="order-panel"
5
- [active]="entriesService.sort.active"
6
- [direction]="entriesService.sort.direction"
7
- [columns]="getSortColumns()"
8
- (sortChange)="onSortChange($event)"
9
- [(customSortingInProgress)]="entriesService.sort.customSortingInProgress"
10
- (customSortingInProgressChange)="onCustomSortingInProgressChange()"
11
- ></es-sort-select-panel>
12
- </ng-template>
13
-
14
- <es-dropdown #dropdown [options]="entriesService.options?.[Target.ListDropdown]"></es-dropdown>
15
-
16
- <!-- Do not render the list element (`role="list"` or `li`) when there are no list items. -->
17
- <ng-container *ngIf="(nodes$ | async)?.length > 0 || entriesService.globalOptions?.length > 0">
18
- <!-- FIXME: Ideally, we would use native `ul` and `li` elements, but these have a strict model,
19
- that only allows `li` elements as direct children of `ul` elements. So we would need to use the
20
- native elements at all places without any elements between `ul` and `li`. -->
21
- <div
22
- *ngIf="entriesService.sort?.customSortingInProgress"
23
- role="list"
24
- class="card-grid card-grid-reorder"
25
- cdkDropListGroup
26
- >
27
- <ng-container *ngIf="nodes$ | async as nodes">
28
- <div
29
- class="card-grid-order-wrapper"
30
- *ngFor="let node of nodes; let i = index"
31
- role="none"
32
- cdkDropList
33
- [cdkDropListConnectedTo]="dropLists"
34
- [cdkDropListData]="i"
35
- >
36
- <es-node-entries-card
37
- *ngIf="displayType === NodeEntriesDisplayType.Grid"
38
- #item
39
- [node]="node"
40
- role="listitem"
41
- cdkDrag
42
- [cdkDragData]="i"
43
- [cdkDragStartDelay]="getDragStartDelay()"
44
- cdkDragPreviewClass="es-card-grid-rearrange-drag-preview"
45
- (cdkDragEntered)="onRearrangeDragEntered($event)"
46
- (cdkDragStarted)="onRearrangeDragStarted()"
47
- (cdkDragEnded)="onRearrangeDragEnded()"
48
- ></es-node-entries-card>
49
- <es-node-entries-card-small
50
- *ngIf="displayType === NodeEntriesDisplayType.SmallGrid"
51
- #item
52
- [node]="node"
53
- role="listitem"
54
- cdkDrag
55
- [cdkDragData]="i"
56
- [cdkDragStartDelay]="getDragStartDelay()"
57
- cdkDragPreviewClass="es-card-grid-rearrange-drag-preview"
58
- (cdkDragEntered)="onRearrangeDragEntered($event)"
59
- (cdkDragStarted)="onRearrangeDragStarted()"
60
- (cdkDragEnded)="onRearrangeDragEnded()"
61
- ></es-node-entries-card-small>
62
- </div>
63
- </ng-container>
64
- </div>
65
- <div class="card-grid-wrapper" *ngIf="!entriesService.sort?.customSortingInProgress">
66
- <ng-container *ngTemplateOutlet="scrollHelper"></ng-container>
67
- <div
68
- role="list"
69
- class="card-grid card-grid-layout-{{ layout }}"
70
- #grid
71
- (esBorderBoxObserver)="onGridSizeChanges()"
72
- esInfiniteScroll
73
- (scroll)="updateScrollState()"
74
- (scrolled)="!visibleItemsLimited && loadData('scroll')"
75
- >
76
- <es-node-entries-global-options
77
- *ngIf="entriesService.globalOptions?.length"
78
- [displayType]="displayType"
79
- >
80
- </es-node-entries-global-options>
81
- <ng-container *ngIf="nodes$ | async as nodes">
82
- <div
83
- class="card-grid-drag-wrapper"
84
- *ngFor="let node of nodes; let i = index"
85
- role="none"
86
- [esNodesDropTarget]="node"
87
- [canDropNodes]="canDropNodes"
88
- (nodeDropped)="onNodesDropped($event)"
89
- #dropTarget="esNodesDropTarget"
90
- >
91
- <ng-container *ngIf="isCustomTemplate()">
92
- <ng-container *ngTemplateOutlet="$any(node)"></ng-container>
93
- </ng-container>
94
- <ng-container *ngIf="!isCustomTemplate()">
95
- <es-node-entries-card
96
- *ngIf="displayType === NodeEntriesDisplayType.Grid"
97
- #item
98
- [node]="node"
99
- [dropdown]="dropdown"
100
- role="listitem"
101
- cdkDrag
102
- [cdkDragDisabled]="!getDragEnabled()"
103
- [cdkDragData]="getDragData(node)"
104
- esNodesDrag
105
- (cdkDragStarted)="onDragStarted(node)"
106
- (cdkDragEnded)="onDragEnded()"
107
- [class.selected-when-dragging]="
108
- isDragging && entriesService.selection.isSelected(node)
109
- "
110
- >
111
- <ng-container *ngIf="entriesService.selection.selected.length > 1">
112
- <es-node-entries-card
113
- *cdkDragPreview
114
- [node]="node"
115
- [matBadge]="
116
- entriesService.selection.selected.length > 1
117
- ? entriesService.selection.selected.length
118
- : null
119
- "
120
- class="card-drag-preview"
121
- ></es-node-entries-card>
122
- </ng-container>
123
- </es-node-entries-card>
124
- <es-node-entries-card-small
125
- *ngIf="displayType === NodeEntriesDisplayType.SmallGrid"
126
- #item
127
- [node]="node"
128
- role="listitem"
129
- cdkDrag
130
- [cdkDragDisabled]="!getDragEnabled()"
131
- [cdkDragData]="[node]"
132
- esNodesDrag
133
- >
134
- </es-node-entries-card-small>
135
- </ng-container>
136
- <div
137
- *ngIf="dropTarget.active?.canDrop?.denyExplicit"
138
- class="card-grid-drop-blocked-container"
139
- >
140
- <i esIcon="cancel"></i>
141
- </div>
142
- <div *ngIf="dropTarget.active?.canDrop?.accept" class="card-grid-drop-allowed-container">
143
- <i
144
- [esIcon]="dropTarget.active.action === 'copy' ? 'add_circle_outline' : 'archive'"
145
- ></i>
146
- </div>
147
- </div>
148
- </ng-container>
149
- </div>
150
- </div>
151
- </ng-container>
152
- <ng-container
153
- *ngIf="
154
- !entriesService.dataSource.isLoading &&
155
- entriesService.dataSource.hasMore() &&
156
- !visibleItemsLimited &&
157
- entriesService.paginationStrategy === 'infinite-scroll' &&
158
- layout !== 'scroll'
159
- "
160
- >
161
- <div class="load-more">
162
- <button mat-button color="primary" (click)="loadData('button')">
163
- <i esIcon="refresh"></i>
164
- <span>{{ 'LOAD_MORE' | translate }}</span>
165
- </button>
166
- </div>
167
- </ng-container>
168
- <ng-container
169
- *ngIf="
170
- entriesService.dataSource.isLoading === true ||
171
- entriesService.dataSource.isLoading === 'initial' ||
172
- (entriesService.dataSource.isLoading === 'page' &&
173
- entriesService.paginationStrategy === 'infinite-scroll')
174
- "
175
- >
176
- <ng-container *ngTemplateOutlet="loading"></ng-container>
177
- </ng-container>
178
-
179
- <ng-template #loading>
180
- <es-spinner></es-spinner>
181
- </ng-template>
182
- <ng-template #scrollHelper>
183
- <ng-container *ngIf="layout === 'scroll'">
184
- <div
185
- class="scroll-helper-left"
186
- role="presentation"
187
- (click)="doScroll('left')"
188
- *ngIf="scroll.left"
189
- >
190
- <button mat-icon-button color="primary" (click)="$event.stopPropagation(); doScroll('left')">
191
- <i esIcon="keyboard_arrow_left" [aria]="true"></i>
192
- </button>
193
- </div>
194
- <div
195
- class="scroll-helper-right"
196
- role="presentation"
197
- (click)="doScroll('right')"
198
- *ngIf="scroll.right"
199
- >
200
- <button mat-icon-button color="primary" (click)="$event.stopPropagation(); doScroll('right')">
201
- <i esIcon="keyboard_arrow_right" [aria]="true"></i>
202
- </button>
203
- </div>
204
- </ng-container>
205
- </ng-template>