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,40 +0,0 @@
1
- import { Component, Input, OnChanges, SimpleChanges } from '@angular/core';
2
- import { Target } from '../../types/option-item';
3
- import { ClickSource, InteractionType } from '../entries-model';
4
-
5
- import { NodeEntriesTemplatesService } from '../node-entries-templates.service';
6
- import { NodeEntriesService } from '../../services/node-entries.service';
7
- import { NodeHelperService } from '../../services/node-helper.service';
8
- import { Node } from 'ngx-edu-sharing-api';
9
-
10
- @Component({
11
- selector: 'es-node-entries-card-small',
12
- templateUrl: 'node-entries-card-small.component.html',
13
- styleUrls: ['node-entries-card-small.component.scss'],
14
- })
15
- export class NodeEntriesCardSmallComponent<T extends Node> implements OnChanges {
16
- readonly ClickSource = ClickSource;
17
- readonly InteractionType = InteractionType;
18
- readonly Target = Target;
19
- @Input() node: T;
20
- constructor(
21
- public entriesService: NodeEntriesService<T>,
22
- public nodeHelper: NodeHelperService,
23
- public templatesService: NodeEntriesTemplatesService,
24
- ) {}
25
-
26
- ngOnChanges(changes: SimpleChanges): void {}
27
- optionsOnCard() {
28
- const options = this.entriesService.options[Target.List];
29
- const always = options.filter((o) => o.showAlways);
30
- if (always.some((o) => o.showCallback(this.node))) {
31
- return always;
32
- }
33
- return options.filter((o) => o.showAsAction && o.showCallback(this.node)).slice(0, 3);
34
- }
35
-
36
- openContextmenu(event: MouseEvent | Event) {
37
- event.preventDefault();
38
- event.stopPropagation();
39
- }
40
- }
@@ -1,23 +0,0 @@
1
- <div
2
- *ngIf="entriesService.globalOptions?.length"
3
- role="listitem"
4
- class="global-options"
5
- [class.global-options-small]="displayType === NodeEntriesDisplayType.SmallGrid"
6
- [class.global-options-table]="displayType === NodeEntriesDisplayType.Table"
7
- >
8
- <button
9
- mat-button
10
- *ngFor="let option of entriesService.globalOptions"
11
- (click)="option.callback()"
12
- class="global-option-btn"
13
- attr.data-test="card-button-{{ option.name }}"
14
- >
15
- <ng-container *ngTemplateOutlet="globalOption; context: { option: this.option }"></ng-container>
16
- </button>
17
- </div>
18
- <ng-template #globalOption let-option="option">
19
- <span class="global-option">
20
- <i [esIcon]="option.icon"></i>
21
- <span class="label">{{ option.name | translate }}</span>
22
- </span>
23
- </ng-template>
@@ -1,58 +0,0 @@
1
- @import '../../../../assets/scss/variables';
2
- @import '../../../../assets/scss/mixins';
3
-
4
- .global-options {
5
- display: grid;
6
- grid-template-columns: auto;
7
- grid-template-rows: repeat(auto-fit, minmax(70px, 1fr));
8
- grid-row-gap: 20px;
9
- height: 100%;
10
- min-height: 250px;
11
- &.global-options-small {
12
- min-height: 130px;
13
- }
14
- &.global-options-table {
15
- min-height: 100px;
16
- grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
17
- grid-column-gap: 20px;
18
- }
19
- .global-option-btn {
20
- display: flex;
21
- height: 100%;
22
- padding: 0;
23
- }
24
- .global-option {
25
- cursor: pointer;
26
- display: flex;
27
- @include materialShadow();
28
- width: 100%;
29
- height: 100%;
30
- flex-direction: column;
31
- align-items: center;
32
- justify-content: center;
33
- border: 3px dashed var(--primary);
34
- color: var(--primary);
35
- > i {
36
- font-size: 32px;
37
- margin-bottom: 5px;
38
- }
39
- > .label {
40
- cursor: pointer;
41
- font-weight: bold;
42
- }
43
- &:hover,
44
- &:focus {
45
- background-color: rgb(var(--palette-primary-50));
46
- }
47
- }
48
- }
49
- :host ::ng-deep {
50
- .global-options {
51
- .global-option-btn {
52
- .mdc-button__label {
53
- width: 100%;
54
- height: 100%;
55
- }
56
- }
57
- }
58
- }
@@ -1,16 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
2
- import { Node } from 'ngx-edu-sharing-api';
3
- import { NodeEntriesDisplayType } from '../entries-model';
4
- import { NodeEntriesService } from '../../services/node-entries.service';
5
-
6
- @Component({
7
- selector: 'es-node-entries-global-options',
8
- templateUrl: './node-entries-global-options.component.html',
9
- styleUrls: ['./node-entries-global-options.component.scss'],
10
- changeDetection: ChangeDetectionStrategy.OnPush,
11
- })
12
- export class NodeEntriesGlobalOptionsComponent<T extends Node> {
13
- readonly NodeEntriesDisplayType = NodeEntriesDisplayType;
14
- @Input() displayType: NodeEntriesDisplayType;
15
- constructor(public entriesService: NodeEntriesService<T>) {}
16
- }
@@ -1,79 +0,0 @@
1
- import { Injectable, TemplateRef } from '@angular/core';
2
- import { Node } from 'ngx-edu-sharing-api';
3
- import { ListItemType } from '../types/list-item';
4
- import { Scope } from '../types/option-item';
5
-
6
- export type CustomField = {
7
- type: ListItemType;
8
- name: string | CustomFieldSpecialType;
9
- };
10
- export enum CustomFieldSpecialType {
11
- preview,
12
- type,
13
- }
14
- export type CustomFieldInfo = {
15
- type: ListItemType;
16
- /**
17
- * Either the property name (i.e. "cm:name") or a special value.
18
- */
19
- name: string | CustomFieldSpecialType;
20
-
21
- /**
22
- * Custom callback which should return true if the template should be used for the given item.
23
- */
24
- useCallback?: (node: Node) => boolean;
25
- templateRef: TemplateRef<unknown>;
26
- };
27
-
28
- export type PaginationStrategy = 'infinite-scroll' | 'paginator';
29
-
30
- type PaginationScope = Scope | 'DEFAULT';
31
- /**
32
- * this service is intended to add custom behaviour to the global tables & grid views
33
- */
34
- @Injectable({
35
- providedIn: 'root',
36
- })
37
- export class NodeEntriesGlobalService {
38
- private customFields: CustomFieldInfo[] = [];
39
- private paginationStrategy: { [key in PaginationScope]?: PaginationStrategy } = {
40
- [Scope.WorkspaceList]: 'infinite-scroll',
41
- [Scope.Search]: 'infinite-scroll',
42
- DEFAULT: 'infinite-scroll',
43
- };
44
- private paginatorSizeOptions: { [key in PaginationScope]?: number[] } = {
45
- DEFAULT: [25, 50, 75, 100],
46
- };
47
-
48
- constructor() {}
49
-
50
- public setPaginationStrategy(scope: PaginationScope, strategy: PaginationStrategy) {
51
- this.paginationStrategy[scope] = strategy;
52
- }
53
- public getPaginationStrategy(scope: Scope) {
54
- return this.paginationStrategy[scope] ?? this.paginationStrategy['DEFAULT'];
55
- }
56
- public setPaginatorSizeOptions(scope: PaginationScope, size: number[]) {
57
- this.paginatorSizeOptions[scope] = size;
58
- }
59
- public getPaginatorSizeOptions(scope: Scope) {
60
- return this.paginatorSizeOptions[scope] ?? this.paginatorSizeOptions['DEFAULT'];
61
- }
62
- public getCustomFieldTemplate(item: CustomField, node: Node) {
63
- return this.customFields.filter(
64
- (c) =>
65
- c.type === item.type &&
66
- c.name === item.name &&
67
- (!c.useCallback || c.useCallback(node)),
68
- )?.[0]?.templateRef;
69
- }
70
-
71
- /**
72
- * Registers a custom (node) attribute you want to render via the given template.
73
- *
74
- * You may also override existing attributes if you want to provide a custom view.
75
- */
76
- registerCustomFieldRendering(customFieldInfo: CustomFieldInfo) {
77
- this.customFields.push(customFieldInfo);
78
- }
79
- }
@@ -1,25 +0,0 @@
1
- <ng-template
2
- cdkConnectedOverlay
3
- [cdkConnectedOverlayOrigin]="origin"
4
- [cdkConnectedOverlayOpen]="columnChooserVisible"
5
- [cdkConnectedOverlayHasBackdrop]="true"
6
- [cdkConnectedOverlayFlexibleDimensions]="true"
7
- [cdkConnectedOverlayViewportMargin]="5"
8
- (backdropClick)="columnChooserVisibleChange.emit(false)"
9
- cdkConnectedOverlayBackdropClass="column-chooser-backdrop"
10
- >
11
- <div
12
- cdkDropList
13
- class="column-chooser mat-elevation-z2"
14
- (cdkDropListDropped)="columnChooserDrop($event)"
15
- >
16
- <div class="column-chooser-item" *ngFor="let column of columns; index as index" cdkDrag>
17
- <mat-checkbox [checked]="column.visible" (change)="columnChooserToggle(index)">
18
- {{ column | esListItemLabel | async }}
19
- </mat-checkbox>
20
- <div class="drag-handle" cdkDragHandle>
21
- <i esIcon="drag_handle"></i>
22
- </div>
23
- </div>
24
- </div>
25
- </ng-template>
@@ -1,32 +0,0 @@
1
- .column-chooser {
2
- max-width: 100%;
3
- border: solid 1px #ccc;
4
- min-height: 60px;
5
- display: block;
6
- background: white;
7
- border-radius: 4px;
8
- overflow: auto;
9
- }
10
-
11
- .column-chooser-item {
12
- border-bottom: solid 1px #ccc;
13
- color: rgba(0, 0, 0, 0.87);
14
- display: flex;
15
- flex-direction: row;
16
- align-items: center;
17
- background: white;
18
- font-size: 14px;
19
- justify-content: space-between;
20
- mat-checkbox {
21
- margin: 0 12px;
22
- }
23
- .drag-handle {
24
- color: rgba(0, 0, 0, 0.5);
25
- cursor: move;
26
- padding: 20px;
27
- }
28
- }
29
-
30
- .column-chooser-backdrop {
31
- background: none;
32
- }
@@ -1,31 +0,0 @@
1
- import { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';
2
- import { Component, EventEmitter, Input, Output } from '@angular/core';
3
- import { CdkOverlayOrigin } from '@angular/cdk/overlay';
4
- import { ListItem } from '../../../types/list-item';
5
-
6
- @Component({
7
- selector: 'es-column-chooser',
8
- templateUrl: './column-chooser.component.html',
9
- styleUrls: ['./column-chooser.component.scss'],
10
- })
11
- export class ColumnChooserComponent {
12
- @Input() origin: CdkOverlayOrigin;
13
- @Input() columnChooserVisible = false;
14
- @Output() columnChooserVisibleChange = new EventEmitter<boolean>();
15
-
16
- @Input() columns: ListItem[];
17
- @Output() columnsChange = new EventEmitter<ListItem[]>();
18
-
19
- constructor() {}
20
-
21
- columnChooserDrop(event: CdkDragDrop<string[]>) {
22
- moveItemInArray(this.columns, event.previousIndex, event.currentIndex);
23
- this.columnsChange.emit(this.columns);
24
- }
25
-
26
- columnChooserToggle(columnIndex: number): void {
27
- const column = this.columns[columnIndex];
28
- column.visible = !column.visible;
29
- this.columnsChange.emit(this.columns);
30
- }
31
- }
@@ -1,270 +0,0 @@
1
- <es-dropdown #dropdown [options]="entriesService.options?.[Target.ListDropdown]"></es-dropdown>
2
- <button
3
- #menuTrigger="matMenuTrigger"
4
- mat-button
5
- class="dropdown-dummy cdk-visually-hidden"
6
- [style.left.px]="dropdownLeft"
7
- [style.top.px]="dropdownTop"
8
- [matMenuTriggerFor]="dropdown.menu"
9
- tabindex="-1"
10
- aria-hidden="true"
11
- ></button>
12
- <es-node-entries-global-options
13
- *ngIf="entriesService.globalOptions?.length"
14
- [displayType]="NodeEntriesDisplayType.Table"
15
- >
16
- </es-node-entries-global-options>
17
- <mat-table
18
- [dataSource]="entriesService.dataSource"
19
- matSort
20
- [matSortDisableClear]="true"
21
- [matSortActive]="entriesService.sort?.active"
22
- [matSortDirection]="entriesService.sort?.direction"
23
- esInfiniteScroll
24
- (scrolled)="loadData('scroll')"
25
- >
26
- <!-- Checkbox Column -->
27
- <ng-container matColumnDef="select">
28
- <mat-header-cell *matHeaderCellDef>
29
- <mat-checkbox
30
- [ngModel]="entriesService.selection.selected.length > 0"
31
- [indeterminate]="
32
- entriesService.selection.selected.length > 0 &&
33
- entriesService.selection.selected.length !== entriesService.dataSource.getData().length
34
- "
35
- (ngModelChange)="toggleAll($event)"
36
- aria-label="{{ 'LIST_TABLE.TOGGLE_ALL' | translate }}"
37
- ></mat-checkbox>
38
- </mat-header-cell>
39
- <mat-cell *matCellDef="let node">
40
- <mat-checkbox
41
- [checked]="entriesService.selection.isSelected(node)"
42
- (change)="entriesService.onCheckboxChanged(node, $event.checked)"
43
- aria-label="{{ 'SELECT' | translate : { element: (node | nodeTitle) } }}"
44
- ></mat-checkbox>
45
- </mat-cell>
46
- </ng-container>
47
- <div matColumnDef="icon">
48
- <mat-header-cell *matHeaderCellDef class="cell-icon cell-count">
49
- ({{ entriesService.selection.selected.length
50
- }}<ng-container *ngIf="entriesService.dataSource?.getTotal() !== undefined">
51
- / {{ entriesService.dataSource?.getTotal() }}</ng-container
52
- >)
53
- </mat-header-cell>
54
- <mat-cell *matCellDef="let node" class="cell-icon">
55
- <ng-container
56
- *ngIf="entriesService.elementInteractionType === InteractionType.DefaultActionLink"
57
- >
58
- <ng-container *ngTemplateOutlet="icon; context: { node: this.node }"></ng-container>
59
- </ng-container>
60
- <div
61
- *ngIf="entriesService.elementInteractionType !== InteractionType.DefaultActionLink"
62
- (click)="
63
- entriesService.onClicked({ event: $event, element: node, source: ClickSource.Icon })
64
- "
65
- (dblclick)="entriesService.dblClickItem.emit({ element: node, source: ClickSource.Icon })"
66
- >
67
- <ng-container
68
- *ngTemplateOutlet="icon; context: { node: this.node }"
69
- (click)="
70
- entriesService.onClicked({ event: $event, element: node, source: ClickSource.Icon })
71
- "
72
- (dblclick)="entriesService.dblClickItem.emit({ element: node, source: ClickSource.Icon })"
73
- ></ng-container>
74
- </div>
75
- </mat-cell>
76
- </div>
77
- <ng-container matColumnDef="actions">
78
- <mat-header-cell *matHeaderCellDef>
79
- <button
80
- *ngIf="entriesService.configureColumns"
81
- mat-icon-button
82
- (click)="columnChooserVisible = !columnChooserVisible"
83
- cdkOverlayOrigin
84
- #columnChooserTrigger="cdkOverlayOrigin"
85
- [matTooltip]="'LIST_TABLE.CONFIGURE_COLUMNS' | translate"
86
- [attr.aria-label]="'LIST_TABLE.CONFIGURE_COLUMNS' | translate"
87
- >
88
- <i esIcon="settings"></i>
89
- </button>
90
- </mat-header-cell>
91
- <mat-cell *matCellDef="let node">
92
- <button
93
- mat-icon-button
94
- *ngIf="entriesService.options?.[Target.List]?.length"
95
- color="primary"
96
- (click)="openMenu(node)"
97
- [matMenuTriggerFor]="dropdown.menu"
98
- >
99
- <i esIcon="more_vert" [aria]="true"></i>
100
- </button>
101
- </mat-cell>
102
- </ng-container>
103
- <!-- Data Columns -->
104
- <ng-container
105
- *ngFor="let column of visibleDataColumns$ | async; let first = first"
106
- [matColumnDef]="column.name"
107
- >
108
- <ng-container>
109
- <mat-header-cell
110
- *matHeaderCellDef
111
- mat-sort-header
112
- [disabled]="!(entriesService.sort?.allowed && isSortable(column))"
113
- [class.mat-column-primary]="first"
114
- >{{ column | esListItemLabel | async }}</mat-header-cell
115
- >
116
- </ng-container>
117
- <mat-cell
118
- *matCellDef="let node"
119
- #cell
120
- [class.mat-column-primary]="first"
121
- attr.data-test="table-cell-{{ column.name }}"
122
- >
123
- <ng-container
124
- *ngIf="entriesService.elementInteractionType === InteractionType.DefaultActionLink"
125
- >
126
- <es-node-url cdkMonitorSubtreeFocus [node]="node" [mode]="first ? 'link' : 'wrapper'">
127
- <es-list-base
128
- [forceText]="true"
129
- [node]="node"
130
- [item]="column"
131
- esCheckTextOverflow
132
- #text="esCheckTextOverflow"
133
- [matTooltip]="text.hasTextOverflow() ? cell.innerText : null"
134
- matTooltipTouchGestures="off"
135
- ></es-list-base>
136
- </es-node-url>
137
- </ng-container>
138
- <es-list-base
139
- *ngIf="entriesService.elementInteractionType !== InteractionType.DefaultActionLink"
140
- [forceText]="true"
141
- [node]="node"
142
- [item]="column"
143
- (click)="
144
- entriesService.onClicked({
145
- event: $event,
146
- element: node,
147
- source: ClickSource.Metadata,
148
- attribute: column
149
- })
150
- "
151
- (dblclick)="
152
- entriesService.dblClickItem.emit({
153
- element: node,
154
- source: ClickSource.Metadata,
155
- attribute: column
156
- })
157
- "
158
- esCheckTextOverflow
159
- #text="esCheckTextOverflow"
160
- [matTooltip]="text.hasTextOverflow() ? cell.innerText : null"
161
- matTooltipTouchGestures="off"
162
- ></es-list-base>
163
- <ng-container *ngIf="first">
164
- <div class="childobjects" *ngIf="node.properties?.['virtual:childobjectcount'] > 0">
165
- <div
166
- class="childobject-count"
167
- matTooltip="{{
168
- 'CHILDOBJECT_COUNT'
169
- | translate : { count: node.properties['virtual:childobjectcount'] * 1 + 1 }
170
- }}"
171
- >
172
- <span>{{ node.properties['virtual:childobjectcount'] * 1 + 1 }}</span
173
- ><i esIcon="filter_none"></i>
174
- </div>
175
- </div>
176
- </ng-container>
177
- </mat-cell>
178
- </ng-container>
179
- <mat-header-row mat-header-row *matHeaderRowDef="visibleColumnNames$ | async"></mat-header-row>
180
- <mat-row
181
- mat-row
182
- matRipple
183
- cdkDrag
184
- esNodesDrag
185
- [cdkDragDisabled]="!entriesService.dragDrop?.dragAllowed || ui.isMobile()"
186
- [cdkDragData]="getDragData(node)"
187
- (cdkDragStarted)="onDragStarted(node)"
188
- (cdkDragEnded)="onDragEnded()"
189
- [esNodesDropTarget]="node"
190
- [canDropNodes]="canDrop"
191
- (nodeDropped)="drop($event)"
192
- class="mat-row"
193
- [class.mat-row-selected]="entriesService.selection.isSelected(node)"
194
- [class.selected-when-dragging]="isDragging && entriesService.selection.isSelected(node)"
195
- [class.mat-row-virtual]="node.virtual"
196
- [class.mat-row-virtual-first]="
197
- node.virtual && !$any(entriesService.dataSource.getData()[i - 1])?.virtual
198
- "
199
- [class.mat-row-virtual-last]="
200
- node.virtual && !$any(entriesService.dataSource.getData()[i + 1])?.virtual
201
- "
202
- [class.dynamic-single-click]="entriesService.singleClickHint === 'dynamic'"
203
- *matRowDef="let node; let i = index; let last = last; columns: visibleColumnNames$ | async"
204
- (contextmenu)="onRowContextMenu({ event: $event, node: node })"
205
- (keydown.ContextMenu)="onRowContextMenu({ event: $event, node: node })"
206
- >
207
- <es-drag-preview
208
- *cdkDragPreview
209
- [node]="node"
210
- [selected]="entriesService.selection.selected"
211
- [item]="(visibleDataColumns$ | async)[0]"
212
- ></es-drag-preview>
213
- </mat-row>
214
- </mat-table>
215
- <ng-container
216
- *ngIf="
217
- (entriesService.dataSource.isLoadingSubject | async) === false &&
218
- entriesService.dataSource.hasMore() &&
219
- entriesService.paginationStrategy === 'infinite-scroll'
220
- "
221
- >
222
- <div class="load-more">
223
- <button mat-button color="primary" (click)="loadData('button')">
224
- <i esIcon="refresh"></i>
225
- <span>{{ 'LOAD_MORE' | translate }}</span>
226
- </button>
227
- </div>
228
- </ng-container>
229
- <ng-container *ngIf="entriesService.dataSource.isLoadingSubject | async">
230
- <ng-container *ngTemplateOutlet="loading"> </ng-container>
231
- </ng-container>
232
- <!--
233
- <mat-paginator #paginator [pageSizeOptions]="pageSizeOptions"></mat-paginator>
234
- -->
235
-
236
- <!-- Wait for ready state to avoid changed-after-checked error when `columnChooserTrigger` becomes
237
- available. -->
238
- <es-column-chooser
239
- *ngIf="columnChooserTriggerReady"
240
- [(columns)]="entriesService.columns"
241
- [(columnChooserVisible)]="columnChooserVisible"
242
- [origin]="columnChooserTrigger"
243
- (columnsChange)="entriesService.columnsChange.emit($event)"
244
- ></es-column-chooser>
245
- <ng-template #loading>
246
- <es-spinner></es-spinner>
247
- </ng-template>
248
- <ng-template #icon let-node="node">
249
- <div class="icon-bg">
250
- <img
251
- *ngIf="node.iconURL"
252
- [src]="node | esNodeIcon | async"
253
- [alt]="
254
- node.mediatype
255
- ? ('NODE.mediatype' | translate) + ': ' + ('MEDIATYPE.' + node.mediatype | translate)
256
- : ''
257
- "
258
- [matTooltip]="
259
- node.mediatype
260
- ? ('NODE.mediatype' | translate) + ': ' + ('MEDIATYPE.' + node.mediatype | translate)
261
- : ''
262
- "
263
- matTooltipTouchGestures="off"
264
- />
265
- <i
266
- *ngIf="!node.iconURL"
267
- [esIcon]="node.authorityType ? (node.authorityType === 'GROUP' ? 'group' : 'person') : null"
268
- ></i>
269
- </div>
270
- </ng-template>