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
@@ -0,0 +1,41 @@
1
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/common";
4
+ import * as i2 from "@angular/forms";
5
+ import * as i3 from "../../directives/icon.directive";
6
+ import * as i4 from "../../sort-dropdown/sort-dropdown.component";
7
+ import * as i5 from "@angular/material/button";
8
+ import * as i6 from "@angular/material/menu";
9
+ import * as i7 from "@angular/material/slide-toggle";
10
+ import * as i8 from "@ngx-translate/core";
11
+ export class SortSelectPanelComponent {
12
+ constructor() {
13
+ this.sortChange = new EventEmitter();
14
+ this.customSortingInProgressChange = new EventEmitter();
15
+ }
16
+ onSort(event) {
17
+ this.sortChange.emit({
18
+ active: event.name,
19
+ direction: event.ascending ? 'asc' : 'desc',
20
+ });
21
+ }
22
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: SortSelectPanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
23
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.6", type: SortSelectPanelComponent, selector: "es-sort-select-panel", inputs: { active: "active", direction: "direction", columns: "columns", customSortingInProgress: "customSortingInProgress" }, outputs: { sortChange: "sortChange", customSortingInProgressChange: "customSortingInProgressChange" }, ngImport: i0, template: "<mat-slide-toggle\n *ngIf=\"active === 'ccm:collection_ordered_position'\"\n [(ngModel)]=\"customSortingInProgress\"\n (ngModelChange)=\"customSortingInProgressChange.emit($event)\"\n>\n {{ 'COLLECTIONS.SORT_SLIDER' | translate }}\n</mat-slide-toggle>\n<button\n *ngIf=\"sortDropdown.menu\"\n [matMenuTriggerFor]=\"sortDropdown.menu\"\n mat-button\n color=\"primary\"\n>\n <span *ngIf=\"active\">{{ 'NODE.' + active | translate }}</span>\n <span *ngIf=\"!active\">{{ 'SORT_BY' | translate }}</span>\n <i\n *ngIf=\"active && active !== 'ccm:collection_ordered_position'\"\n [esIcon]=\"'arrow_' + (direction === 'asc' ? 'upward' : 'downward')\"\n ></i>\n</button>\n<es-sort-dropdown\n #sortDropdown\n [columns]=\"columns\"\n [sortBy]=\"active\"\n [sortAscending]=\"direction === 'asc'\"\n (onSort)=\"onSort($event)\"\n></es-sort-dropdown>\n", styles: [":host{display:flex;justify-content:flex-end;align-items:center}mat-slide-toggle{margin-right:10px}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3.IconDirective, selector: "i[esIcon], i.material-icons", inputs: ["altText", "aria", "esIcon"] }, { kind: "component", type: i4.SortDropdownComponent, selector: "es-sort-dropdown", inputs: ["columns", "sortBy", "sortAscending"], outputs: ["onSort"] }, { kind: "component", type: i5.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i6.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "component", type: i7.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["disabled", "disableRipple", "color", "tabIndex"], exportAs: ["matSlideToggle"] }, { kind: "pipe", type: i8.TranslatePipe, name: "translate" }] }); }
24
+ }
25
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: SortSelectPanelComponent, decorators: [{
26
+ type: Component,
27
+ args: [{ selector: 'es-sort-select-panel', template: "<mat-slide-toggle\n *ngIf=\"active === 'ccm:collection_ordered_position'\"\n [(ngModel)]=\"customSortingInProgress\"\n (ngModelChange)=\"customSortingInProgressChange.emit($event)\"\n>\n {{ 'COLLECTIONS.SORT_SLIDER' | translate }}\n</mat-slide-toggle>\n<button\n *ngIf=\"sortDropdown.menu\"\n [matMenuTriggerFor]=\"sortDropdown.menu\"\n mat-button\n color=\"primary\"\n>\n <span *ngIf=\"active\">{{ 'NODE.' + active | translate }}</span>\n <span *ngIf=\"!active\">{{ 'SORT_BY' | translate }}</span>\n <i\n *ngIf=\"active && active !== 'ccm:collection_ordered_position'\"\n [esIcon]=\"'arrow_' + (direction === 'asc' ? 'upward' : 'downward')\"\n ></i>\n</button>\n<es-sort-dropdown\n #sortDropdown\n [columns]=\"columns\"\n [sortBy]=\"active\"\n [sortAscending]=\"direction === 'asc'\"\n (onSort)=\"onSort($event)\"\n></es-sort-dropdown>\n", styles: [":host{display:flex;justify-content:flex-end;align-items:center}mat-slide-toggle{margin-right:10px}\n"] }]
28
+ }], ctorParameters: function () { return []; }, propDecorators: { active: [{
29
+ type: Input
30
+ }], direction: [{
31
+ type: Input
32
+ }], columns: [{
33
+ type: Input
34
+ }], sortChange: [{
35
+ type: Output
36
+ }], customSortingInProgress: [{
37
+ type: Input
38
+ }], customSortingInProgressChange: [{
39
+ type: Output
40
+ }] } });
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ydC1zZWxlY3QtcGFuZWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWR1LXNoYXJpbmctdWkvc3JjL2xpYi9ub2RlLWVudHJpZXMvc29ydC1zZWxlY3QtcGFuZWwvc29ydC1zZWxlY3QtcGFuZWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWR1LXNoYXJpbmctdWkvc3JjL2xpYi9ub2RlLWVudHJpZXMvc29ydC1zZWxlY3QtcGFuZWwvc29ydC1zZWxlY3QtcGFuZWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7OztBQVN2RSxNQUFNLE9BQU8sd0JBQXdCO0lBUWpDO1FBSlUsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFFdEMsa0NBQTZCLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztJQUV2RCxDQUFDO0lBRWhCLE1BQU0sQ0FBQyxLQUFnQjtRQUNuQixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQztZQUNqQixNQUFNLEVBQUUsS0FBSyxDQUFDLElBQUk7WUFDbEIsU0FBUyxFQUFFLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTTtTQUM5QyxDQUFDLENBQUM7SUFDUCxDQUFDOzhHQWZRLHdCQUF3QjtrR0FBeEIsd0JBQXdCLGlTQ1RyQywrMUJBMkJBOzsyRkRsQmEsd0JBQXdCO2tCQUxwQyxTQUFTOytCQUNJLHNCQUFzQjswRUFLdkIsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNJLFVBQVU7c0JBQW5CLE1BQU07Z0JBQ0UsdUJBQXVCO3NCQUEvQixLQUFLO2dCQUNJLDZCQUE2QjtzQkFBdEMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTb3J0LCBTb3J0RGlyZWN0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc29ydCc7XG5pbXBvcnQgeyBMaXN0SXRlbVNvcnQsIFNvcnRFdmVudCwgU29ydFBhbmVsIH0gZnJvbSAnLi4vLi4vdHlwZXMvbGlzdC1pdGVtJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdlcy1zb3J0LXNlbGVjdC1wYW5lbCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NvcnQtc2VsZWN0LXBhbmVsLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9zb3J0LXNlbGVjdC1wYW5lbC5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBTb3J0U2VsZWN0UGFuZWxDb21wb25lbnQgaW1wbGVtZW50cyBTb3J0UGFuZWwge1xuICAgIEBJbnB1dCgpIGFjdGl2ZTogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGRpcmVjdGlvbjogU29ydERpcmVjdGlvbjtcbiAgICBASW5wdXQoKSBjb2x1bW5zOiBMaXN0SXRlbVNvcnRbXTtcbiAgICBAT3V0cHV0KCkgc29ydENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8U29ydD4oKTtcbiAgICBASW5wdXQoKSBjdXN0b21Tb3J0aW5nSW5Qcm9ncmVzczogYm9vbGVhbjtcbiAgICBAT3V0cHV0KCkgY3VzdG9tU29ydGluZ0luUHJvZ3Jlc3NDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgICBvblNvcnQoZXZlbnQ6IFNvcnRFdmVudCkge1xuICAgICAgICB0aGlzLnNvcnRDaGFuZ2UuZW1pdCh7XG4gICAgICAgICAgICBhY3RpdmU6IGV2ZW50Lm5hbWUsXG4gICAgICAgICAgICBkaXJlY3Rpb246IGV2ZW50LmFzY2VuZGluZyA/ICdhc2MnIDogJ2Rlc2MnLFxuICAgICAgICB9KTtcbiAgICB9XG59XG4iLCI8bWF0LXNsaWRlLXRvZ2dsZVxuICAqbmdJZj1cImFjdGl2ZSA9PT0gJ2NjbTpjb2xsZWN0aW9uX29yZGVyZWRfcG9zaXRpb24nXCJcbiAgWyhuZ01vZGVsKV09XCJjdXN0b21Tb3J0aW5nSW5Qcm9ncmVzc1wiXG4gIChuZ01vZGVsQ2hhbmdlKT1cImN1c3RvbVNvcnRpbmdJblByb2dyZXNzQ2hhbmdlLmVtaXQoJGV2ZW50KVwiXG4+XG4gIHt7ICdDT0xMRUNUSU9OUy5TT1JUX1NMSURFUicgfCB0cmFuc2xhdGUgfX1cbjwvbWF0LXNsaWRlLXRvZ2dsZT5cbjxidXR0b25cbiAgKm5nSWY9XCJzb3J0RHJvcGRvd24ubWVudVwiXG4gIFttYXRNZW51VHJpZ2dlckZvcl09XCJzb3J0RHJvcGRvd24ubWVudVwiXG4gIG1hdC1idXR0b25cbiAgY29sb3I9XCJwcmltYXJ5XCJcbj5cbiAgPHNwYW4gKm5nSWY9XCJhY3RpdmVcIj57eyAnTk9ERS4nICsgYWN0aXZlIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxuICA8c3BhbiAqbmdJZj1cIiFhY3RpdmVcIj57eyAnU09SVF9CWScgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gIDxpXG4gICAgKm5nSWY9XCJhY3RpdmUgJiYgYWN0aXZlICE9PSAnY2NtOmNvbGxlY3Rpb25fb3JkZXJlZF9wb3NpdGlvbidcIlxuICAgIFtlc0ljb25dPVwiJ2Fycm93XycgKyAoZGlyZWN0aW9uID09PSAnYXNjJyA/ICd1cHdhcmQnIDogJ2Rvd253YXJkJylcIlxuICA+PC9pPlxuPC9idXR0b24+XG48ZXMtc29ydC1kcm9wZG93blxuICAjc29ydERyb3Bkb3duXG4gIFtjb2x1bW5zXT1cImNvbHVtbnNcIlxuICBbc29ydEJ5XT1cImFjdGl2ZVwiXG4gIFtzb3J0QXNjZW5kaW5nXT1cImRpcmVjdGlvbiA9PT0gJ2FzYydcIlxuICAob25Tb3J0KT1cIm9uU29ydCgkZXZlbnQpXCJcbj48L2VzLXNvcnQtZHJvcGRvd24+XG4iXX0=
@@ -0,0 +1,128 @@
1
+ import { Component, EventEmitter, Input, Output, ViewChild, } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "../services/node-helper.service";
4
+ import * as i2 from "@angular/common";
5
+ import * as i3 from "@angular/material/core";
6
+ import * as i4 from "@angular/router";
7
+ // TODO: Decide if providing focus highlights and ripples with this component is a good idea. When
8
+ // using `app-node-url` for cards, we might need highlights and ripples for the whole card while
9
+ // `app-node-url` should only wrap the title since links with lots of content confuse screen
10
+ // readers.
11
+ const NODE_URL_TAG_NAME = 'es-node-url';
12
+ export class NodeUrlComponent {
13
+ constructor(nodeHelper, elementRef) {
14
+ this.nodeHelper = nodeHelper;
15
+ this.elementRef = elementRef;
16
+ /**
17
+ * custom query params to include
18
+ */
19
+ this.queryParams = {};
20
+ /**
21
+ * link: a element
22
+ * button: button element
23
+ * wrapper: div element with behavior "like" a link
24
+ */
25
+ this.mode = 'link';
26
+ this.disabled = false;
27
+ /**
28
+ * Show the ripple effect even when disabled.
29
+ *
30
+ * @deprecated Temporary workaround for list-table, which *sometimes* uses it's on click
31
+ * bindings.
32
+ */
33
+ this.alwaysRipple = false;
34
+ this.ariaLabel = true;
35
+ this.buttonClick = new EventEmitter();
36
+ }
37
+ ngAfterViewInit() {
38
+ setTimeout(() => {
39
+ this.isNested = this.getIsNested();
40
+ });
41
+ }
42
+ getState() {
43
+ return {
44
+ scope: this.scope,
45
+ };
46
+ }
47
+ get(mode) {
48
+ const result = this.nodeHelper.getNodeLink(mode, this.node);
49
+ if (mode === 'queryParams' && this.queryParams) {
50
+ Object.keys(this.queryParams).forEach((k) => (result[k] = this.queryParams[k]));
51
+ }
52
+ return result;
53
+ }
54
+ focus() {
55
+ this.link.nativeElement.focus();
56
+ }
57
+ clickWrapper(event) {
58
+ const eventCopy = copyClickEvent(event);
59
+ this.link.nativeElement.dispatchEvent(eventCopy);
60
+ event.preventDefault();
61
+ }
62
+ getIsNested() {
63
+ let ancestor = this.elementRef.nativeElement.parentElement;
64
+ while (ancestor) {
65
+ if (ancestor.tagName === NODE_URL_TAG_NAME.toUpperCase()) {
66
+ return true;
67
+ }
68
+ ancestor = ancestor.parentElement;
69
+ }
70
+ return false;
71
+ }
72
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: NodeUrlComponent, deps: [{ token: i1.NodeHelperService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
73
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.6", type: NodeUrlComponent, selector: "es-node-url", inputs: { node: "node", nodes: "nodes", target: "target", scope: "scope", queryParams: "queryParams", mode: "mode", disabled: "disabled", alwaysRipple: "alwaysRipple", ariaDescribedby: ["aria-describedby", "ariaDescribedby"], ariaLabel: ["aria-label", "ariaLabel"] }, outputs: { buttonClick: "buttonClick" }, viewQueries: [{ propertyName: "link", first: true, predicate: ["link"], descendants: true }], ngImport: i0, template: "<ng-template #content><ng-content></ng-content></ng-template>\n<ng-container *ngIf=\"mode === 'link'\">\n <a\n *ngIf=\"!disabled\"\n #link\n matRipple\n matRippleColor=\"primary\"\n [matRippleDisabled]=\"isNested\"\n [routerLink]=\"get('routerLink')\"\n [state]=\"getState()\"\n [target]=\"target\"\n [queryParams]=\"get('queryParams')\"\n queryParamsHandling=\"merge\"\n cdkMonitorElementFocus\n [attr.aria-label]=\"ariaLabel ? node.name : null\"\n [attr.aria-describedby]=\"ariaDescribedby\"\n >\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </a>\n <!-- We use `div`s instead of `span`s here because the legacy `ListTable` component will insert\n `div` elements into this component's content. However, this will lead to invalid HTML for \"button\"\n mode. So really, users of this component should only insert flow content. -->\n <div *ngIf=\"disabled && !alwaysRipple\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </div>\n <div *ngIf=\"disabled && alwaysRipple\" matRipple matRippleColor=\"primary\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </div>\n</ng-container>\n<ng-container *ngIf=\"mode === 'wrapper'\">\n <div\n class=\"node-url-wrapper\"\n #wrapper\n matRipple\n matRippleColor=\"primary\"\n [matRippleDisabled]=\"disabled && !alwaysRipple\"\n (click)=\"clickWrapper($event)\"\n (auxclick)=\"clickWrapper($event)\"\n >\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </div>\n <!-- An invisible link that will by clicked programmatically by `clickWrapper()`. -->\n <a\n #link\n [routerLink]=\"get('routerLink')\"\n [state]=\"getState()\"\n [queryParams]=\"get('queryParams')\"\n queryParamsHandling=\"merge\"\n tabindex=\"-1\"\n aria-hidden=\"true\"\n class=\"cdk-visually-hidden\"\n ></a>\n</ng-container>\n<ng-container *ngIf=\"mode === 'button'\">\n <button\n [disabled]=\"disabled\"\n #link\n matRipple\n matRippleColor=\"primary\"\n [matRippleDisabled]=\"disabled && !alwaysRipple\"\n (click)=\"buttonClick.emit($event)\"\n cdkMonitorElementFocus\n >\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </button>\n</ng-container>\n", styles: [":host{position:relative;display:flex}:host>*{flex-grow:1}:host>a{text-decoration:none}.cdk-keyboard-focused{outline:none;outline:var(--focusWidth) solid var(--palette-primary-300);outline-offset:2px}button{background-color:unset;border:unset;padding:unset;text-align:unset}div.node-url-wrapper{cursor:pointer}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }, { kind: "directive", type: i4.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }] }); }
74
+ }
75
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: NodeUrlComponent, decorators: [{
76
+ type: Component,
77
+ args: [{ selector: NODE_URL_TAG_NAME, template: "<ng-template #content><ng-content></ng-content></ng-template>\n<ng-container *ngIf=\"mode === 'link'\">\n <a\n *ngIf=\"!disabled\"\n #link\n matRipple\n matRippleColor=\"primary\"\n [matRippleDisabled]=\"isNested\"\n [routerLink]=\"get('routerLink')\"\n [state]=\"getState()\"\n [target]=\"target\"\n [queryParams]=\"get('queryParams')\"\n queryParamsHandling=\"merge\"\n cdkMonitorElementFocus\n [attr.aria-label]=\"ariaLabel ? node.name : null\"\n [attr.aria-describedby]=\"ariaDescribedby\"\n >\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </a>\n <!-- We use `div`s instead of `span`s here because the legacy `ListTable` component will insert\n `div` elements into this component's content. However, this will lead to invalid HTML for \"button\"\n mode. So really, users of this component should only insert flow content. -->\n <div *ngIf=\"disabled && !alwaysRipple\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </div>\n <div *ngIf=\"disabled && alwaysRipple\" matRipple matRippleColor=\"primary\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </div>\n</ng-container>\n<ng-container *ngIf=\"mode === 'wrapper'\">\n <div\n class=\"node-url-wrapper\"\n #wrapper\n matRipple\n matRippleColor=\"primary\"\n [matRippleDisabled]=\"disabled && !alwaysRipple\"\n (click)=\"clickWrapper($event)\"\n (auxclick)=\"clickWrapper($event)\"\n >\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </div>\n <!-- An invisible link that will by clicked programmatically by `clickWrapper()`. -->\n <a\n #link\n [routerLink]=\"get('routerLink')\"\n [state]=\"getState()\"\n [queryParams]=\"get('queryParams')\"\n queryParamsHandling=\"merge\"\n tabindex=\"-1\"\n aria-hidden=\"true\"\n class=\"cdk-visually-hidden\"\n ></a>\n</ng-container>\n<ng-container *ngIf=\"mode === 'button'\">\n <button\n [disabled]=\"disabled\"\n #link\n matRipple\n matRippleColor=\"primary\"\n [matRippleDisabled]=\"disabled && !alwaysRipple\"\n (click)=\"buttonClick.emit($event)\"\n cdkMonitorElementFocus\n >\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </button>\n</ng-container>\n", styles: [":host{position:relative;display:flex}:host>*{flex-grow:1}:host>a{text-decoration:none}.cdk-keyboard-focused{outline:none;outline:var(--focusWidth) solid var(--palette-primary-300);outline-offset:2px}button{background-color:unset;border:unset;padding:unset;text-align:unset}div.node-url-wrapper{cursor:pointer}\n"] }]
78
+ }], ctorParameters: function () { return [{ type: i1.NodeHelperService }, { type: i0.ElementRef }]; }, propDecorators: { link: [{
79
+ type: ViewChild,
80
+ args: ['link']
81
+ }], node: [{
82
+ type: Input
83
+ }], nodes: [{
84
+ type: Input
85
+ }], target: [{
86
+ type: Input
87
+ }], scope: [{
88
+ type: Input
89
+ }], queryParams: [{
90
+ type: Input
91
+ }], mode: [{
92
+ type: Input
93
+ }], disabled: [{
94
+ type: Input
95
+ }], alwaysRipple: [{
96
+ type: Input
97
+ }], ariaDescribedby: [{
98
+ type: Input,
99
+ args: ['aria-describedby']
100
+ }], ariaLabel: [{
101
+ type: Input,
102
+ args: ['aria-label']
103
+ }], buttonClick: [{
104
+ type: Output
105
+ }] } });
106
+ function copyClickEvent(event) {
107
+ // On Firefox, a middle click via neither the 'click', nor the 'auxclick' event cause a new tab
108
+ // to be opened when triggered programmatically. As a workaround, we simulate a ctrl click
109
+ // instead of a middle click. This matches Firefox's defaults, but we cannot account for
110
+ // changed middle-click behavior.
111
+ if (event.type === 'auxclick' && event.button === 1 && isFirefox()) {
112
+ return copyClickEvent({ ...event, type: 'click', ctrlKey: true, button: 0 });
113
+ }
114
+ // It would seem better to use `event.type` instead of hard-coding 'click', but that doesn't
115
+ // have the desired effect for non-click events when dispatched.
116
+ return new MouseEvent('click', {
117
+ cancelable: true,
118
+ button: event.button,
119
+ ctrlKey: event.ctrlKey,
120
+ shiftKey: event.shiftKey,
121
+ altKey: event.altKey,
122
+ metaKey: event.metaKey,
123
+ });
124
+ }
125
+ function isFirefox() {
126
+ return navigator.userAgent.includes('Firefox');
127
+ }
128
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS11cmwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWR1LXNoYXJpbmctdWkvc3JjL2xpYi9ub2RlLXVybC9ub2RlLXVybC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lZHUtc2hhcmluZy11aS9zcmMvbGliL25vZGUtdXJsL25vZGUtdXJsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFSCxTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxHQUNaLE1BQU0sZUFBZSxDQUFDOzs7Ozs7QUFJdkIsa0dBQWtHO0FBQ2xHLGdHQUFnRztBQUNoRyw0RkFBNEY7QUFDNUYsV0FBVztBQUVYLE1BQU0saUJBQWlCLEdBQUcsYUFBYSxDQUFDO0FBT3hDLE1BQU0sT0FBTyxnQkFBZ0I7SUEwQ3pCLFlBQ1ksVUFBNkIsRUFDN0IsVUFBbUM7UUFEbkMsZUFBVSxHQUFWLFVBQVUsQ0FBbUI7UUFDN0IsZUFBVSxHQUFWLFVBQVUsQ0FBeUI7UUFyQy9DOztXQUVHO1FBQ00sZ0JBQVcsR0FBaUQsRUFBRSxDQUFDO1FBQ3hFOzs7O1dBSUc7UUFDTSxTQUFJLEdBQWtDLE1BQU0sQ0FBQztRQUM3QyxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQzFCOzs7OztXQUtHO1FBQ00saUJBQVksR0FBRyxLQUFLLENBQUM7UUFFVCxjQUFTLEdBQUcsSUFBSSxDQUFDO1FBRTVCLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQWMsQ0FBQztJQWlCcEQsQ0FBQztJQUVKLGVBQWU7UUFDWCxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ1osSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDdkMsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsUUFBUTtRQUNKLE9BQU87WUFDSCxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7U0FDcEIsQ0FBQztJQUNOLENBQUM7SUFFRCxHQUFHLENBQUMsSUFBa0M7UUFDbEMsTUFBTSxNQUFNLEdBQVEsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNqRSxJQUFJLElBQUksS0FBSyxhQUFhLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUM1QyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ25GO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDbEIsQ0FBQztJQUVELEtBQUs7UUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNwQyxDQUFDO0lBRUQsWUFBWSxDQUFDLEtBQWlCO1FBQzFCLE1BQU0sU0FBUyxHQUFHLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN4QyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDakQsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFTyxXQUFXO1FBQ2YsSUFBSSxRQUFRLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDO1FBQzNELE9BQU8sUUFBUSxFQUFFO1lBQ2IsSUFBSSxRQUFRLENBQUMsT0FBTyxLQUFLLGlCQUFpQixDQUFDLFdBQVcsRUFBRSxFQUFFO2dCQUN0RCxPQUFPLElBQUksQ0FBQzthQUNmO1lBQ0QsUUFBUSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUM7U0FDckM7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDOzhHQXRGUSxnQkFBZ0I7a0dBQWhCLGdCQUFnQixzY0N4QjdCLHN1RUFrRUE7OzJGRDFDYSxnQkFBZ0I7a0JBTDVCLFNBQVM7K0JBQ0ksaUJBQWlCO2lJQUtSLElBQUk7c0JBQXRCLFNBQVM7dUJBQUMsTUFBTTtnQkFFUixJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBSUcsV0FBVztzQkFBbkIsS0FBSztnQkFNRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFPRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNxQixlQUFlO3NCQUF6QyxLQUFLO3VCQUFDLGtCQUFrQjtnQkFDSixTQUFTO3NCQUE3QixLQUFLO3VCQUFDLFlBQVk7Z0JBRVQsV0FBVztzQkFBcEIsTUFBTTs7QUE2RFgsU0FBUyxjQUFjLENBQUMsS0FBaUI7SUFDckMsK0ZBQStGO0lBQy9GLDBGQUEwRjtJQUMxRix3RkFBd0Y7SUFDeEYsaUNBQWlDO0lBQ2pDLElBQUksS0FBSyxDQUFDLElBQUksS0FBSyxVQUFVLElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksU0FBUyxFQUFFLEVBQUU7UUFDaEUsT0FBTyxjQUFjLENBQUMsRUFBRSxHQUFHLEtBQUssRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7S0FDaEY7SUFDRCw0RkFBNEY7SUFDNUYsZ0VBQWdFO0lBQ2hFLE9BQU8sSUFBSSxVQUFVLENBQUMsT0FBTyxFQUFFO1FBQzNCLFVBQVUsRUFBRSxJQUFJO1FBQ2hCLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTTtRQUNwQixPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU87UUFDdEIsUUFBUSxFQUFFLEtBQUssQ0FBQyxRQUFRO1FBQ3hCLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTTtRQUNwQixPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU87S0FDekIsQ0FBQyxDQUFDO0FBQ1AsQ0FBQztBQUVELFNBQVMsU0FBUztJQUNkLE9BQU8sU0FBUyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDbkQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSW5wdXQsXG4gICAgT3V0cHV0LFxuICAgIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOb2RlIH0gZnJvbSAnbmd4LWVkdS1zaGFyaW5nLWFwaSc7XG5pbXBvcnQgeyBOb2RlSGVscGVyU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL25vZGUtaGVscGVyLnNlcnZpY2UnO1xuXG4vLyBUT0RPOiBEZWNpZGUgaWYgcHJvdmlkaW5nIGZvY3VzIGhpZ2hsaWdodHMgYW5kIHJpcHBsZXMgd2l0aCB0aGlzIGNvbXBvbmVudCBpcyBhIGdvb2QgaWRlYS4gV2hlblxuLy8gdXNpbmcgYGFwcC1ub2RlLXVybGAgZm9yIGNhcmRzLCB3ZSBtaWdodCBuZWVkIGhpZ2hsaWdodHMgYW5kIHJpcHBsZXMgZm9yIHRoZSB3aG9sZSBjYXJkIHdoaWxlXG4vLyBgYXBwLW5vZGUtdXJsYCBzaG91bGQgb25seSB3cmFwIHRoZSB0aXRsZSBzaW5jZSBsaW5rcyB3aXRoIGxvdHMgb2YgY29udGVudCBjb25mdXNlIHNjcmVlblxuLy8gcmVhZGVycy5cblxuY29uc3QgTk9ERV9VUkxfVEFHX05BTUUgPSAnZXMtbm9kZS11cmwnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogTk9ERV9VUkxfVEFHX05BTUUsXG4gICAgdGVtcGxhdGVVcmw6ICdub2RlLXVybC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJ25vZGUtdXJsLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIE5vZGVVcmxDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgICBAVmlld0NoaWxkKCdsaW5rJykgbGluazogRWxlbWVudFJlZjxIVE1MQW5jaG9yRWxlbWVudD47XG5cbiAgICBASW5wdXQoKSBub2RlOiBOb2RlO1xuICAgIEBJbnB1dCgpIG5vZGVzOiBOb2RlW107XG4gICAgQElucHV0KCkgdGFyZ2V0OiBzdHJpbmc7XG4gICAgQElucHV0KCkgc2NvcGU6IHN0cmluZztcbiAgICAvKipcbiAgICAgKiBjdXN0b20gcXVlcnkgcGFyYW1zIHRvIGluY2x1ZGVcbiAgICAgKi9cbiAgICBASW5wdXQoKSBxdWVyeVBhcmFtczogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIH0gPSB7fTtcbiAgICAvKipcbiAgICAgKiBsaW5rOiBhIGVsZW1lbnRcbiAgICAgKiBidXR0b246IGJ1dHRvbiBlbGVtZW50XG4gICAgICogd3JhcHBlcjogZGl2IGVsZW1lbnQgd2l0aCBiZWhhdmlvciBcImxpa2VcIiBhIGxpbmtcbiAgICAgKi9cbiAgICBASW5wdXQoKSBtb2RlOiAnbGluaycgfCAnYnV0dG9uJyB8ICd3cmFwcGVyJyA9ICdsaW5rJztcbiAgICBASW5wdXQoKSBkaXNhYmxlZCA9IGZhbHNlO1xuICAgIC8qKlxuICAgICAqIFNob3cgdGhlIHJpcHBsZSBlZmZlY3QgZXZlbiB3aGVuIGRpc2FibGVkLlxuICAgICAqXG4gICAgICogQGRlcHJlY2F0ZWQgVGVtcG9yYXJ5IHdvcmthcm91bmQgZm9yIGxpc3QtdGFibGUsIHdoaWNoICpzb21ldGltZXMqIHVzZXMgaXQncyBvbiBjbGlja1xuICAgICAqIGJpbmRpbmdzLlxuICAgICAqL1xuICAgIEBJbnB1dCgpIGFsd2F5c1JpcHBsZSA9IGZhbHNlO1xuICAgIEBJbnB1dCgnYXJpYS1kZXNjcmliZWRieScpIGFyaWFEZXNjcmliZWRieTogc3RyaW5nO1xuICAgIEBJbnB1dCgnYXJpYS1sYWJlbCcpIGFyaWFMYWJlbCA9IHRydWU7XG5cbiAgICBAT3V0cHV0KCkgYnV0dG9uQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPE1vdXNlRXZlbnQ+KCk7XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRoaXMgaW5zdGFuY2Ugb2YgYE5vZGVVcmxgIGlzIG5lc3RlZCBpbnNpZGUgYW5vdGhlciBgTm9kZVVybGAuXG4gICAgICovXG4gICAgLy8gV2UgdXNlIG5lc3RlZCBgTm9kZVVybGBzIGZvciBhMTF5IHdoZXJlIHdlIGhhdmUgYSBgTm9kZVVybGAgaW4gd3JhcHBlciBtb2RlIHRvIG1heGltaXplXG4gICAgLy8gY2xpY2thYmxlIGFyZWEgYW5kIG9uZSBpbiAgbGluayBtb2RlIHRoYXQgb25seSBjb250YWlucyB0aGUgdGl0bGUuIFdlIG9ubHkgd2FudCB0aGUgb3V0bW9zdFxuICAgIC8vIGBOb2RlVXJsYCB0byBhcHBseSB0aGUgcmlwcGxlIGVmZmVjdC5cbiAgICAvL1xuICAgIC8vIE5vdGUgdGhhdCBuZXN0aW5nIGBOb2RlVXJsYHMgaXMgb25seSBuZWNlc3Nhcnkgd2hlbiB3ZSB3YW50IHRvIHByb3ZpZGUgaG92ZXIgZWZmZWN0cyBvbiBwYXJ0c1xuICAgIC8vIG9mIHRoZSBvdXRlciBgTm9kZVVybGAuIElmIHdlIGRvbid0IG5lZWQgdGhhdCwgaXQgd291bGQgYmUgZWFzaWVyIHRvIGF0dGFjaCBhIHBzZXVkbyBgOmFmdGVyYFxuICAgIC8vIGVsZW1lbnQgdG8gdGhlIGlubmVyIGBOb2RlVXJsYCB0aGF0IGV4cGFuZHMgaXRzIGNsaWNrIGFyZWEuXG4gICAgaXNOZXN0ZWQ6IGJvb2xlYW47XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBub2RlSGVscGVyOiBOb2RlSGVscGVyU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcbiAgICApIHt9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5pc05lc3RlZCA9IHRoaXMuZ2V0SXNOZXN0ZWQoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgZ2V0U3RhdGUoKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBzY29wZTogdGhpcy5zY29wZSxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBnZXQobW9kZTogJ3JvdXRlckxpbmsnIHwgJ3F1ZXJ5UGFyYW1zJyk6IGFueSB7XG4gICAgICAgIGNvbnN0IHJlc3VsdDogYW55ID0gdGhpcy5ub2RlSGVscGVyLmdldE5vZGVMaW5rKG1vZGUsIHRoaXMubm9kZSk7XG4gICAgICAgIGlmIChtb2RlID09PSAncXVlcnlQYXJhbXMnICYmIHRoaXMucXVlcnlQYXJhbXMpIHtcbiAgICAgICAgICAgIE9iamVjdC5rZXlzKHRoaXMucXVlcnlQYXJhbXMpLmZvckVhY2goKGspID0+IChyZXN1bHRba10gPSB0aGlzLnF1ZXJ5UGFyYW1zW2tdKSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICBmb2N1cygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5saW5rLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICB9XG5cbiAgICBjbGlja1dyYXBwZXIoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICAgICAgY29uc3QgZXZlbnRDb3B5ID0gY29weUNsaWNrRXZlbnQoZXZlbnQpO1xuICAgICAgICB0aGlzLmxpbmsubmF0aXZlRWxlbWVudC5kaXNwYXRjaEV2ZW50KGV2ZW50Q29weSk7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRJc05lc3RlZCgpOiBib29sZWFuIHtcbiAgICAgICAgbGV0IGFuY2VzdG9yID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucGFyZW50RWxlbWVudDtcbiAgICAgICAgd2hpbGUgKGFuY2VzdG9yKSB7XG4gICAgICAgICAgICBpZiAoYW5jZXN0b3IudGFnTmFtZSA9PT0gTk9ERV9VUkxfVEFHX05BTUUudG9VcHBlckNhc2UoKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYW5jZXN0b3IgPSBhbmNlc3Rvci5wYXJlbnRFbGVtZW50O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG59XG5cbmZ1bmN0aW9uIGNvcHlDbGlja0V2ZW50KGV2ZW50OiBNb3VzZUV2ZW50KTogTW91c2VFdmVudCB7XG4gICAgLy8gT24gRmlyZWZveCwgYSBtaWRkbGUgY2xpY2sgdmlhIG5laXRoZXIgdGhlICdjbGljaycsIG5vciB0aGUgJ2F1eGNsaWNrJyBldmVudCBjYXVzZSBhIG5ldyB0YWJcbiAgICAvLyB0byBiZSBvcGVuZWQgd2hlbiB0cmlnZ2VyZWQgcHJvZ3JhbW1hdGljYWxseS4gQXMgYSB3b3JrYXJvdW5kLCB3ZSBzaW11bGF0ZSBhIGN0cmwgY2xpY2tcbiAgICAvLyBpbnN0ZWFkIG9mIGEgbWlkZGxlIGNsaWNrLiBUaGlzIG1hdGNoZXMgRmlyZWZveCdzIGRlZmF1bHRzLCBidXQgd2UgY2Fubm90IGFjY291bnQgZm9yXG4gICAgLy8gY2hhbmdlZCBtaWRkbGUtY2xpY2sgYmVoYXZpb3IuXG4gICAgaWYgKGV2ZW50LnR5cGUgPT09ICdhdXhjbGljaycgJiYgZXZlbnQuYnV0dG9uID09PSAxICYmIGlzRmlyZWZveCgpKSB7XG4gICAgICAgIHJldHVybiBjb3B5Q2xpY2tFdmVudCh7IC4uLmV2ZW50LCB0eXBlOiAnY2xpY2snLCBjdHJsS2V5OiB0cnVlLCBidXR0b246IDAgfSk7XG4gICAgfVxuICAgIC8vIEl0IHdvdWxkIHNlZW0gYmV0dGVyIHRvIHVzZSBgZXZlbnQudHlwZWAgaW5zdGVhZCBvZiBoYXJkLWNvZGluZyAnY2xpY2snLCBidXQgdGhhdCBkb2Vzbid0XG4gICAgLy8gaGF2ZSB0aGUgZGVzaXJlZCBlZmZlY3QgZm9yIG5vbi1jbGljayBldmVudHMgd2hlbiBkaXNwYXRjaGVkLlxuICAgIHJldHVybiBuZXcgTW91c2VFdmVudCgnY2xpY2snLCB7XG4gICAgICAgIGNhbmNlbGFibGU6IHRydWUsXG4gICAgICAgIGJ1dHRvbjogZXZlbnQuYnV0dG9uLFxuICAgICAgICBjdHJsS2V5OiBldmVudC5jdHJsS2V5LFxuICAgICAgICBzaGlmdEtleTogZXZlbnQuc2hpZnRLZXksXG4gICAgICAgIGFsdEtleTogZXZlbnQuYWx0S2V5LFxuICAgICAgICBtZXRhS2V5OiBldmVudC5tZXRhS2V5LFxuICAgIH0pO1xufVxuXG5mdW5jdGlvbiBpc0ZpcmVmb3goKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIG5hdmlnYXRvci51c2VyQWdlbnQuaW5jbHVkZXMoJ0ZpcmVmb3gnKTtcbn1cbiIsIjxuZy10ZW1wbGF0ZSAjY29udGVudD48bmctY29udGVudD48L25nLWNvbnRlbnQ+PC9uZy10ZW1wbGF0ZT5cbjxuZy1jb250YWluZXIgKm5nSWY9XCJtb2RlID09PSAnbGluaydcIj5cbiAgPGFcbiAgICAqbmdJZj1cIiFkaXNhYmxlZFwiXG4gICAgI2xpbmtcbiAgICBtYXRSaXBwbGVcbiAgICBtYXRSaXBwbGVDb2xvcj1cInByaW1hcnlcIlxuICAgIFttYXRSaXBwbGVEaXNhYmxlZF09XCJpc05lc3RlZFwiXG4gICAgW3JvdXRlckxpbmtdPVwiZ2V0KCdyb3V0ZXJMaW5rJylcIlxuICAgIFtzdGF0ZV09XCJnZXRTdGF0ZSgpXCJcbiAgICBbdGFyZ2V0XT1cInRhcmdldFwiXG4gICAgW3F1ZXJ5UGFyYW1zXT1cImdldCgncXVlcnlQYXJhbXMnKVwiXG4gICAgcXVlcnlQYXJhbXNIYW5kbGluZz1cIm1lcmdlXCJcbiAgICBjZGtNb25pdG9yRWxlbWVudEZvY3VzXG4gICAgW2F0dHIuYXJpYS1sYWJlbF09XCJhcmlhTGFiZWwgPyBub2RlLm5hbWUgOiBudWxsXCJcbiAgICBbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XT1cImFyaWFEZXNjcmliZWRieVwiXG4gID5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29udGVudFwiPjwvbmctY29udGFpbmVyPlxuICA8L2E+XG4gIDwhLS0gV2UgdXNlIGBkaXZgcyBpbnN0ZWFkIG9mIGBzcGFuYHMgaGVyZSBiZWNhdXNlIHRoZSBsZWdhY3kgYExpc3RUYWJsZWAgY29tcG9uZW50IHdpbGwgaW5zZXJ0XG4gIGBkaXZgIGVsZW1lbnRzIGludG8gdGhpcyBjb21wb25lbnQncyBjb250ZW50LiBIb3dldmVyLCB0aGlzIHdpbGwgbGVhZCB0byBpbnZhbGlkIEhUTUwgZm9yIFwiYnV0dG9uXCJcbiAgbW9kZS4gU28gcmVhbGx5LCB1c2VycyBvZiB0aGlzIGNvbXBvbmVudCBzaG91bGQgb25seSBpbnNlcnQgZmxvdyBjb250ZW50LiAtLT5cbiAgPGRpdiAqbmdJZj1cImRpc2FibGVkICYmICFhbHdheXNSaXBwbGVcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29udGVudFwiPjwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbiAgPGRpdiAqbmdJZj1cImRpc2FibGVkICYmIGFsd2F5c1JpcHBsZVwiIG1hdFJpcHBsZSBtYXRSaXBwbGVDb2xvcj1cInByaW1hcnlcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29udGVudFwiPjwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbjwvbmctY29udGFpbmVyPlxuPG5nLWNvbnRhaW5lciAqbmdJZj1cIm1vZGUgPT09ICd3cmFwcGVyJ1wiPlxuICA8ZGl2XG4gICAgY2xhc3M9XCJub2RlLXVybC13cmFwcGVyXCJcbiAgICAjd3JhcHBlclxuICAgIG1hdFJpcHBsZVxuICAgIG1hdFJpcHBsZUNvbG9yPVwicHJpbWFyeVwiXG4gICAgW21hdFJpcHBsZURpc2FibGVkXT1cImRpc2FibGVkICYmICFhbHdheXNSaXBwbGVcIlxuICAgIChjbGljayk9XCJjbGlja1dyYXBwZXIoJGV2ZW50KVwiXG4gICAgKGF1eGNsaWNrKT1cImNsaWNrV3JhcHBlcigkZXZlbnQpXCJcbiAgPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb250ZW50XCI+PC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuICA8IS0tIEFuIGludmlzaWJsZSBsaW5rIHRoYXQgd2lsbCBieSBjbGlja2VkIHByb2dyYW1tYXRpY2FsbHkgYnkgYGNsaWNrV3JhcHBlcigpYC4gLS0+XG4gIDxhXG4gICAgI2xpbmtcbiAgICBbcm91dGVyTGlua109XCJnZXQoJ3JvdXRlckxpbmsnKVwiXG4gICAgW3N0YXRlXT1cImdldFN0YXRlKClcIlxuICAgIFtxdWVyeVBhcmFtc109XCJnZXQoJ3F1ZXJ5UGFyYW1zJylcIlxuICAgIHF1ZXJ5UGFyYW1zSGFuZGxpbmc9XCJtZXJnZVwiXG4gICAgdGFiaW5kZXg9XCItMVwiXG4gICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICBjbGFzcz1cImNkay12aXN1YWxseS1oaWRkZW5cIlxuICA+PC9hPlxuPC9uZy1jb250YWluZXI+XG48bmctY29udGFpbmVyICpuZ0lmPVwibW9kZSA9PT0gJ2J1dHRvbidcIj5cbiAgPGJ1dHRvblxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgI2xpbmtcbiAgICBtYXRSaXBwbGVcbiAgICBtYXRSaXBwbGVDb2xvcj1cInByaW1hcnlcIlxuICAgIFttYXRSaXBwbGVEaXNhYmxlZF09XCJkaXNhYmxlZCAmJiAhYWx3YXlzUmlwcGxlXCJcbiAgICAoY2xpY2spPVwiYnV0dG9uQ2xpY2suZW1pdCgkZXZlbnQpXCJcbiAgICBjZGtNb25pdG9yRWxlbWVudEZvY3VzXG4gID5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29udGVudFwiPjwvbmctY29udGFpbmVyPlxuICA8L2J1dHRvbj5cbjwvbmctY29udGFpbmVyPlxuIl19
@@ -0,0 +1,31 @@
1
+ import { Pipe } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@ngx-translate/core";
4
+ export class FormatSizePipe {
5
+ constructor(translate) {
6
+ this.translate = translate;
7
+ }
8
+ transform(value, args = null) {
9
+ let names = ['bytes', 'KB', 'MB', 'GB', 'TB'];
10
+ let i = 0;
11
+ if (isNaN(value))
12
+ return value;
13
+ if (value == null)
14
+ value = 0;
15
+ while (value >= 1024 && i < names.length) {
16
+ value /= 1024;
17
+ i++;
18
+ }
19
+ //return value+" "+names[i];
20
+ return (value.toLocaleString(this.translate.currentLang, { maximumFractionDigits: 1 }) +
21
+ ' ' +
22
+ names[i]);
23
+ }
24
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: FormatSizePipe, deps: [{ token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Pipe }); }
25
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.2.6", ngImport: i0, type: FormatSizePipe, name: "formatSize" }); }
26
+ }
27
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: FormatSizePipe, decorators: [{
28
+ type: Pipe,
29
+ args: [{ name: 'formatSize' }]
30
+ }], ctorParameters: function () { return [{ type: i1.TranslateService }]; } });
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1zaXplLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lZHUtc2hhcmluZy11aS9zcmMvbGliL3BpcGVzL2ZpbGUtc2l6ZS5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsSUFBSSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFJcEQsTUFBTSxPQUFPLGNBQWM7SUFDdkIsWUFBb0IsU0FBMkI7UUFBM0IsY0FBUyxHQUFULFNBQVMsQ0FBa0I7SUFBRyxDQUFDO0lBRW5ELFNBQVMsQ0FBQyxLQUFVLEVBQUUsT0FBaUIsSUFBSTtRQUN2QyxJQUFJLEtBQUssR0FBRyxDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztRQUM5QyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDVixJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUM7WUFBRSxPQUFPLEtBQUssQ0FBQztRQUMvQixJQUFJLEtBQUssSUFBSSxJQUFJO1lBQUUsS0FBSyxHQUFHLENBQUMsQ0FBQztRQUM3QixPQUFPLEtBQUssSUFBSSxJQUFJLElBQUksQ0FBQyxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUU7WUFDdEMsS0FBSyxJQUFJLElBQUksQ0FBQztZQUNkLENBQUMsRUFBRSxDQUFDO1NBQ1A7UUFDRCw0QkFBNEI7UUFDNUIsT0FBTyxDQUNILEtBQUssQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLEVBQUUsRUFBRSxxQkFBcUIsRUFBRSxDQUFDLEVBQUUsQ0FBQztZQUM5RSxHQUFHO1lBQ0gsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUNYLENBQUM7SUFDTixDQUFDOzhHQWxCUSxjQUFjOzRHQUFkLGNBQWM7OzJGQUFkLGNBQWM7a0JBRDFCLElBQUk7bUJBQUMsRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZVRyYW5zZm9ybSwgUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuXG5AUGlwZSh7IG5hbWU6ICdmb3JtYXRTaXplJyB9KVxuZXhwb3J0IGNsYXNzIEZvcm1hdFNpemVQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UpIHt9XG5cbiAgICB0cmFuc2Zvcm0odmFsdWU6IGFueSwgYXJnczogc3RyaW5nW10gPSBudWxsKTogc3RyaW5nIHtcbiAgICAgICAgbGV0IG5hbWVzID0gWydieXRlcycsICdLQicsICdNQicsICdHQicsICdUQiddO1xuICAgICAgICBsZXQgaSA9IDA7XG4gICAgICAgIGlmIChpc05hTih2YWx1ZSkpIHJldHVybiB2YWx1ZTtcbiAgICAgICAgaWYgKHZhbHVlID09IG51bGwpIHZhbHVlID0gMDtcbiAgICAgICAgd2hpbGUgKHZhbHVlID49IDEwMjQgJiYgaSA8IG5hbWVzLmxlbmd0aCkge1xuICAgICAgICAgICAgdmFsdWUgLz0gMTAyNDtcbiAgICAgICAgICAgIGkrKztcbiAgICAgICAgfVxuICAgICAgICAvL3JldHVybiB2YWx1ZStcIiBcIituYW1lc1tpXTtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIHZhbHVlLnRvTG9jYWxlU3RyaW5nKHRoaXMudHJhbnNsYXRlLmN1cnJlbnRMYW5nLCB7IG1heGltdW1GcmFjdGlvbkRpZ2l0czogMSB9KSArXG4gICAgICAgICAgICAnICcgK1xuICAgICAgICAgICAgbmFtZXNbaV1cbiAgICAgICAgKTtcbiAgICB9XG59XG4iXX0=
@@ -0,0 +1,38 @@
1
+ import { Pipe } from '@angular/core';
2
+ import * as rxjs from 'rxjs';
3
+ import { map } from 'rxjs/operators';
4
+ import { DateHelper, FormatOptions } from '../util/DateHelper';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@ngx-translate/core";
7
+ export class FormatDatePipe {
8
+ constructor(translate) {
9
+ this.translate = translate;
10
+ }
11
+ transform(value, args = null) {
12
+ if (!value) {
13
+ return args?.async ? rxjs.of('') : '';
14
+ }
15
+ let options = new FormatOptions();
16
+ if (args && args.time != null)
17
+ options.showAlwaysTime = args.time;
18
+ if (args && args.date != null)
19
+ options.showDate = args.date;
20
+ if (args && args.relative !== null)
21
+ options.useRelativeLabels = args.relative;
22
+ if (args?.async) {
23
+ return this.translate
24
+ .get('dummy') // Wait for the translation service to be ready
25
+ .pipe(map(() => DateHelper.formatDate(this.translate, value, options)));
26
+ }
27
+ else {
28
+ return DateHelper.formatDate(this.translate, value, options);
29
+ }
30
+ }
31
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: FormatDatePipe, deps: [{ token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Pipe }); }
32
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.2.6", ngImport: i0, type: FormatDatePipe, name: "formatDate" }); }
33
+ }
34
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: FormatDatePipe, decorators: [{
35
+ type: Pipe,
36
+ args: [{ name: 'formatDate' }]
37
+ }], ctorParameters: function () { return [{ type: i1.TranslateService }]; } });
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0LWRhdGUucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VkdS1zaGFyaW5nLXVpL3NyYy9saWIvcGlwZXMvZm9ybWF0LWRhdGUucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUVwRCxPQUFPLEtBQUssSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUU3QixPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckMsT0FBTyxFQUFFLFVBQVUsRUFBRSxhQUFhLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7O0FBRy9ELE1BQU0sT0FBTyxjQUFjO0lBQ3ZCLFlBQW9CLFNBQTJCO1FBQTNCLGNBQVMsR0FBVCxTQUFTLENBQWtCO0lBQUcsQ0FBQztJQVVuRCxTQUFTLENBQ0wsS0FBNkIsRUFDN0IsT0FBZ0YsSUFBSTtRQUVwRixJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ1IsT0FBTyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7U0FDekM7UUFDRCxJQUFJLE9BQU8sR0FBRyxJQUFJLGFBQWEsRUFBRSxDQUFDO1FBQ2xDLElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSTtZQUFFLE9BQU8sQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztRQUNsRSxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUk7WUFBRSxPQUFPLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDNUQsSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxJQUFJO1lBQUUsT0FBTyxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDOUUsSUFBSSxJQUFJLEVBQUUsS0FBSyxFQUFFO1lBQ2IsT0FBTyxJQUFJLENBQUMsU0FBUztpQkFDaEIsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLCtDQUErQztpQkFDNUQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUMvRTthQUFNO1lBQ0gsT0FBTyxVQUFVLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1NBQ2hFO0lBQ0wsQ0FBQzs4R0E3QlEsY0FBYzs0R0FBZCxjQUFjOzsyRkFBZCxjQUFjO2tCQUQxQixJQUFJO21CQUFDLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCAqIGFzIHJ4anMgZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBEYXRlSGVscGVyLCBGb3JtYXRPcHRpb25zIH0gZnJvbSAnLi4vdXRpbC9EYXRlSGVscGVyJztcblxuQFBpcGUoeyBuYW1lOiAnZm9ybWF0RGF0ZScgfSlcbmV4cG9ydCBjbGFzcyBGb3JtYXREYXRlUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlKSB7fVxuXG4gICAgdHJhbnNmb3JtKFxuICAgICAgICB2YWx1ZTogRGF0ZSB8IG51bWJlciB8IHN0cmluZyxcbiAgICAgICAgYXJncz86IHsgdGltZT86IGJvb2xlYW47IGRhdGU/OiBib29sZWFuOyByZWxhdGl2ZT86IGJvb2xlYW4gfSxcbiAgICApOiBzdHJpbmc7XG4gICAgdHJhbnNmb3JtKFxuICAgICAgICB2YWx1ZTogRGF0ZSB8IG51bWJlciB8IHN0cmluZyxcbiAgICAgICAgYXJnczogeyB0aW1lPzogYm9vbGVhbjsgZGF0ZT86IGJvb2xlYW47IHJlbGF0aXZlPzogYm9vbGVhbjsgYXN5bmM6IHRydWUgfSxcbiAgICApOiBPYnNlcnZhYmxlPHN0cmluZz47XG4gICAgdHJhbnNmb3JtKFxuICAgICAgICB2YWx1ZTogRGF0ZSB8IG51bWJlciB8IHN0cmluZyxcbiAgICAgICAgYXJnczogeyB0aW1lPzogYm9vbGVhbjsgZGF0ZT86IGJvb2xlYW47IHJlbGF0aXZlPzogYm9vbGVhbjsgYXN5bmM/OiBib29sZWFuIH0gPSBudWxsLFxuICAgICk6IHN0cmluZyB8IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgICAgIGlmICghdmFsdWUpIHtcbiAgICAgICAgICAgIHJldHVybiBhcmdzPy5hc3luYyA/IHJ4anMub2YoJycpIDogJyc7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IG9wdGlvbnMgPSBuZXcgRm9ybWF0T3B0aW9ucygpO1xuICAgICAgICBpZiAoYXJncyAmJiBhcmdzLnRpbWUgIT0gbnVsbCkgb3B0aW9ucy5zaG93QWx3YXlzVGltZSA9IGFyZ3MudGltZTtcbiAgICAgICAgaWYgKGFyZ3MgJiYgYXJncy5kYXRlICE9IG51bGwpIG9wdGlvbnMuc2hvd0RhdGUgPSBhcmdzLmRhdGU7XG4gICAgICAgIGlmIChhcmdzICYmIGFyZ3MucmVsYXRpdmUgIT09IG51bGwpIG9wdGlvbnMudXNlUmVsYXRpdmVMYWJlbHMgPSBhcmdzLnJlbGF0aXZlO1xuICAgICAgICBpZiAoYXJncz8uYXN5bmMpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZVxuICAgICAgICAgICAgICAgIC5nZXQoJ2R1bW15JykgLy8gV2FpdCBmb3IgdGhlIHRyYW5zbGF0aW9uIHNlcnZpY2UgdG8gYmUgcmVhZHlcbiAgICAgICAgICAgICAgICAucGlwZShtYXAoKCkgPT4gRGF0ZUhlbHBlci5mb3JtYXREYXRlKHRoaXMudHJhbnNsYXRlLCB2YWx1ZSwgb3B0aW9ucykpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBEYXRlSGVscGVyLmZvcm1hdERhdGUodGhpcy50cmFuc2xhdGUsIHZhbHVlLCBvcHRpb25zKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,18 @@
1
+ import { Pipe } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "../services/repo-url.service";
4
+ export class NodeIconPipe {
5
+ constructor(repoUrlService) {
6
+ this.repoUrlService = repoUrlService;
7
+ }
8
+ transform(node) {
9
+ return this.repoUrlService.getRepoUrl(node.iconURL, node);
10
+ }
11
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: NodeIconPipe, deps: [{ token: i1.RepoUrlService }], target: i0.ɵɵFactoryTarget.Pipe }); }
12
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.2.6", ngImport: i0, type: NodeIconPipe, name: "esNodeIcon" }); }
13
+ }
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: NodeIconPipe, decorators: [{
15
+ type: Pipe,
16
+ args: [{ name: 'esNodeIcon' }]
17
+ }], ctorParameters: function () { return [{ type: i1.RepoUrlService }]; } });
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS1pY29uLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lZHUtc2hhcmluZy11aS9zcmMvbGliL3BpcGVzL25vZGUtaWNvbi5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDOzs7QUFLcEQsTUFBTSxPQUFPLFlBQVk7SUFDckIsWUFBb0IsY0FBOEI7UUFBOUIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO0lBQUcsQ0FBQztJQUN0RCxTQUFTLENBQUMsSUFBVTtRQUNoQixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDOUQsQ0FBQzs4R0FKUSxZQUFZOzRHQUFaLFlBQVk7OzJGQUFaLFlBQVk7a0JBRHhCLElBQUk7bUJBQUMsRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTm9kZSB9IGZyb20gJ25neC1lZHUtc2hhcmluZy1hcGknO1xuaW1wb3J0IHsgUmVwb1VybFNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9yZXBvLXVybC5zZXJ2aWNlJztcblxuQFBpcGUoeyBuYW1lOiAnZXNOb2RlSWNvbicgfSlcbmV4cG9ydCBjbGFzcyBOb2RlSWNvblBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlcG9VcmxTZXJ2aWNlOiBSZXBvVXJsU2VydmljZSkge31cbiAgICB0cmFuc2Zvcm0obm9kZTogTm9kZSkge1xuICAgICAgICByZXR1cm4gdGhpcy5yZXBvVXJsU2VydmljZS5nZXRSZXBvVXJsKG5vZGUuaWNvblVSTCwgbm9kZSk7XG4gICAgfVxufVxuIl19
@@ -0,0 +1,24 @@
1
+ import { Pipe } from '@angular/core';
2
+ import { RestConstants } from 'ngx-edu-sharing-api';
3
+ import * as i0 from "@angular/core";
4
+ export class NodeImageSizePipe {
5
+ transform(node, args = null) {
6
+ const width = parseFloat(node.properties[RestConstants.CCM_PROP_WIDTH]?.[0]);
7
+ const height = parseFloat(node.properties[RestConstants.CCM_PROP_HEIGHT]?.[0]);
8
+ const megapixel = Math.round((width * height) / 1000000);
9
+ if (width && height) {
10
+ if (megapixel > 1) {
11
+ return megapixel + ' Megapixel';
12
+ }
13
+ return Math.round(width) + 'x' + Math.round(height);
14
+ }
15
+ return '';
16
+ }
17
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: NodeImageSizePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
18
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.2.6", ngImport: i0, type: NodeImageSizePipe, name: "NodeImageSize" }); }
19
+ }
20
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: NodeImageSizePipe, decorators: [{
21
+ type: Pipe,
22
+ args: [{ name: 'NodeImageSize' }]
23
+ }] });
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS1pbWFnZS1zaXplLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lZHUtc2hhcmluZy11aS9zcmMvbGliL3BpcGVzL25vZGUtaW1hZ2Utc2l6ZS5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsSUFBSSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BELE9BQU8sRUFBUSxhQUFhLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7QUFHMUQsTUFBTSxPQUFPLGlCQUFpQjtJQUMxQixTQUFTLENBQUMsSUFBVSxFQUFFLE9BQVksSUFBSTtRQUNsQyxNQUFNLEtBQUssR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzdFLE1BQU0sTUFBTSxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDL0UsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsR0FBRyxPQUFPLENBQUMsQ0FBQztRQUN6RCxJQUFJLEtBQUssSUFBSSxNQUFNLEVBQUU7WUFDakIsSUFBSSxTQUFTLEdBQUcsQ0FBQyxFQUFFO2dCQUNmLE9BQU8sU0FBUyxHQUFHLFlBQVksQ0FBQzthQUNuQztZQUNELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUN2RDtRQUNELE9BQU8sRUFBRSxDQUFDO0lBQ2QsQ0FBQzs4R0FaUSxpQkFBaUI7NEdBQWpCLGlCQUFpQjs7MkZBQWpCLGlCQUFpQjtrQkFEN0IsSUFBSTttQkFBQyxFQUFFLElBQUksRUFBRSxlQUFlLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlVHJhbnNmb3JtLCBQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOb2RlLCBSZXN0Q29uc3RhbnRzIH0gZnJvbSAnbmd4LWVkdS1zaGFyaW5nLWFwaSc7XG5cbkBQaXBlKHsgbmFtZTogJ05vZGVJbWFnZVNpemUnIH0pXG5leHBvcnQgY2xhc3MgTm9kZUltYWdlU2l6ZVBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgICB0cmFuc2Zvcm0obm9kZTogTm9kZSwgYXJnczogYW55ID0gbnVsbCk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IHdpZHRoID0gcGFyc2VGbG9hdChub2RlLnByb3BlcnRpZXNbUmVzdENvbnN0YW50cy5DQ01fUFJPUF9XSURUSF0/LlswXSk7XG4gICAgICAgIGNvbnN0IGhlaWdodCA9IHBhcnNlRmxvYXQobm9kZS5wcm9wZXJ0aWVzW1Jlc3RDb25zdGFudHMuQ0NNX1BST1BfSEVJR0hUXT8uWzBdKTtcbiAgICAgICAgY29uc3QgbWVnYXBpeGVsID0gTWF0aC5yb3VuZCgod2lkdGggKiBoZWlnaHQpIC8gMTAwMDAwMCk7XG4gICAgICAgIGlmICh3aWR0aCAmJiBoZWlnaHQpIHtcbiAgICAgICAgICAgIGlmIChtZWdhcGl4ZWwgPiAxKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG1lZ2FwaXhlbCArICcgTWVnYXBpeGVsJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBNYXRoLnJvdW5kKHdpZHRoKSArICd4JyArIE1hdGgucm91bmQoaGVpZ2h0KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gJyc7XG4gICAgfVxufVxuIl19
@@ -0,0 +1,55 @@
1
+ import { Pipe } from '@angular/core';
2
+ import * as rxjs from 'rxjs';
3
+ import { map, switchMap } from 'rxjs/operators';
4
+ import { RestConstants } from 'ngx-edu-sharing-api';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "../services/node-helper.service";
7
+ import * as i2 from "@angular/platform-browser";
8
+ import * as i3 from "../services/repo-url.service";
9
+ import * as i4 from "ngx-edu-sharing-api";
10
+ export class NodeImagePipe {
11
+ constructor(nodeHelper, sanitizer, repoUrlService, networkApi) {
12
+ this.nodeHelper = nodeHelper;
13
+ this.sanitizer = sanitizer;
14
+ this.repoUrlService = repoUrlService;
15
+ this.networkApi = networkApi;
16
+ }
17
+ transform(node, preferences) {
18
+ if (this.nodeHelper.isNodeCollection(node) && node.preview.isIcon) {
19
+ return null;
20
+ }
21
+ else if (node.preview.data) {
22
+ return rxjs.of(this.sanitizer.bypassSecurityTrustResourceUrl('data:' + node.preview.mimetype + ';base64,' + node.preview.data));
23
+ }
24
+ else {
25
+ return this.getPreviewUrl(node, preferences);
26
+ }
27
+ }
28
+ getPreviewUrl(node, preferences) {
29
+ return this.isEduSharingNode(node).pipe(switchMap(async (isEduSharingNode) => {
30
+ let url = await this.repoUrlService.getRepoUrl(node.preview.url, node);
31
+ if (isEduSharingNode) {
32
+ url += Object.entries(preferences)
33
+ .map(([key, value]) => `&${key}=${value}`)
34
+ .join('');
35
+ }
36
+ return url;
37
+ }));
38
+ }
39
+ isEduSharingNode(node) {
40
+ return rxjs
41
+ .forkJoin([
42
+ this.networkApi.isFromHomeRepository(node),
43
+ this.networkApi.getRepositoryOfNode(node),
44
+ ])
45
+ .pipe(map(([isFromHomeRepository, repository]) => isFromHomeRepository ||
46
+ repository?.repositoryType === RestConstants.REPOSITORY_TYPE_ALFRESCO));
47
+ }
48
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: NodeImagePipe, deps: [{ token: i1.NodeHelperService }, { token: i2.DomSanitizer }, { token: i3.RepoUrlService }, { token: i4.NetworkService }], target: i0.ɵɵFactoryTarget.Pipe }); }
49
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.2.6", ngImport: i0, type: NodeImagePipe, name: "esNodeImage" }); }
50
+ }
51
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: NodeImagePipe, decorators: [{
52
+ type: Pipe,
53
+ args: [{ name: 'esNodeImage' }]
54
+ }], ctorParameters: function () { return [{ type: i1.NodeHelperService }, { type: i2.DomSanitizer }, { type: i3.RepoUrlService }, { type: i4.NetworkService }]; } });
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS1pbWFnZS5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWR1LXNoYXJpbmctdWkvc3JjL2xpYi9waXBlcy9ub2RlLWltYWdlLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFHcEQsT0FBTyxLQUFLLElBQUksTUFBTSxNQUFNLENBQUM7QUFFN0IsT0FBTyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUloRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7OztBQVdwRCxNQUFNLE9BQU8sYUFBYTtJQUN0QixZQUNZLFVBQTZCLEVBQzdCLFNBQXVCLEVBQ3ZCLGNBQThCLEVBQzlCLFVBQTBCO1FBSDFCLGVBQVUsR0FBVixVQUFVLENBQW1CO1FBQzdCLGNBQVMsR0FBVCxTQUFTLENBQWM7UUFDdkIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLGVBQVUsR0FBVixVQUFVLENBQWdCO0lBQ25DLENBQUM7SUFFSixTQUFTLENBQUMsSUFBVSxFQUFFLFdBQWlDO1FBQ25ELElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRTtZQUMvRCxPQUFPLElBQUksQ0FBQztTQUNmO2FBQU0sSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRTtZQUMxQixPQUFPLElBQUksQ0FBQyxFQUFFLENBQ1YsSUFBSSxDQUFDLFNBQVMsQ0FBQyw4QkFBOEIsQ0FDekMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxHQUFHLFVBQVUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FDbkUsQ0FDSixDQUFDO1NBQ0w7YUFBTTtZQUNILE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsV0FBVyxDQUFDLENBQUM7U0FDaEQ7SUFDTCxDQUFDO0lBRU8sYUFBYSxDQUFDLElBQVUsRUFBRSxXQUFpQztRQUMvRCxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQ25DLFNBQVMsQ0FBQyxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsRUFBRTtZQUNqQyxJQUFJLEdBQUcsR0FBRyxNQUFNLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ3ZFLElBQUksZ0JBQWdCLEVBQUU7Z0JBQ2xCLEdBQUcsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQztxQkFDN0IsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksR0FBRyxJQUFJLEtBQUssRUFBRSxDQUFDO3FCQUN6QyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7YUFDakI7WUFDRCxPQUFPLEdBQUcsQ0FBQztRQUNmLENBQUMsQ0FBQyxDQUNMLENBQUM7SUFDTixDQUFDO0lBRU8sZ0JBQWdCLENBQUMsSUFBVTtRQUMvQixPQUFPLElBQUk7YUFDTixRQUFRLENBQUM7WUFDTixJQUFJLENBQUMsVUFBVSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQztZQUMxQyxJQUFJLENBQUMsVUFBVSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQztTQUM1QyxDQUFDO2FBQ0QsSUFBSSxDQUNELEdBQUcsQ0FDQyxDQUFDLENBQUMsb0JBQW9CLEVBQUUsVUFBVSxDQUFDLEVBQUUsRUFBRSxDQUNuQyxvQkFBb0I7WUFDcEIsVUFBVSxFQUFFLGNBQWMsS0FBSyxhQUFhLENBQUMsd0JBQXdCLENBQzVFLENBQ0osQ0FBQztJQUNWLENBQUM7OEdBakRRLGFBQWE7NEdBQWIsYUFBYTs7MkZBQWIsYUFBYTtrQkFEekIsSUFBSTttQkFBQyxFQUFFLElBQUksRUFBRSxhQUFhLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIsIFNhZmVSZXNvdXJjZVVybCB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHsgTmV0d29ya1NlcnZpY2UgfSBmcm9tICduZ3gtZWR1LXNoYXJpbmctYXBpJztcbmltcG9ydCAqIGFzIHJ4anMgZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAsIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IE5vZGVIZWxwZXJTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvbm9kZS1oZWxwZXIuc2VydmljZSc7XG5pbXBvcnQgeyBOb2RlIH0gZnJvbSAnbmd4LWVkdS1zaGFyaW5nLWFwaSc7XG5pbXBvcnQgeyBSZXBvVXJsU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3JlcG8tdXJsLnNlcnZpY2UnO1xuaW1wb3J0IHsgUmVzdENvbnN0YW50cyB9IGZyb20gJ25neC1lZHUtc2hhcmluZy1hcGknO1xuXG5pbnRlcmZhY2UgTm9kZUltYWdlUHJlZmVyZW5jZXMge1xuICAgIGNyb3A/OiBib29sZWFuO1xuICAgIG1heFdpZHRoPzogbnVtYmVyO1xuICAgIG1heEhlaWdodD86IG51bWJlcjtcbiAgICB3aWR0aD86IG51bWJlcjtcbiAgICBoZWlnaHQ/OiBudW1iZXI7XG59XG5cbkBQaXBlKHsgbmFtZTogJ2VzTm9kZUltYWdlJyB9KVxuZXhwb3J0IGNsYXNzIE5vZGVJbWFnZVBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBub2RlSGVscGVyOiBOb2RlSGVscGVyU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBzYW5pdGl6ZXI6IERvbVNhbml0aXplcixcbiAgICAgICAgcHJpdmF0ZSByZXBvVXJsU2VydmljZTogUmVwb1VybFNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgbmV0d29ya0FwaTogTmV0d29ya1NlcnZpY2UsXG4gICAgKSB7fVxuXG4gICAgdHJhbnNmb3JtKG5vZGU6IE5vZGUsIHByZWZlcmVuY2VzOiBOb2RlSW1hZ2VQcmVmZXJlbmNlcyk6IE9ic2VydmFibGU8U2FmZVJlc291cmNlVXJsPiB7XG4gICAgICAgIGlmICh0aGlzLm5vZGVIZWxwZXIuaXNOb2RlQ29sbGVjdGlvbihub2RlKSAmJiBub2RlLnByZXZpZXcuaXNJY29uKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfSBlbHNlIGlmIChub2RlLnByZXZpZXcuZGF0YSkge1xuICAgICAgICAgICAgcmV0dXJuIHJ4anMub2YoXG4gICAgICAgICAgICAgICAgdGhpcy5zYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdFJlc291cmNlVXJsKFxuICAgICAgICAgICAgICAgICAgICAnZGF0YTonICsgbm9kZS5wcmV2aWV3Lm1pbWV0eXBlICsgJztiYXNlNjQsJyArIG5vZGUucHJldmlldy5kYXRhLFxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0UHJldmlld1VybChub2RlLCBwcmVmZXJlbmNlcyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFByZXZpZXdVcmwobm9kZTogTm9kZSwgcHJlZmVyZW5jZXM6IE5vZGVJbWFnZVByZWZlcmVuY2VzKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNFZHVTaGFyaW5nTm9kZShub2RlKS5waXBlKFxuICAgICAgICAgICAgc3dpdGNoTWFwKGFzeW5jIChpc0VkdVNoYXJpbmdOb2RlKSA9PiB7XG4gICAgICAgICAgICAgICAgbGV0IHVybCA9IGF3YWl0IHRoaXMucmVwb1VybFNlcnZpY2UuZ2V0UmVwb1VybChub2RlLnByZXZpZXcudXJsLCBub2RlKTtcbiAgICAgICAgICAgICAgICBpZiAoaXNFZHVTaGFyaW5nTm9kZSkge1xuICAgICAgICAgICAgICAgICAgICB1cmwgKz0gT2JqZWN0LmVudHJpZXMocHJlZmVyZW5jZXMpXG4gICAgICAgICAgICAgICAgICAgICAgICAubWFwKChba2V5LCB2YWx1ZV0pID0+IGAmJHtrZXl9PSR7dmFsdWV9YClcbiAgICAgICAgICAgICAgICAgICAgICAgIC5qb2luKCcnKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHVybDtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgaXNFZHVTaGFyaW5nTm9kZShub2RlOiBOb2RlKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgICAgIHJldHVybiByeGpzXG4gICAgICAgICAgICAuZm9ya0pvaW4oW1xuICAgICAgICAgICAgICAgIHRoaXMubmV0d29ya0FwaS5pc0Zyb21Ib21lUmVwb3NpdG9yeShub2RlKSxcbiAgICAgICAgICAgICAgICB0aGlzLm5ldHdvcmtBcGkuZ2V0UmVwb3NpdG9yeU9mTm9kZShub2RlKSxcbiAgICAgICAgICAgIF0pXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAoXG4gICAgICAgICAgICAgICAgICAgIChbaXNGcm9tSG9tZVJlcG9zaXRvcnksIHJlcG9zaXRvcnldKSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgaXNGcm9tSG9tZVJlcG9zaXRvcnkgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcG9zaXRvcnk/LnJlcG9zaXRvcnlUeXBlID09PSBSZXN0Q29uc3RhbnRzLlJFUE9TSVRPUllfVFlQRV9BTEZSRVNDTyxcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgKTtcbiAgICB9XG59XG4iXX0=
@@ -0,0 +1,50 @@
1
+ import { Pipe } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "ngx-edu-sharing-api";
4
+ export class NodePersonNamePipe {
5
+ constructor(config) {
6
+ this.config = config;
7
+ }
8
+ transform(person, args = null) {
9
+ let field = this.config.instant('userDisplayName', 'fullName');
10
+ if (person == null)
11
+ return null;
12
+ if (field == 'authorityName') {
13
+ if (person.authorityName == null)
14
+ field = 'fullName';
15
+ else
16
+ return person.authorityName;
17
+ }
18
+ if (field == 'fullName') {
19
+ if (person.profile) {
20
+ return ((person.profile.firstName ? person.profile.firstName : '') +
21
+ ' ' +
22
+ (person.profile.lastName ? person.profile.lastName : '')).trim();
23
+ }
24
+ return ((person.firstName ? person.firstName : '') +
25
+ ' ' +
26
+ (person.lastName ? person.lastName : '')).trim();
27
+ }
28
+ if (field == 'firstName' || field == 'lastName') {
29
+ if (person.profile) {
30
+ return person.profile[field];
31
+ }
32
+ return person[field];
33
+ }
34
+ if (field == 'email') {
35
+ if (person.profile && person.profile.email)
36
+ return person.profile.email;
37
+ if (person.email == null)
38
+ return person.mailbox;
39
+ return person.email;
40
+ }
41
+ return person[field];
42
+ }
43
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: NodePersonNamePipe, deps: [{ token: i1.ConfigService }], target: i0.ɵɵFactoryTarget.Pipe }); }
44
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.2.6", ngImport: i0, type: NodePersonNamePipe, name: "nodePersonName" }); }
45
+ }
46
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: NodePersonNamePipe, decorators: [{
47
+ type: Pipe,
48
+ args: [{ name: 'nodePersonName' }]
49
+ }], ctorParameters: function () { return [{ type: i1.ConfigService }]; } });
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS1wZXJzb24tbmFtZS5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWR1LXNoYXJpbmctdWkvc3JjL2xpYi9waXBlcy9ub2RlLXBlcnNvbi1uYW1lLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7OztBQUlwRCxNQUFNLE9BQU8sa0JBQWtCO0lBQzNCLFlBQW9CLE1BQXFCO1FBQXJCLFdBQU0sR0FBTixNQUFNLENBQWU7SUFBRyxDQUFDO0lBQzdDLFNBQVMsQ0FBQyxNQUFvQixFQUFFLE9BQVksSUFBSTtRQUM1QyxJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUMvRCxJQUFJLE1BQU0sSUFBSSxJQUFJO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFDaEMsSUFBSSxLQUFLLElBQUksZUFBZSxFQUFFO1lBQzFCLElBQUksTUFBTSxDQUFDLGFBQWEsSUFBSSxJQUFJO2dCQUFFLEtBQUssR0FBRyxVQUFVLENBQUM7O2dCQUNoRCxPQUFPLE1BQU0sQ0FBQyxhQUFhLENBQUM7U0FDcEM7UUFDRCxJQUFJLEtBQUssSUFBSSxVQUFVLEVBQUU7WUFDckIsSUFBSSxNQUFNLENBQUMsT0FBTyxFQUFFO2dCQUNoQixPQUFPLENBQ0gsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztvQkFDMUQsR0FBRztvQkFDSCxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQzNELENBQUMsSUFBSSxFQUFFLENBQUM7YUFDWjtZQUNELE9BQU8sQ0FDSCxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDMUMsR0FBRztnQkFDSCxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUMzQyxDQUFDLElBQUksRUFBRSxDQUFDO1NBQ1o7UUFDRCxJQUFJLEtBQUssSUFBSSxXQUFXLElBQUksS0FBSyxJQUFJLFVBQVUsRUFBRTtZQUM3QyxJQUFJLE1BQU0sQ0FBQyxPQUFPLEVBQUU7Z0JBQ2hCLE9BQU8sTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUNoQztZQUNELE9BQU8sTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ3hCO1FBQ0QsSUFBSSxLQUFLLElBQUksT0FBTyxFQUFFO1lBQ2xCLElBQUksTUFBTSxDQUFDLE9BQU8sSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUs7Z0JBQUUsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztZQUN4RSxJQUFJLE1BQU0sQ0FBQyxLQUFLLElBQUksSUFBSTtnQkFBRSxPQUFPLE1BQU0sQ0FBQyxPQUFPLENBQUM7WUFDaEQsT0FBTyxNQUFNLENBQUMsS0FBSyxDQUFDO1NBQ3ZCO1FBQ0QsT0FBTyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDekIsQ0FBQzs4R0FuQ1Esa0JBQWtCOzRHQUFsQixrQkFBa0I7OzJGQUFsQixrQkFBa0I7a0JBRDlCLElBQUk7bUJBQUMsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb25maWdTZXJ2aWNlLCBQZXJzb24gfSBmcm9tICduZ3gtZWR1LXNoYXJpbmctYXBpJztcblxuQFBpcGUoeyBuYW1lOiAnbm9kZVBlcnNvbk5hbWUnIH0pXG5leHBvcnQgY2xhc3MgTm9kZVBlcnNvbk5hbWVQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBjb25maWc6IENvbmZpZ1NlcnZpY2UpIHt9XG4gICAgdHJhbnNmb3JtKHBlcnNvbjogUGVyc29uIHwgYW55LCBhcmdzOiBhbnkgPSBudWxsKTogc3RyaW5nIHtcbiAgICAgICAgbGV0IGZpZWxkID0gdGhpcy5jb25maWcuaW5zdGFudCgndXNlckRpc3BsYXlOYW1lJywgJ2Z1bGxOYW1lJyk7XG4gICAgICAgIGlmIChwZXJzb24gPT0gbnVsbCkgcmV0dXJuIG51bGw7XG4gICAgICAgIGlmIChmaWVsZCA9PSAnYXV0aG9yaXR5TmFtZScpIHtcbiAgICAgICAgICAgIGlmIChwZXJzb24uYXV0aG9yaXR5TmFtZSA9PSBudWxsKSBmaWVsZCA9ICdmdWxsTmFtZSc7XG4gICAgICAgICAgICBlbHNlIHJldHVybiBwZXJzb24uYXV0aG9yaXR5TmFtZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZmllbGQgPT0gJ2Z1bGxOYW1lJykge1xuICAgICAgICAgICAgaWYgKHBlcnNvbi5wcm9maWxlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgKHBlcnNvbi5wcm9maWxlLmZpcnN0TmFtZSA/IHBlcnNvbi5wcm9maWxlLmZpcnN0TmFtZSA6ICcnKSArXG4gICAgICAgICAgICAgICAgICAgICcgJyArXG4gICAgICAgICAgICAgICAgICAgIChwZXJzb24ucHJvZmlsZS5sYXN0TmFtZSA/IHBlcnNvbi5wcm9maWxlLmxhc3ROYW1lIDogJycpXG4gICAgICAgICAgICAgICAgKS50cmltKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgIChwZXJzb24uZmlyc3ROYW1lID8gcGVyc29uLmZpcnN0TmFtZSA6ICcnKSArXG4gICAgICAgICAgICAgICAgJyAnICtcbiAgICAgICAgICAgICAgICAocGVyc29uLmxhc3ROYW1lID8gcGVyc29uLmxhc3ROYW1lIDogJycpXG4gICAgICAgICAgICApLnRyaW0oKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZmllbGQgPT0gJ2ZpcnN0TmFtZScgfHwgZmllbGQgPT0gJ2xhc3ROYW1lJykge1xuICAgICAgICAgICAgaWYgKHBlcnNvbi5wcm9maWxlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHBlcnNvbi5wcm9maWxlW2ZpZWxkXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBwZXJzb25bZmllbGRdO1xuICAgICAgICB9XG4gICAgICAgIGlmIChmaWVsZCA9PSAnZW1haWwnKSB7XG4gICAgICAgICAgICBpZiAocGVyc29uLnByb2ZpbGUgJiYgcGVyc29uLnByb2ZpbGUuZW1haWwpIHJldHVybiBwZXJzb24ucHJvZmlsZS5lbWFpbDtcbiAgICAgICAgICAgIGlmIChwZXJzb24uZW1haWwgPT0gbnVsbCkgcmV0dXJuIHBlcnNvbi5tYWlsYm94O1xuICAgICAgICAgICAgcmV0dXJuIHBlcnNvbi5lbWFpbDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcGVyc29uW2ZpZWxkXTtcbiAgICB9XG59XG4iXX0=
@@ -0,0 +1,19 @@
1
+ import { Pipe } from '@angular/core';
2
+ import { RestHelper } from '../util/rest-helper';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@ngx-translate/core";
5
+ export class NodeTitlePipe {
6
+ transform(node, args = null) {
7
+ return RestHelper.getTitle(node);
8
+ }
9
+ constructor(translate) {
10
+ this.translate = translate;
11
+ }
12
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: NodeTitlePipe, deps: [{ token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Pipe }); }
13
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.2.6", ngImport: i0, type: NodeTitlePipe, name: "nodeTitle" }); }
14
+ }
15
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: NodeTitlePipe, decorators: [{
16
+ type: Pipe,
17
+ args: [{ name: 'nodeTitle' }]
18
+ }], ctorParameters: function () { return [{ type: i1.TranslateService }]; } });
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS10aXRsZS5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWR1LXNoYXJpbmctdWkvc3JjL2xpYi9waXBlcy9ub2RlLXRpdGxlLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixJQUFJLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHcEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7QUFHakQsTUFBTSxPQUFPLGFBQWE7SUFDdEIsU0FBUyxDQUFDLElBQVUsRUFBRSxPQUFpQixJQUFJO1FBQ3ZDLE9BQU8sVUFBVSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBQ0QsWUFBb0IsU0FBMkI7UUFBM0IsY0FBUyxHQUFULFNBQVMsQ0FBa0I7SUFBRyxDQUFDOzhHQUoxQyxhQUFhOzRHQUFiLGFBQWE7OzJGQUFiLGFBQWE7a0JBRHpCLElBQUk7bUJBQUMsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZVRyYW5zZm9ybSwgUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgTm9kZSB9IGZyb20gJ25neC1lZHUtc2hhcmluZy1hcGknO1xuaW1wb3J0IHsgUmVzdEhlbHBlciB9IGZyb20gJy4uL3V0aWwvcmVzdC1oZWxwZXInO1xuXG5AUGlwZSh7IG5hbWU6ICdub2RlVGl0bGUnIH0pXG5leHBvcnQgY2xhc3MgTm9kZVRpdGxlUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICAgIHRyYW5zZm9ybShub2RlOiBOb2RlLCBhcmdzOiBzdHJpbmdbXSA9IG51bGwpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gUmVzdEhlbHBlci5nZXRUaXRsZShub2RlKTtcbiAgICB9XG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UpIHt9XG59XG4iXX0=
@@ -0,0 +1,33 @@
1
+ import { Pipe } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@ngx-translate/core";
4
+ export class OptionTooltipPipe {
5
+ constructor(translate) {
6
+ this.translate = translate;
7
+ }
8
+ transform(option, args = null) {
9
+ return (this.translate.instant(option.name) +
10
+ (option.keyboardShortcut ? ' (' + this.getKeyInfo(option) + ')' : ''));
11
+ }
12
+ getKeyInfo(option) {
13
+ if (!option.keyboardShortcut) {
14
+ return '';
15
+ }
16
+ const modifiers = [];
17
+ if (option.keyboardShortcut.modifiers?.includes('Shift')) {
18
+ modifiers.push(this.translate.instant('KEY_MODIFIER.SHIFT'));
19
+ }
20
+ if (option.keyboardShortcut.modifiers?.includes('Ctrl/Cmd')) {
21
+ modifiers.push(this.translate.instant('KEY_MODIFIER.CTRL'));
22
+ }
23
+ return ((modifiers.length ? modifiers.join(' + ') + ' + ' : '') +
24
+ option.keyboardShortcut.keyCode.replace('Key', ''));
25
+ }
26
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: OptionTooltipPipe, deps: [{ token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Pipe }); }
27
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.2.6", ngImport: i0, type: OptionTooltipPipe, name: "optionTooltip" }); }
28
+ }
29
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: OptionTooltipPipe, decorators: [{
30
+ type: Pipe,
31
+ args: [{ name: 'optionTooltip' }]
32
+ }], ctorParameters: function () { return [{ type: i1.TranslateService }]; } });
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9uLXRvb2x0aXAucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VkdS1zaGFyaW5nLXVpL3NyYy9saWIvcGlwZXMvb3B0aW9uLXRvb2x0aXAucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQzs7O0FBS3BELE1BQU0sT0FBTyxpQkFBaUI7SUFDMUIsWUFBb0IsU0FBMkI7UUFBM0IsY0FBUyxHQUFULFNBQVMsQ0FBa0I7SUFBRyxDQUFDO0lBRW5ELFNBQVMsQ0FBQyxNQUFrQixFQUFFLE9BQWlCLElBQUk7UUFDL0MsT0FBTyxDQUNILElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7WUFDbkMsQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQ3hFLENBQUM7SUFDTixDQUFDO0lBRUQsVUFBVSxDQUFDLE1BQWtCO1FBQ3pCLElBQUksQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLEVBQUU7WUFDMUIsT0FBTyxFQUFFLENBQUM7U0FDYjtRQUNELE1BQU0sU0FBUyxHQUFHLEVBQUUsQ0FBQztRQUNyQixJQUFJLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLEVBQUUsUUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ3RELFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDO1NBQ2hFO1FBQ0QsSUFBSSxNQUFNLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxFQUFFLFFBQVEsQ0FBQyxVQUFVLENBQUMsRUFBRTtZQUN6RCxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQztTQUMvRDtRQUNELE9BQU8sQ0FDSCxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDdkQsTUFBTSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUNyRCxDQUFDO0lBQ04sQ0FBQzs4R0F6QlEsaUJBQWlCOzRHQUFqQixpQkFBaUI7OzJGQUFqQixpQkFBaUI7a0JBRDdCLElBQUk7bUJBQUMsRUFBRSxJQUFJLEVBQUUsZUFBZSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgT3B0aW9uSXRlbSB9IGZyb20gJy4uL3R5cGVzL29wdGlvbi1pdGVtJztcblxuQFBpcGUoeyBuYW1lOiAnb3B0aW9uVG9vbHRpcCcgfSlcbmV4cG9ydCBjbGFzcyBPcHRpb25Ub29sdGlwUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlKSB7fVxuXG4gICAgdHJhbnNmb3JtKG9wdGlvbjogT3B0aW9uSXRlbSwgYXJnczogc3RyaW5nW10gPSBudWxsKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIHRoaXMudHJhbnNsYXRlLmluc3RhbnQob3B0aW9uLm5hbWUpICtcbiAgICAgICAgICAgIChvcHRpb24ua2V5Ym9hcmRTaG9ydGN1dCA/ICcgKCcgKyB0aGlzLmdldEtleUluZm8ob3B0aW9uKSArICcpJyA6ICcnKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGdldEtleUluZm8ob3B0aW9uOiBPcHRpb25JdGVtKSB7XG4gICAgICAgIGlmICghb3B0aW9uLmtleWJvYXJkU2hvcnRjdXQpIHtcbiAgICAgICAgICAgIHJldHVybiAnJztcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBtb2RpZmllcnMgPSBbXTtcbiAgICAgICAgaWYgKG9wdGlvbi5rZXlib2FyZFNob3J0Y3V0Lm1vZGlmaWVycz8uaW5jbHVkZXMoJ1NoaWZ0JykpIHtcbiAgICAgICAgICAgIG1vZGlmaWVycy5wdXNoKHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ0tFWV9NT0RJRklFUi5TSElGVCcpKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAob3B0aW9uLmtleWJvYXJkU2hvcnRjdXQubW9kaWZpZXJzPy5pbmNsdWRlcygnQ3RybC9DbWQnKSkge1xuICAgICAgICAgICAgbW9kaWZpZXJzLnB1c2godGhpcy50cmFuc2xhdGUuaW5zdGFudCgnS0VZX01PRElGSUVSLkNUUkwnKSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIChtb2RpZmllcnMubGVuZ3RoID8gbW9kaWZpZXJzLmpvaW4oJyArICcpICsgJyArICcgOiAnJykgK1xuICAgICAgICAgICAgb3B0aW9uLmtleWJvYXJkU2hvcnRjdXQua2V5Q29kZS5yZXBsYWNlKCdLZXknLCAnJylcbiAgICAgICAgKTtcbiAgICB9XG59XG4iXX0=
@@ -0,0 +1,29 @@
1
+ import { Pipe } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@ngx-translate/core";
4
+ export class ReplaceCharsPipe {
5
+ transform(value, args) {
6
+ let i = 0;
7
+ if (!Array.isArray(args.search)) {
8
+ args.search = [args.search];
9
+ }
10
+ if (args.replace && !Array.isArray(args.replace)) {
11
+ args.replace = [args.replace];
12
+ }
13
+ for (let arg of args.search) {
14
+ value = value.split(arg).join(args.replace ? args.replace[i] : '');
15
+ i++;
16
+ }
17
+ return value;
18
+ }
19
+ constructor(translate) {
20
+ this.translate = translate;
21
+ }
22
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: ReplaceCharsPipe, deps: [{ token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Pipe }); }
23
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.2.6", ngImport: i0, type: ReplaceCharsPipe, name: "replaceChars" }); }
24
+ }
25
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: ReplaceCharsPipe, decorators: [{
26
+ type: Pipe,
27
+ args: [{ name: 'replaceChars' }]
28
+ }], ctorParameters: function () { return [{ type: i1.TranslateService }]; } });
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwbGFjZS1jaGFycy5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWR1LXNoYXJpbmctdWkvc3JjL2xpYi9waXBlcy9yZXBsYWNlLWNoYXJzLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7OztBQUlwRCxNQUFNLE9BQU8sZ0JBQWdCO0lBQ3pCLFNBQVMsQ0FBQyxLQUFhLEVBQUUsSUFBUztRQUM5QixJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDVixJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDN0IsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUMvQjtRQUNELElBQUksSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQzlDLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDakM7UUFDRCxLQUFLLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDekIsS0FBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ25FLENBQUMsRUFBRSxDQUFDO1NBQ1A7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO0lBQ0QsWUFBb0IsU0FBMkI7UUFBM0IsY0FBUyxHQUFULFNBQVMsQ0FBa0I7SUFBRyxDQUFDOzhHQWYxQyxnQkFBZ0I7NEdBQWhCLGdCQUFnQjs7MkZBQWhCLGdCQUFnQjtrQkFENUIsSUFBSTttQkFBQyxFQUFFLElBQUksRUFBRSxjQUFjLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5cbkBQaXBlKHsgbmFtZTogJ3JlcGxhY2VDaGFycycgfSlcbmV4cG9ydCBjbGFzcyBSZXBsYWNlQ2hhcnNQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gICAgdHJhbnNmb3JtKHZhbHVlOiBzdHJpbmcsIGFyZ3M6IGFueSk6IHN0cmluZyB7XG4gICAgICAgIGxldCBpID0gMDtcbiAgICAgICAgaWYgKCFBcnJheS5pc0FycmF5KGFyZ3Muc2VhcmNoKSkge1xuICAgICAgICAgICAgYXJncy5zZWFyY2ggPSBbYXJncy5zZWFyY2hdO1xuICAgICAgICB9XG4gICAgICAgIGlmIChhcmdzLnJlcGxhY2UgJiYgIUFycmF5LmlzQXJyYXkoYXJncy5yZXBsYWNlKSkge1xuICAgICAgICAgICAgYXJncy5yZXBsYWNlID0gW2FyZ3MucmVwbGFjZV07XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChsZXQgYXJnIG9mIGFyZ3Muc2VhcmNoKSB7XG4gICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLnNwbGl0KGFyZykuam9pbihhcmdzLnJlcGxhY2UgPyBhcmdzLnJlcGxhY2VbaV0gOiAnJyk7XG4gICAgICAgICAgICBpKys7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSkge31cbn1cbiJdfQ==
@@ -0,0 +1,19 @@
1
+ import { Pipe } from '@angular/core';
2
+ import { VCard } from '../util/VCard';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@ngx-translate/core";
5
+ export class VCardNamePipe {
6
+ constructor(translate) {
7
+ this.translate = translate;
8
+ }
9
+ transform(authority, args = null) {
10
+ return authority ? new VCard(authority).getDisplayName() : '';
11
+ }
12
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: VCardNamePipe, deps: [{ token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Pipe }); }
13
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.2.6", ngImport: i0, type: VCardNamePipe, name: "vcardName" }); }
14
+ }
15
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: VCardNamePipe, decorators: [{
16
+ type: Pipe,
17
+ args: [{ name: 'vcardName' }]
18
+ }], ctorParameters: function () { return [{ type: i1.TranslateService }]; } });
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmNhcmQtbmFtZS5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWR1LXNoYXJpbmctdWkvc3JjL2xpYi9waXBlcy92Y2FyZC1uYW1lLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFFcEQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBR3RDLE1BQU0sT0FBTyxhQUFhO0lBQ3RCLFlBQW9CLFNBQTJCO1FBQTNCLGNBQVMsR0FBVCxTQUFTLENBQWtCO0lBQUcsQ0FBQztJQUNuRCxTQUFTLENBQUMsU0FBaUIsRUFBRSxPQUFpQixJQUFJO1FBQzlDLE9BQU8sU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQ2xFLENBQUM7OEdBSlEsYUFBYTs0R0FBYixhQUFhOzsyRkFBYixhQUFhO2tCQUR6QixJQUFJO21CQUFDLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IFZDYXJkIH0gZnJvbSAnLi4vdXRpbC9WQ2FyZCc7XG5cbkBQaXBlKHsgbmFtZTogJ3ZjYXJkTmFtZScgfSlcbmV4cG9ydCBjbGFzcyBWQ2FyZE5hbWVQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UpIHt9XG4gICAgdHJhbnNmb3JtKGF1dGhvcml0eTogc3RyaW5nLCBhcmdzOiBzdHJpbmdbXSA9IG51bGwpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gYXV0aG9yaXR5ID8gbmV3IFZDYXJkKGF1dGhvcml0eSkuZ2V0RGlzcGxheU5hbWUoKSA6ICcnO1xuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,3 @@
1
+ export class AppService {
2
+ }
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lZHUtc2hhcmluZy11aS9zcmMvbGliL3NlcnZpY2VzL2Fic3RyYWN0L2FwcC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBZ0IsVUFBVTtDQUcvQiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBcHBTZXJ2aWNlIHtcbiAgICBhYnN0cmFjdCBpc1J1bm5pbmdBcHAoKTogYm9vbGVhbjtcbiAgICBhYnN0cmFjdCBnZXRMYW5ndWFnZSgpOiBQcm9taXNlPHN0cmluZz47XG59XG4iXX0=