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,23 +0,0 @@
1
- @import '../../../assets/scss/mixins';
2
-
3
- @mixin card-top-bar-badge {
4
- display: flex;
5
- align-items: center;
6
- justify-content: center;
7
- user-select: none;
8
- border-radius: 50%;
9
- background-color: #fff;
10
- padding: 5px;
11
- position: relative;
12
- z-index: 1;
13
- @include materialShadow();
14
- i {
15
- // TODO: do we want to style based on collection type?
16
- font-size: 18px;
17
- color: #333;
18
- }
19
- img {
20
- width: 18px;
21
- height: 18px;
22
- }
23
- }
@@ -1,199 +0,0 @@
1
- import { NodeCache } from './node-cache';
2
-
3
- const ARRAY_0_5 = [0, 1, 2, 3, 4];
4
- const ARRAY_5_10 = [5, 6, 7, 8, 9];
5
- const ARRAY_0_10 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
6
-
7
- describe('NodeCache', () => {
8
- let nodeCache: NodeCache<number>;
9
-
10
- beforeEach(() => {
11
- nodeCache = new NodeCache();
12
- });
13
-
14
- it('should find an exact match from 0', () => {
15
- nodeCache.add({
16
- startIndex: 0,
17
- endIndex: 10,
18
- data: ARRAY_0_10,
19
- });
20
- expect(nodeCache.get({ startIndex: 0, endIndex: 10 })).toEqual(ARRAY_0_10);
21
- });
22
-
23
- it('should find an exact match from 10', () => {
24
- nodeCache.add({
25
- startIndex: 10,
26
- endIndex: 20,
27
- data: ARRAY_0_10,
28
- });
29
- expect(nodeCache.get({ startIndex: 10, endIndex: 20 })).toEqual(ARRAY_0_10);
30
- });
31
-
32
- it('should find an exact match among multiple slices', () => {
33
- nodeCache.add({
34
- startIndex: 0,
35
- endIndex: 10,
36
- data: ARRAY_0_10,
37
- });
38
- nodeCache.add({
39
- startIndex: 20,
40
- endIndex: 30,
41
- data: ARRAY_0_10,
42
- });
43
- expect(nodeCache.get({ startIndex: 20, endIndex: 30 })).toEqual(ARRAY_0_10);
44
- });
45
-
46
- it('should find a partial match', () => {
47
- nodeCache.add({
48
- startIndex: 0,
49
- endIndex: 10,
50
- data: ARRAY_0_10,
51
- });
52
- expect(nodeCache.get({ startIndex: 3, endIndex: 7 })).toEqual([3, 4, 5, 6]);
53
- });
54
-
55
- it('should merge two connected slices', () => {
56
- nodeCache.add({
57
- startIndex: 0,
58
- endIndex: 5,
59
- data: ARRAY_0_5,
60
- });
61
- nodeCache.add({
62
- startIndex: 5,
63
- endIndex: 10,
64
- data: ARRAY_5_10,
65
- });
66
- expect(nodeCache.get({ startIndex: 0, endIndex: 10 })).toEqual(ARRAY_0_10);
67
- });
68
-
69
- it('should remove residual slices', () => {
70
- nodeCache.add({
71
- startIndex: 0,
72
- endIndex: 5,
73
- data: ARRAY_0_5,
74
- });
75
- nodeCache.add({
76
- startIndex: 5,
77
- endIndex: 10,
78
- data: ARRAY_5_10,
79
- });
80
- expect(nodeCache['_slices'].length).toEqual(1);
81
- });
82
-
83
- it('should merge two reverse-connected slices', () => {
84
- nodeCache.add({
85
- startIndex: 5,
86
- endIndex: 10,
87
- data: ARRAY_5_10,
88
- });
89
- nodeCache.add({
90
- startIndex: 0,
91
- endIndex: 5,
92
- data: ARRAY_0_5,
93
- });
94
- expect(nodeCache.get({ startIndex: 0, endIndex: 10 })).toEqual(ARRAY_0_10);
95
- });
96
-
97
- it('should merge two overlapping slices', () => {
98
- nodeCache.add({
99
- startIndex: 0,
100
- endIndex: 7,
101
- data: [0, 1, 2, 3, 4, 5, 6],
102
- });
103
- nodeCache.add({
104
- startIndex: 3,
105
- endIndex: 8,
106
- data: [3, 4, 5, 6, 7],
107
- });
108
- expect(nodeCache.get({ startIndex: 0, endIndex: 8 })).toEqual([0, 1, 2, 3, 4, 5, 6, 7]);
109
- });
110
-
111
- it('should fill a gap', () => {
112
- nodeCache.add({
113
- startIndex: 0,
114
- endIndex: 3,
115
- data: [0, 1, 2],
116
- });
117
- nodeCache.add({
118
- startIndex: 6,
119
- endIndex: 9,
120
- data: [6, 7, 8],
121
- });
122
- nodeCache.add({
123
- startIndex: 3,
124
- endIndex: 6,
125
- data: [3, 4, 5],
126
- });
127
- expect(nodeCache.get({ startIndex: 0, endIndex: 9 })).toEqual([0, 1, 2, 3, 4, 5, 6, 7, 8]);
128
- });
129
-
130
- it('should find an exact missing range at the beginning', () => {
131
- nodeCache.add({
132
- startIndex: 6,
133
- endIndex: 9,
134
- data: [6, 7, 8],
135
- });
136
- expect(nodeCache.getMissingRange({ startIndex: 0, endIndex: 9 })).toEqual({
137
- startIndex: 0,
138
- endIndex: 6,
139
- });
140
- });
141
-
142
- it('should find an exact missing range at the end', () => {
143
- nodeCache.add({
144
- startIndex: 0,
145
- endIndex: 3,
146
- data: [0, 1, 2],
147
- });
148
- expect(nodeCache.getMissingRange({ startIndex: 0, endIndex: 9 })).toEqual({
149
- startIndex: 3,
150
- endIndex: 9,
151
- });
152
- });
153
-
154
- it('should find an exact missing range in the middle', () => {
155
- nodeCache.add({
156
- startIndex: 0,
157
- endIndex: 3,
158
- data: [0, 1, 2],
159
- });
160
- nodeCache.add({
161
- startIndex: 6,
162
- endIndex: 9,
163
- data: [6, 7, 8],
164
- });
165
- expect(nodeCache.getMissingRange({ startIndex: 0, endIndex: 9 })).toEqual({
166
- startIndex: 3,
167
- endIndex: 6,
168
- });
169
- });
170
-
171
- it('should find an overlapped missing range at the beginning', () => {
172
- nodeCache.add({
173
- startIndex: 6,
174
- endIndex: 9,
175
- data: [6, 7, 8],
176
- });
177
- expect(nodeCache.getMissingRange({ startIndex: 0, endIndex: 7 })).toEqual({
178
- startIndex: 0,
179
- endIndex: 6,
180
- });
181
- });
182
-
183
- it('should find an overlapped missing range in the middle', () => {
184
- nodeCache.add({
185
- startIndex: 0,
186
- endIndex: 3,
187
- data: [0, 1, 2],
188
- });
189
- nodeCache.add({
190
- startIndex: 6,
191
- endIndex: 9,
192
- data: [6, 7, 8],
193
- });
194
- expect(nodeCache.getMissingRange({ startIndex: 2, endIndex: 7 })).toEqual({
195
- startIndex: 3,
196
- endIndex: 6,
197
- });
198
- });
199
- });
@@ -1,81 +0,0 @@
1
- import { notNull } from '../util/functions';
2
-
3
- export interface NodeCacheRange {
4
- startIndex: number;
5
- endIndex: number;
6
- }
7
-
8
- export interface NodeCacheSlice<T> extends NodeCacheRange {
9
- data: readonly T[];
10
- }
11
-
12
- export class NodeCache<T> {
13
- private _slices: readonly NodeCacheSlice<T>[] = [];
14
-
15
- add(slice: NodeCacheSlice<T>): void {
16
- if (slice.endIndex - slice.startIndex !== slice.data.length) {
17
- throw new Error('Tried to add invalid slice to cache: ' + JSON.stringify(slice));
18
- }
19
- this._slices = this._normalizeSlices([...this._slices, slice]);
20
- }
21
-
22
- clear() {
23
- this._slices = [];
24
- }
25
-
26
- get(range: NodeCacheRange): T[] | null {
27
- for (const slice of this._slices) {
28
- if (slice.startIndex <= range.startIndex && slice.endIndex >= range.endIndex) {
29
- return slice.data.slice(
30
- range.startIndex - slice.startIndex,
31
- range.endIndex - slice.startIndex,
32
- );
33
- }
34
- }
35
- return null;
36
- }
37
-
38
- getMissingRange(requestedRange: NodeCacheRange): NodeCacheRange | null {
39
- let fromIndex = requestedRange.startIndex;
40
- let toIndex = requestedRange.endIndex;
41
- for (const slice of this._slices) {
42
- if (slice.startIndex <= fromIndex && slice.endIndex > fromIndex) {
43
- fromIndex = slice.endIndex;
44
- } else if (slice.startIndex < toIndex && slice.endIndex >= toIndex) {
45
- toIndex = slice.startIndex;
46
- }
47
- if (fromIndex >= toIndex) {
48
- return null;
49
- }
50
- }
51
- return { startIndex: fromIndex, endIndex: toIndex };
52
- }
53
-
54
- private _normalizeSlices(slices: NodeCacheSlice<T>[]): NodeCacheSlice<T>[] {
55
- slices.sort((lhs, rhs) => lhs.startIndex - rhs.startIndex);
56
- for (let i = 0; i < slices.length - 1; i++) {
57
- for (let j = i + 1; j < slices.length; j++) {
58
- if (this._canMerge(slices[i], slices[j])) {
59
- slices[i] = this._merge(slices[i], slices[j]);
60
- slices[j] = null; // Mark for deletion
61
- }
62
- }
63
- }
64
- return slices.filter(notNull);
65
- }
66
-
67
- private _canMerge(lhs: NodeCacheSlice<T>, rhs: NodeCacheSlice<T>): boolean {
68
- if (!lhs || !rhs) {
69
- return false;
70
- }
71
- return lhs.endIndex >= rhs.startIndex;
72
- }
73
-
74
- private _merge(lhs: NodeCacheSlice<T>, rhs: NodeCacheSlice<T>): NodeCacheSlice<T> {
75
- return {
76
- startIndex: lhs.startIndex,
77
- endIndex: rhs.endIndex,
78
- data: [...lhs.data, ...rhs.data.slice(lhs.endIndex - rhs.startIndex)],
79
- };
80
- }
81
- }
@@ -1,148 +0,0 @@
1
- import { DataSource } from '@angular/cdk/collections';
2
- import { BehaviorSubject, Observable, Subscription } from 'rxjs';
3
- import { ItemsCap } from './items-cap';
4
- import { Node, GenericAuthority, Pagination } from 'ngx-edu-sharing-api';
5
- import { Helper } from '../util/helper';
6
-
7
- export type LoadingState =
8
- // The data source is loading data for the first time.
9
- | 'initial'
10
- // Loading data after change of parameters, i.e., it will replace the current data when done.
11
- | 'reset'
12
- // Loading another page with unchanged parameters.
13
- | 'page'
14
- // Loading done.
15
- | false;
16
-
17
- export class NodeDataSource<T extends Node | GenericAuthority> extends DataSource<T> {
18
- protected dataStream = new BehaviorSubject<T[]>([]);
19
- private pagination$ = new BehaviorSubject<Pagination>(null);
20
- // Include `LoadingState` to be type-compatible to `NodeDataSourceRemote` although not used
21
- // here.
22
- public isLoadingSubject = new BehaviorSubject<LoadingState | boolean>(false);
23
- get isLoading() {
24
- return this.isLoadingSubject.value;
25
- }
26
- set isLoading(isLoading: LoadingState | boolean) {
27
- this.isLoadingSubject.next(isLoading);
28
- }
29
- initialPageLoaded = false;
30
- protected _itemsCap: ItemsCap<T> | null;
31
- get itemsCap(): ItemsCap<T> | null {
32
- return this._itemsCap;
33
- }
34
- set itemsCap(value: ItemsCap<T> | null) {
35
- this._itemsCap = value;
36
- this.connectRenderData();
37
- }
38
- protected renderData = new BehaviorSubject<T[]>([]);
39
- protected renderDataSubscription: Subscription | null;
40
-
41
- constructor(initialData: T[] = []) {
42
- super();
43
- this.setData(initialData);
44
- }
45
-
46
- connect(): Observable<T[]> {
47
- if (!this.renderDataSubscription) {
48
- this.connectRenderData();
49
- }
50
- return this.renderData;
51
- }
52
-
53
- private connectRenderData(): void {
54
- this.renderDataSubscription?.unsubscribe();
55
- if (this.itemsCap) {
56
- this.renderDataSubscription = this.itemsCap
57
- .connect(this.dataStream)
58
- .subscribe((data) => this.renderData.next(data));
59
- } else {
60
- this.renderDataSubscription = this.dataStream.subscribe((data) =>
61
- this.renderData.next(data),
62
- );
63
- }
64
- }
65
-
66
- connectPagination(): Observable<Pagination> {
67
- return this.pagination$;
68
- }
69
-
70
- disconnect() {}
71
-
72
- setData(data: T[], pagination: Pagination = null) {
73
- this.dataStream.next(data);
74
- this.setPagination(pagination);
75
- }
76
-
77
- appendData(appendData: T[], location: 'before' | 'after' = 'after') {
78
- let data = this.getData();
79
- if (location === 'after') {
80
- data = data.concat(appendData);
81
- } else {
82
- data = appendData.concat(data);
83
- }
84
- this.dataStream.next(data);
85
- }
86
-
87
- /**
88
- * Removes elements from the visible data.
89
- */
90
- removeData(toRemove: T[]): void {
91
- const newData = this.getData().filter(
92
- (value) =>
93
- !toRemove.some((d) => Helper.objectEquals((d as Node).ref, (value as Node).ref)),
94
- );
95
- const removedData = this.getData().filter((value) => !newData.includes(value));
96
- this.dataStream.next(newData);
97
- if (this.pagination$.value) {
98
- const pagination = this.pagination$.value;
99
- this.setPagination({
100
- count: pagination.count - removedData.length,
101
- from: pagination.from,
102
- total: pagination.total - removedData.length,
103
- });
104
- }
105
- }
106
-
107
- setPagination(pagination: Pagination) {
108
- this.pagination$.next(pagination);
109
- }
110
-
111
- reset() {
112
- this.setData([]);
113
- }
114
-
115
- hasMore() {
116
- if (!this.pagination$.value) {
117
- return undefined;
118
- }
119
- return this.pagination$.value.total > this.dataStream.value?.length;
120
- }
121
-
122
- // FIXME: This is somewhat dangerous because we rely on `connect` being called from outside, but
123
- // this method provides a way to access data without ever calling `connect`.
124
- getData() {
125
- return this.renderData.value;
126
- }
127
-
128
- isEmpty(): boolean {
129
- return this.dataStream.value?.length === 0;
130
- }
131
-
132
- getTotal() {
133
- return this.pagination$.value?.total ?? this.dataStream.value?.length ?? 0;
134
- }
135
-
136
- isFullyLoaded() {
137
- return this.getTotal() <= this.dataStream.value?.length;
138
- }
139
-
140
- /**
141
- * force a refresh of all elements in the current data stream
142
- * trigger this to enforce a rebuild of the nodes in all sub-components
143
- * i.e. if data from some nodes has changed
144
- */
145
- refresh() {
146
- this.dataStream.next(Helper.deepCopy(this.dataStream.value));
147
- }
148
- }
@@ -1,167 +0,0 @@
1
- <div
2
- class="grid-card"
3
- [class.grid-card-collection]="isCollection"
4
- [class.grid-card-virtual]="$any(node).virtual"
5
- [style.background-color]="isCollection ? node.collection.color : null"
6
- [class.dynamic-single-click]="entriesService.singleClickHint === 'dynamic'"
7
- [class.selected]="entriesService.selection.isSelected(node)"
8
- (contextmenu)="openContextmenu($event)"
9
- (keydown.ContextMenu)="openContextmenu($event)"
10
- >
11
- <div
12
- *ngIf="templatesService.overlay"
13
- class="card-overlay"
14
- (click)="
15
- entriesService.clickItem.emit({
16
- element: node,
17
- source: ClickSource.Overlay
18
- })
19
- "
20
- >
21
- <ng-container
22
- *ngTemplateOutlet="templatesService.overlay; context: { element: node }"
23
- ></ng-container>
24
- </div>
25
- <button
26
- *ngIf="dropdown"
27
- #menuTrigger="matMenuTrigger"
28
- mat-button
29
- class="dropdown-dummy cdk-visually-hidden"
30
- [style.left.px]="dropdownLeft"
31
- [style.top.px]="dropdownTop"
32
- [matMenuTriggerFor]="dropdown.menu"
33
- tabindex="-1"
34
- aria-hidden="true"
35
- ></button>
36
- <div class="card-top-bar" [style.background-color]="isCollection ? node.collection.color : null">
37
- <div class="card-top-bar-collection-color" *ngIf="nodeHelper.isNodeCollection(node)"></div>
38
- <es-node-type-badge [node]="node"></es-node-type-badge>
39
- <div *ngIf="isCollection && node.collection.pinned" class="card-top-bar-flag">
40
- <i esIcon="edu-pin"></i>
41
- </div>
42
- <div class="card-top-bar-empty"></div>
43
- <es-node-stats-badges [node]="node"></es-node-stats-badges>
44
- <div class="card-top-bar-checkbox" *ngIf="entriesService.checkbox">
45
- <mat-checkbox
46
- [checked]="entriesService.selection.isSelected(node)"
47
- (change)="entriesService.onCheckboxChanged(node, $event.checked)"
48
- aria-label="{{ 'SELECT' | translate : { element: (node | nodeTitle) } }}"
49
- ></mat-checkbox>
50
- </div>
51
- </div>
52
- <es-node-url
53
- *ngIf="entriesService.elementInteractionType === InteractionType.DefaultActionLink"
54
- mode="wrapper"
55
- [node]="node"
56
- esFocusState
57
- #cardFocusState="esFocusState"
58
- >
59
- <ng-container
60
- *ngTemplateOutlet="
61
- image;
62
- context: { playAnimation: cardFocusState.hovering || cardFocusState.hasFocus }
63
- "
64
- ></ng-container>
65
- <ng-container *ngTemplateOutlet="meta"></ng-container>
66
- </es-node-url>
67
- <div
68
- *ngIf="entriesService.elementInteractionType !== InteractionType.DefaultActionLink"
69
- matRipple
70
- (click)="
71
- entriesService.onClicked({
72
- event: $event,
73
- element: node,
74
- source: ClickSource.Metadata
75
- })
76
- "
77
- (dblclick)="
78
- entriesService.dblClickItem.emit({
79
- element: node,
80
- source: ClickSource.Metadata
81
- })
82
- "
83
- esFocusState
84
- #cardFocusState="esFocusState"
85
- >
86
- <ng-container
87
- *ngTemplateOutlet="
88
- image;
89
- context: { playAnimation: cardFocusState.hovering || cardFocusState.hasFocus }
90
- "
91
- ></ng-container>
92
- <ng-container *ngTemplateOutlet="meta"></ng-container>
93
- </div>
94
- <div class="card-options" *ngIf="entriesService.options || showRatings">
95
- <div class="card-rating-area">
96
- <es-node-rating [node]="node"></es-node-rating>
97
- </div>
98
- <div class="card-options-area">
99
- <es-option-button
100
- *ngFor="let option of optionsOnCard()"
101
- class="card-options-always"
102
- [option]="option"
103
- [node]="node"
104
- ></es-option-button>
105
- <div class="card-options-spacer"></div>
106
- <button
107
- *ngIf="dropdown"
108
- mat-icon-button
109
- color="primary"
110
- (click)="openMenu(node)"
111
- [matMenuTriggerFor]="dropdown.menu"
112
- [attr.aria-label]="'OPTIONS_FOR' | translate : { element: (node | nodeTitle) }"
113
- data-test="card-options-button"
114
- >
115
- <i esIcon="more_vert"></i>
116
- </button>
117
- </div>
118
- </div>
119
- <ng-template #image let-playAnimation="playAnimation">
120
- <div
121
- class="card-image-area"
122
- [style.background-color]="isCollection ? node.collection.color : null"
123
- >
124
- <ng-container *ngIf="getTemplate(CustomFieldSpecialType.preview) as ref">
125
- <ng-container *ngTemplateOutlet="ref; context: { node: this.node }"></ng-container>
126
- </ng-container>
127
- <ng-container *ngIf="!getTemplate(CustomFieldSpecialType.preview)">
128
- <es-preview-image
129
- *ngIf="!(isCollection && node.preview.isIcon)"
130
- [node]="node"
131
- [playAnimation]="playAnimation"
132
- ></es-preview-image>
133
- <div *ngIf="isCollection && node.preview.isIcon" class="card-collection-image">
134
- <i esIcon="layers"></i>
135
- </div>
136
- </ng-container>
137
- </div>
138
- </ng-template>
139
- <ng-template #meta let-link="link">
140
- <div class="card-meta">
141
- <div
142
- *ngFor="let displayPart of getVisibleColumns(); let first = first"
143
- class="card-meta-row card-meta-row-{{ displayPart.name | lowercase }}"
144
- [class.card-meta-row-primary]="first"
145
- >
146
- <ng-container *ngIf="first">
147
- <es-node-url
148
- *ngIf="entriesService.elementInteractionType === InteractionType.DefaultActionLink"
149
- [node]="node"
150
- #link
151
- >
152
- <es-list-base [item]="displayPart" [node]="node" [provideLabel]="false"> </es-list-base>
153
- </es-node-url>
154
- <div *ngIf="entriesService.elementInteractionType !== InteractionType.DefaultActionLink">
155
- <es-list-base [item]="displayPart" [node]="node" [provideLabel]="false"> </es-list-base>
156
- </div>
157
- </ng-container>
158
- <ng-container *ngIf="!first">
159
- <label>
160
- {{ displayPart | esListItemLabel | async }}
161
- </label>
162
- <es-list-base [item]="displayPart" [node]="node" [provideLabel]="false"> </es-list-base>
163
- </ng-container>
164
- </div>
165
- </div>
166
- </ng-template>
167
- </div>
@@ -1,28 +0,0 @@
1
- $imageHeight: 150px;
2
- $entriesCardPaddingHorizontal: 20px;
3
- $entriesCardPaddingVertical: 10px;
4
- $topBarHeight: 40px;
5
- $collectionIconPadding: 40px;
6
- $collectionIconSize: 40px;
7
-
8
- @import 'node-entries-card.main';
9
-
10
- .grid-card {
11
- grid-template-rows: $topBarHeight auto $optionBarHeight;
12
- .card-meta {
13
- .card-meta-row {
14
- > es-list-base {
15
- @include limitLineCount(2, 1.25);
16
- }
17
- }
18
- }
19
- }
20
- :host ::ng-deep {
21
- .grid-card {
22
- es-node-url {
23
- .node-url-wrapper {
24
- height: 100%;
25
- }
26
- }
27
- }
28
- }