geonetwork-ui 2.2.0-dev.e3947702 → 2.2.0-dev.ecc0ab67

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 (227) hide show
  1. package/esm2022/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.mjs +42 -51
  2. package/esm2022/libs/api/metadata-converter/src/lib/gn4/gn4.metadata.mapper.mjs +4 -3
  3. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/converter.mjs +16 -11
  4. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/read-parts.mjs +23 -16
  5. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/write-parts.mjs +21 -18
  6. package/esm2022/libs/api/repository/src/lib/gn4/organizations/organizations-from-metadata.service.mjs +10 -3
  7. package/esm2022/libs/api/repository/src/lib/gn4/platform/gn4-platform.mapper.mjs +14 -5
  8. package/esm2022/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.mjs +33 -8
  9. package/esm2022/libs/api/repository/src/lib/gn4/selection/selection.service.mjs +13 -26
  10. package/esm2022/libs/common/domain/src/lib/model/record/metadata.model.mjs +1 -1
  11. package/esm2022/libs/common/domain/src/lib/model/search/aggregation.model.mjs +1 -1
  12. package/esm2022/libs/common/domain/src/lib/model/search/field.model.mjs +2 -0
  13. package/esm2022/libs/common/domain/src/lib/model/search/filter.model.mjs +1 -1
  14. package/esm2022/libs/common/domain/src/lib/model/search/index.mjs +2 -1
  15. package/esm2022/libs/common/domain/src/lib/model/search/search.model.mjs +1 -1
  16. package/esm2022/libs/common/domain/src/lib/model/thesaurus/thesaurus.model.mjs +1 -1
  17. package/esm2022/libs/common/domain/src/lib/platform.service.interface.mjs +1 -1
  18. package/esm2022/libs/feature/catalog/src/lib/my-org/my-org.service.mjs +4 -10
  19. package/esm2022/libs/feature/record/src/lib/state/mdview.reducer.mjs +2 -2
  20. package/esm2022/libs/feature/search/src/index.mjs +4 -1
  21. package/esm2022/libs/feature/search/src/lib/favorites/favorite-star/favorite-star.component.mjs +1 -1
  22. package/esm2022/libs/feature/search/src/lib/feature-search.module.mjs +2 -6
  23. package/esm2022/libs/feature/search/src/lib/filter-dropdown/filter-dropdown.component.mjs +1 -1
  24. package/esm2022/libs/feature/search/src/lib/filter-geometry.token.mjs +4 -0
  25. package/esm2022/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.mjs +7 -3
  26. package/esm2022/libs/feature/search/src/lib/record-url.token.mjs +4 -0
  27. package/esm2022/libs/feature/search/src/lib/results-list/results-list.container.component.mjs +2 -2
  28. package/esm2022/libs/feature/search/src/lib/results-table/results-table.component.mjs +128 -0
  29. package/esm2022/libs/feature/search/src/lib/state/effects.mjs +6 -4
  30. package/esm2022/libs/feature/search/src/lib/state/search.facade.mjs +3 -2
  31. package/esm2022/libs/feature/search/src/lib/utils/service/fields.mjs +41 -26
  32. package/esm2022/libs/feature/search/src/lib/utils/service/fields.service.mjs +11 -9
  33. package/esm2022/libs/ui/elements/src/lib/image-overlay-preview/image-overlay-preview.component.mjs +3 -3
  34. package/esm2022/libs/ui/elements/src/lib/markdown-parser/markdown-parser.component.mjs +2 -2
  35. package/esm2022/libs/ui/elements/src/lib/metadata-contact/metadata-contact.component.mjs +3 -3
  36. package/esm2022/libs/ui/elements/src/lib/metadata-info/metadata-info.component.mjs +35 -22
  37. package/esm2022/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.mjs +2 -3
  38. package/esm2022/libs/ui/elements/src/lib/record-api-form/record-api-form.component.mjs +9 -6
  39. package/esm2022/libs/ui/inputs/src/index.mjs +2 -1
  40. package/esm2022/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.mjs +3 -3
  41. package/esm2022/libs/ui/inputs/src/lib/checkbox/checkbox.component.mjs +3 -3
  42. package/esm2022/libs/ui/inputs/src/lib/dropdown-multiselect/dropdown-multiselect.component.mjs +3 -3
  43. package/esm2022/libs/ui/inputs/src/lib/editable-label/editable-label.directive.mjs +3 -2
  44. package/esm2022/libs/ui/inputs/src/lib/ui-inputs.module.mjs +5 -5
  45. package/esm2022/libs/ui/layout/src/index.mjs +3 -1
  46. package/esm2022/libs/ui/layout/src/lib/interactive-table/interactive-table-column/interactive-table-column.component.mjs +36 -0
  47. package/esm2022/libs/ui/layout/src/lib/interactive-table/interactive-table.component.mjs +37 -0
  48. package/esm2022/libs/ui/search/src/index.mjs +1 -2
  49. package/esm2022/libs/ui/search/src/lib/ui-search.module.mjs +9 -10
  50. package/esm2022/libs/util/i18n/src/index.mjs +1 -2
  51. package/esm2022/translations/de.json +6 -4
  52. package/esm2022/translations/en.json +9 -7
  53. package/esm2022/translations/es.json +6 -4
  54. package/esm2022/translations/fr.json +9 -7
  55. package/esm2022/translations/it.json +8 -6
  56. package/esm2022/translations/nl.json +6 -4
  57. package/esm2022/translations/pt.json +6 -4
  58. package/fesm2022/geonetwork-ui.mjs +511 -525
  59. package/fesm2022/geonetwork-ui.mjs.map +1 -1
  60. package/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.d.ts +0 -1
  61. package/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.d.ts.map +1 -1
  62. package/libs/api/metadata-converter/src/lib/gn4/gn4.metadata.mapper.d.ts.map +1 -1
  63. package/libs/api/metadata-converter/src/lib/iso19139/converter.d.ts.map +1 -1
  64. package/libs/api/metadata-converter/src/lib/iso19139/read-parts.d.ts +5 -4
  65. package/libs/api/metadata-converter/src/lib/iso19139/read-parts.d.ts.map +1 -1
  66. package/libs/api/metadata-converter/src/lib/iso19139/write-parts.d.ts +3 -2
  67. package/libs/api/metadata-converter/src/lib/iso19139/write-parts.d.ts.map +1 -1
  68. package/libs/api/repository/src/lib/gn4/organizations/organizations-from-metadata.service.d.ts.map +1 -1
  69. package/libs/api/repository/src/lib/gn4/platform/gn4-platform.mapper.d.ts +1 -1
  70. package/libs/api/repository/src/lib/gn4/platform/gn4-platform.mapper.d.ts.map +1 -1
  71. package/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.d.ts +9 -2
  72. package/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.d.ts.map +1 -1
  73. package/libs/api/repository/src/lib/gn4/selection/selection.service.d.ts +4 -5
  74. package/libs/api/repository/src/lib/gn4/selection/selection.service.d.ts.map +1 -1
  75. package/libs/common/domain/src/lib/model/record/metadata.model.d.ts +5 -10
  76. package/libs/common/domain/src/lib/model/record/metadata.model.d.ts.map +1 -1
  77. package/libs/common/domain/src/lib/model/search/aggregation.model.d.ts +1 -1
  78. package/libs/common/domain/src/lib/model/search/aggregation.model.d.ts.map +1 -1
  79. package/libs/common/domain/src/lib/model/search/field.model.d.ts +2 -0
  80. package/libs/common/domain/src/lib/model/search/field.model.d.ts.map +1 -0
  81. package/libs/common/domain/src/lib/model/search/filter.model.d.ts +1 -1
  82. package/libs/common/domain/src/lib/model/search/filter.model.d.ts.map +1 -1
  83. package/libs/common/domain/src/lib/model/search/index.d.ts +1 -0
  84. package/libs/common/domain/src/lib/model/search/index.d.ts.map +1 -1
  85. package/libs/common/domain/src/lib/model/search/search.model.d.ts +2 -3
  86. package/libs/common/domain/src/lib/model/search/search.model.d.ts.map +1 -1
  87. package/libs/common/domain/src/lib/model/thesaurus/thesaurus.model.d.ts +1 -0
  88. package/libs/common/domain/src/lib/model/thesaurus/thesaurus.model.d.ts.map +1 -1
  89. package/libs/common/domain/src/lib/platform.service.interface.d.ts +1 -1
  90. package/libs/common/domain/src/lib/platform.service.interface.d.ts.map +1 -1
  91. package/libs/feature/catalog/src/lib/my-org/my-org.service.d.ts +0 -1
  92. package/libs/feature/catalog/src/lib/my-org/my-org.service.d.ts.map +1 -1
  93. package/libs/feature/search/src/index.d.ts +3 -0
  94. package/libs/feature/search/src/index.d.ts.map +1 -1
  95. package/libs/feature/search/src/lib/favorites/favorite-star/favorite-star.component.d.ts +3 -3
  96. package/libs/feature/search/src/lib/favorites/favorite-star/favorite-star.component.d.ts.map +1 -1
  97. package/libs/feature/search/src/lib/feature-search.module.d.ts +0 -4
  98. package/libs/feature/search/src/lib/feature-search.module.d.ts.map +1 -1
  99. package/libs/feature/search/src/lib/filter-dropdown/filter-dropdown.component.d.ts +3 -2
  100. package/libs/feature/search/src/lib/filter-dropdown/filter-dropdown.component.d.ts.map +1 -1
  101. package/libs/feature/search/src/lib/filter-geometry.token.d.ts +4 -0
  102. package/libs/feature/search/src/lib/filter-geometry.token.d.ts.map +1 -0
  103. package/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.d.ts +1 -1
  104. package/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.d.ts.map +1 -1
  105. package/libs/feature/search/src/lib/record-url.token.d.ts +3 -0
  106. package/libs/feature/search/src/lib/record-url.token.d.ts.map +1 -0
  107. package/libs/feature/search/src/lib/results-table/results-table.component.d.ts +33 -0
  108. package/libs/feature/search/src/lib/results-table/results-table.component.d.ts.map +1 -0
  109. package/libs/feature/search/src/lib/state/effects.d.ts.map +1 -1
  110. package/libs/feature/search/src/lib/state/search.facade.d.ts +1 -1
  111. package/libs/feature/search/src/lib/state/search.facade.d.ts.map +1 -1
  112. package/libs/feature/search/src/lib/utils/service/fields.d.ts +21 -8
  113. package/libs/feature/search/src/lib/utils/service/fields.d.ts.map +1 -1
  114. package/libs/feature/search/src/lib/utils/service/fields.service.d.ts.map +1 -1
  115. package/libs/ui/elements/src/lib/metadata-info/metadata-info.component.d.ts +7 -3
  116. package/libs/ui/elements/src/lib/metadata-info/metadata-info.component.d.ts.map +1 -1
  117. package/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.d.ts.map +1 -1
  118. package/libs/ui/elements/src/lib/record-api-form/record-api-form.component.d.ts +3 -1
  119. package/libs/ui/elements/src/lib/record-api-form/record-api-form.component.d.ts.map +1 -1
  120. package/libs/ui/inputs/src/index.d.ts +1 -0
  121. package/libs/ui/inputs/src/index.d.ts.map +1 -1
  122. package/libs/ui/inputs/src/lib/editable-label/editable-label.directive.d.ts +1 -1
  123. package/libs/ui/inputs/src/lib/editable-label/editable-label.directive.d.ts.map +1 -1
  124. package/libs/ui/inputs/src/lib/ui-inputs.module.d.ts +18 -18
  125. package/libs/ui/layout/src/index.d.ts +2 -0
  126. package/libs/ui/layout/src/index.d.ts.map +1 -1
  127. package/libs/ui/layout/src/lib/interactive-table/interactive-table-column/interactive-table-column.component.d.ts +14 -0
  128. package/libs/ui/layout/src/lib/interactive-table/interactive-table-column/interactive-table-column.component.d.ts.map +1 -0
  129. package/libs/ui/layout/src/lib/interactive-table/interactive-table.component.d.ts +15 -0
  130. package/libs/ui/layout/src/lib/interactive-table/interactive-table.component.d.ts.map +1 -0
  131. package/libs/ui/search/src/index.d.ts +0 -1
  132. package/libs/ui/search/src/index.d.ts.map +1 -1
  133. package/libs/ui/search/src/lib/ui-search.module.d.ts +15 -15
  134. package/libs/ui/search/src/lib/ui-search.module.d.ts.map +1 -1
  135. package/libs/util/i18n/src/index.d.ts +0 -1
  136. package/libs/util/i18n/src/index.d.ts.map +1 -1
  137. package/package.json +2 -2
  138. package/src/libs/api/metadata-converter/src/lib/fixtures/generic.records.ts +6 -6
  139. package/src/libs/api/metadata-converter/src/lib/fixtures/geo2france.records.ts +5 -3
  140. package/src/libs/api/metadata-converter/src/lib/fixtures/geocat-ch.records.ts +22 -4
  141. package/src/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.ts +69 -65
  142. package/src/libs/api/metadata-converter/src/lib/gn4/gn4.metadata.mapper.ts +3 -2
  143. package/src/libs/api/metadata-converter/src/lib/iso19139/converter.ts +19 -12
  144. package/src/libs/api/metadata-converter/src/lib/iso19139/read-parts.ts +62 -43
  145. package/src/libs/api/metadata-converter/src/lib/iso19139/write-parts.ts +91 -59
  146. package/src/libs/api/repository/src/lib/gn4/organizations/organizations-from-metadata.service.ts +22 -2
  147. package/src/libs/api/repository/src/lib/gn4/platform/gn4-platform.mapper.ts +15 -4
  148. package/src/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.ts +47 -8
  149. package/src/libs/api/repository/src/lib/gn4/selection/selection.service.ts +14 -38
  150. package/src/libs/common/domain/src/lib/model/record/metadata.model.ts +5 -11
  151. package/src/libs/common/domain/src/lib/model/search/aggregation.model.ts +1 -1
  152. package/src/libs/common/domain/src/lib/model/search/field.model.ts +1 -0
  153. package/src/libs/common/domain/src/lib/model/search/filter.model.ts +1 -1
  154. package/src/libs/common/domain/src/lib/model/search/index.ts +1 -0
  155. package/src/libs/common/domain/src/lib/model/search/search.model.ts +2 -2
  156. package/src/libs/common/domain/src/lib/model/thesaurus/thesaurus.model.ts +1 -0
  157. package/src/libs/common/domain/src/lib/model/user/index.ts +1 -0
  158. package/src/libs/common/domain/src/lib/platform.service.interface.ts +1 -4
  159. package/src/libs/common/fixtures/src/lib/gn4/groups.fixtures.ts +1 -1
  160. package/src/libs/common/fixtures/src/lib/records.fixtures.ts +6 -2
  161. package/src/libs/feature/catalog/src/lib/my-org/my-org.service.ts +4 -16
  162. package/src/libs/feature/record/src/lib/state/mdview.reducer.ts +1 -1
  163. package/src/libs/feature/search/src/index.ts +3 -0
  164. package/src/libs/feature/search/src/lib/favorites/favorite-star/favorite-star.component.ts +1 -1
  165. package/src/libs/feature/search/src/lib/feature-search.module.ts +1 -10
  166. package/src/libs/feature/search/src/lib/filter-dropdown/filter-dropdown.component.ts +4 -4
  167. package/src/libs/feature/search/src/lib/filter-geometry.token.ts +7 -0
  168. package/src/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.ts +9 -3
  169. package/src/libs/feature/search/src/lib/record-url.token.ts +4 -0
  170. package/src/libs/feature/search/src/lib/results-list/results-list.container.component.ts +1 -1
  171. package/src/libs/feature/search/src/lib/results-table/results-table.component.css +0 -0
  172. package/src/libs/feature/search/src/lib/results-table/results-table.component.html +112 -0
  173. package/src/libs/feature/search/src/lib/results-table/results-table.component.ts +164 -0
  174. package/src/libs/feature/search/src/lib/state/effects.ts +5 -4
  175. package/src/libs/feature/search/src/lib/state/search.facade.ts +2 -1
  176. package/src/libs/feature/search/src/lib/utils/service/fields.service.ts +21 -16
  177. package/src/libs/feature/search/src/lib/utils/service/fields.ts +43 -34
  178. package/src/libs/ui/elements/src/lib/image-overlay-preview/image-overlay-preview.component.html +3 -2
  179. package/src/libs/ui/elements/src/lib/markdown-parser/markdown-parser.component.css +2 -2
  180. package/src/libs/ui/elements/src/lib/metadata-contact/metadata-contact.component.html +1 -1
  181. package/src/libs/ui/elements/src/lib/metadata-info/metadata-info.component.html +45 -18
  182. package/src/libs/ui/elements/src/lib/metadata-info/metadata-info.component.ts +31 -12
  183. package/src/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.ts +1 -2
  184. package/src/libs/ui/elements/src/lib/record-api-form/record-api-form.component.html +5 -5
  185. package/src/libs/ui/elements/src/lib/record-api-form/record-api-form.component.ts +12 -4
  186. package/src/libs/ui/inputs/src/index.ts +1 -0
  187. package/src/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.html +1 -1
  188. package/src/libs/ui/inputs/src/lib/checkbox/checkbox.component.html +0 -1
  189. package/src/libs/ui/inputs/src/lib/dropdown-multiselect/dropdown-multiselect.component.html +1 -1
  190. package/src/libs/ui/inputs/src/lib/editable-label/editable-label.directive.ts +1 -0
  191. package/src/libs/ui/inputs/src/lib/ui-inputs.module.ts +1 -1
  192. package/src/libs/ui/layout/src/index.ts +2 -0
  193. package/src/libs/ui/layout/src/lib/interactive-table/interactive-table-column/interactive-table-column.component.css +0 -0
  194. package/src/libs/ui/layout/src/lib/interactive-table/interactive-table-column/interactive-table-column.component.html +1 -0
  195. package/src/libs/ui/layout/src/lib/interactive-table/interactive-table-column/interactive-table-column.component.ts +33 -0
  196. package/src/libs/ui/layout/src/lib/interactive-table/interactive-table.component.css +15 -0
  197. package/src/libs/ui/layout/src/lib/interactive-table/interactive-table.component.html +54 -0
  198. package/src/libs/ui/layout/src/lib/interactive-table/interactive-table.component.ts +42 -0
  199. package/src/libs/ui/search/src/index.ts +0 -1
  200. package/src/libs/ui/search/src/lib/ui-search.module.ts +2 -3
  201. package/src/libs/util/i18n/src/index.ts +0 -1
  202. package/translations/de.json +6 -4
  203. package/translations/en.json +9 -7
  204. package/translations/es.json +6 -4
  205. package/translations/fr.json +9 -7
  206. package/translations/it.json +8 -6
  207. package/translations/nl.json +6 -4
  208. package/translations/pt.json +6 -4
  209. package/translations/sk.json +6 -4
  210. package/esm2022/libs/ui/search/src/lib/record-table/record-table.component.mjs +0 -145
  211. package/esm2022/libs/util/i18n/src/lib/testing/test.translate.loader.mjs +0 -24
  212. package/esm2022/libs/util/i18n/src/lib/testing/test.translate.module.mjs +0 -109
  213. package/esm2022/libs/util/i18n/src/lib/testing/translations.model.mjs +0 -6
  214. package/libs/ui/search/src/lib/record-table/record-table.component.d.ts +0 -31
  215. package/libs/ui/search/src/lib/record-table/record-table.component.d.ts.map +0 -1
  216. package/libs/util/i18n/src/lib/testing/test.translate.loader.d.ts +0 -17
  217. package/libs/util/i18n/src/lib/testing/test.translate.loader.d.ts.map +0 -1
  218. package/libs/util/i18n/src/lib/testing/test.translate.module.d.ts +0 -131
  219. package/libs/util/i18n/src/lib/testing/test.translate.module.d.ts.map +0 -1
  220. package/libs/util/i18n/src/lib/testing/translations.model.d.ts +0 -21
  221. package/libs/util/i18n/src/lib/testing/translations.model.d.ts.map +0 -1
  222. package/src/libs/ui/search/src/lib/record-table/record-table.component.css +0 -7
  223. package/src/libs/ui/search/src/lib/record-table/record-table.component.html +0 -215
  224. package/src/libs/ui/search/src/lib/record-table/record-table.component.ts +0 -149
  225. package/src/libs/util/i18n/src/lib/testing/test.translate.loader.ts +0 -26
  226. package/src/libs/util/i18n/src/lib/testing/test.translate.module.ts +0 -235
  227. package/src/libs/util/i18n/src/lib/testing/translations.model.ts +0 -28
@@ -1,149 +0,0 @@
1
- import { Component, EventEmitter, Input, Output } from '@angular/core'
2
- import { CatalogRecord } from '../../../../../../libs/common/domain/src/lib/model/record'
3
- import {
4
- FileFormat,
5
- getBadgeColor,
6
- getFileFormat,
7
- getFormatPriority,
8
- } from '../../../../../../libs/util/shared/src'
9
- import { SortByField } from '../../../../../../libs/common/domain/src/lib/model/search'
10
-
11
- @Component({
12
- selector: 'gn-ui-record-table',
13
- templateUrl: './record-table.component.html',
14
- styleUrls: ['./record-table.component.css'],
15
- })
16
- export class RecordTableComponent {
17
- @Input() selectedRecords: string[] = []
18
- @Input() records: any[] = []
19
- @Input() totalHits?: number
20
- @Input() sortBy?: SortByField
21
- @Output() recordClick = new EventEmitter<CatalogRecord>()
22
- @Output() recordsSelect = new EventEmitter<CatalogRecord[]>()
23
- @Output() recordsDeselect = new EventEmitter<CatalogRecord[]>()
24
- @Output() sortByChange = new EventEmitter<SortByField>()
25
-
26
- dateToString(date: Date): string {
27
- return date?.toLocaleDateString(undefined, {
28
- year: 'numeric',
29
- month: 'long',
30
- day: 'numeric',
31
- timeZone: 'UTC',
32
- })
33
- }
34
-
35
- getStatus(isPublishedToAll: boolean | unknown) {
36
- return isPublishedToAll ? 'published' : 'not published'
37
- }
38
-
39
- formatUserInfo(userInfo: string | unknown): string {
40
- const infos = (typeof userInfo === 'string' ? userInfo : '').split('|')
41
- if (infos && infos.length === 4) {
42
- return `${infos[2]} ${infos[1]}`
43
- }
44
- return undefined
45
- }
46
-
47
- getRecordFormats(record: CatalogRecord): FileFormat[] {
48
- if (record.kind === 'service' || !('distributions' in record)) {
49
- return []
50
- }
51
- const formats = Array.from(
52
- new Set(
53
- record.distributions.map((distribution) => getFileFormat(distribution))
54
- )
55
- ).filter((format) => !!format)
56
- formats.sort((a, b) => getFormatPriority(b) - getFormatPriority(a))
57
- return formats
58
- }
59
-
60
- getBadgeColor(format: FileFormat): string {
61
- return getBadgeColor(format)
62
- }
63
-
64
- private getOrderForColumn(col: string): 'asc' | 'desc' | null {
65
- if (!this.sortBy) {
66
- return null
67
- }
68
- let order: 'asc' | 'desc' | null = null
69
- const sortedArray = Array.isArray(this.sortBy[0])
70
- ? this.sortBy
71
- : [this.sortBy]
72
- sortedArray.forEach((sortedCol) => {
73
- if (sortedCol[1] === col) {
74
- order = sortedCol[0]
75
- }
76
- })
77
- return order
78
- }
79
-
80
- setSortBy(col: string): void {
81
- const sortOrder = this.getOrderForColumn(col)
82
- let newOrder
83
- if (sortOrder) {
84
- newOrder = sortOrder === 'asc' ? 'desc' : 'asc'
85
- } else {
86
- newOrder = 'asc'
87
- }
88
- this.sortByChange.emit([newOrder, col])
89
- this.sortBy = [newOrder, col]
90
- }
91
-
92
- isSortedBy(col: string, order: 'asc' | 'desc'): boolean {
93
- const sortOrder = this.getOrderForColumn(col)
94
- return sortOrder === order
95
- }
96
-
97
- isChecked(record: CatalogRecord) {
98
- if (this.selectedRecords.includes(record.uniqueIdentifier)) {
99
- return true
100
- }
101
- return false
102
- }
103
-
104
- handleRecordSelectedChange(selected: boolean, record: CatalogRecord) {
105
- if (!selected) {
106
- this.recordsDeselect.emit([record])
107
- this.selectedRecords = this.selectedRecords.filter(
108
- (val) => val !== record.uniqueIdentifier
109
- )
110
- } else {
111
- this.recordsSelect.emit([record])
112
- this.selectedRecords.push(record.uniqueIdentifier)
113
- }
114
- }
115
-
116
- selectAll() {
117
- if (this.isAllSelected()) {
118
- this.recordsDeselect.emit(this.records)
119
- this.selectedRecords = []
120
- } else {
121
- this.recordsSelect.emit(this.records)
122
- this.selectedRecords = this.records.map((record) => {
123
- return record.uniqueIdentifier
124
- })
125
- }
126
- }
127
-
128
- isAllSelected(): boolean {
129
- if (this.selectedRecords.length === this.records.length) {
130
- const allRecords = this.records.filter((record) =>
131
- this.selectedRecords.includes(record.uniqueIdentifier)
132
- )
133
- if (allRecords.length === this.records.length) {
134
- return true
135
- }
136
- }
137
- return false
138
- }
139
-
140
- isSomeSelected(): boolean {
141
- if (
142
- this.selectedRecords.length > 0 &&
143
- this.selectedRecords.length < this.records.length
144
- ) {
145
- return true
146
- }
147
- return false
148
- }
149
- }
@@ -1,26 +0,0 @@
1
- import { TranslateLoader } from '@ngx-translate/core'
2
- import { Observable, of as observableOf } from 'rxjs'
3
- import { Translations, LanguageTranslations } from './translations.model'
4
-
5
- // IMPORTANT:
6
- // This was copy-pasted from https://github.com/mwootendev/ngx-translate-plugins/blob/7c6c73c7d16c9519a7bafff939d29fd8ea5e574a/projects/testing/src/lib/test-translate-loader.service.ts
7
- // because the original package was expecting rxjs 7+ as a peer dep and that was conflicting with many other dependencies
8
- // FIXME: when rxjs 7 can be used in the project, remove this and do `npm install ngx-translate-testing --save-dev`
9
-
10
- export class TestTranslateLoader extends TranslateLoader {
11
- constructor(private _translations: Translations = {}) {
12
- super()
13
- }
14
-
15
- /**
16
- * Returns an {Observable} of translations for the specified language. If the
17
- * language is not recognized, an empty translations object will be returned.
18
- *
19
- * @param language the language for which the translations should be retrieved.
20
- * @returns the translations for the specified
21
- * language or an empty set of translations if the language is not recognized.
22
- */
23
- public getTranslation(language: string): Observable<LanguageTranslations> {
24
- return observableOf(this._translations[language] || {})
25
- }
26
- }
@@ -1,235 +0,0 @@
1
- import { ModuleWithProviders, NgModule } from '@angular/core'
2
- import {
3
- FakeMissingTranslationHandler,
4
- TranslateDefaultParser,
5
- TranslateFakeCompiler,
6
- TranslateModule,
7
- TranslateService,
8
- TranslateCompiler,
9
- } from '@ngx-translate/core'
10
- import { TestTranslateLoader } from './test.translate.loader'
11
- import { LanguageTranslations, Translations } from './translations.model'
12
-
13
- // IMPORTANT:
14
- // This was copy-pasted from https://github.com/mwootendev/ngx-translate-plugins/blob/7c6c73c7d16c9519a7bafff939d29fd8ea5e574a/projects/testing/src/lib/testing.module.ts
15
- // because the original package was expecting rxjs 7+ as a peer dep and that was conflicting with many other dependencies
16
- // FIXME: when rxjs 7 can be used in the project, remove this and do `npm install ngx-translate-testing --save-dev`
17
-
18
- /**
19
- * The TranslateTestingModule provides the {TranslateModule} as well as a
20
- * {TranslateService} configured to return translations specific for the
21
- * test environment.
22
- *
23
- * @export
24
- */
25
- @NgModule({
26
- imports: [TranslateModule],
27
- exports: [TranslateModule],
28
- })
29
- export class TranslateTestingModule
30
- implements ModuleWithProviders<TranslateTestingModule>
31
- {
32
- private _translations: Translations = {}
33
-
34
- private _defaultLanguage: string
35
-
36
- private _compiler: TranslateCompiler
37
-
38
- /**
39
- * Creates a new instance of the {TranslateTestingModule} with translations for the specified language.
40
- *
41
- * @example
42
- *
43
- * const ENGLISH_TRANSLATIONS = { greeting: 'Hello' };
44
- * const translateModule = TranslateTestingModule.withTranslations('en', ENGLISH_TRANSLATIONS);
45
- *
46
- * @example
47
- *
48
- * TranslateTestingModule.withTranslations('en', require('../../assets/i18n/en.json'));
49
- *
50
- * @static
51
- * @param {string} language the language for the translations.
52
- * @param {Translations} translations the translations to be used in the tests.
53
- * @returns the new instance that can be used to chain additional configuration.
54
- * @memberof TranslateTestingModule
55
- */
56
- public static withTranslations(
57
- language: string,
58
- translations: LanguageTranslations
59
- ): TranslateTestingModule
60
-
61
- /**
62
- * Creates a new instance of the {TranslateTestingModule} with the provided translations.
63
- *
64
- * @example
65
- *
66
- * const TRANSLATIONS = { en: { greeting: 'Hello' }, es: { greeting: 'Hola' } };
67
- * const translateModule = TranslateTestingModule.withTranslations(TRANSLATIONS);
68
- *
69
- * @example
70
- *
71
- * TranslateTestingModule.withTranslations(require('./test.i18n.json'));
72
- *
73
- * @static
74
- * @param {Translations} the language translations the translations to be used in the tests.
75
- * @returns the new instance that can be used to chain additional configuration.
76
- * @memberof TranslateTestingModule
77
- */
78
- public static withTranslations(
79
- translations: Translations
80
- ): TranslateTestingModule
81
-
82
- public static withTranslations(
83
- languageOrTranslations: string | Translations,
84
- translations?: LanguageTranslations
85
- ): TranslateTestingModule {
86
- const translateTestingModule = new TranslateTestingModule()
87
-
88
- if (typeof languageOrTranslations === 'string') {
89
- return translateTestingModule.withTranslations(
90
- <string>languageOrTranslations,
91
- translations
92
- )
93
- }
94
-
95
- return translateTestingModule.withTranslations(languageOrTranslations)
96
- }
97
-
98
- public get ngModule() {
99
- return TranslateTestingModule
100
- }
101
-
102
- public get providers() {
103
- const translateService = new TranslateService(
104
- null,
105
- new TestTranslateLoader(this._translations),
106
- this._compiler || new TranslateFakeCompiler(),
107
- new TranslateDefaultParser(),
108
- new FakeMissingTranslationHandler(),
109
- true,
110
- true,
111
- false,
112
- this._defaultLanguage
113
- )
114
-
115
- return [
116
- {
117
- provide: TranslateService,
118
- useValue: translateService,
119
- },
120
- ]
121
- }
122
-
123
- /**
124
- * Updates the {TranslateTestingModule} instance with additional translations. The
125
- * translations will be shallowly merged with any existing translations.
126
- *
127
- * @example
128
- *
129
- * const ENGLISH_TRANSLATIONS = { en: { greeting: 'Hello' } };
130
- * const SPANISH_TRANSLATIONS = { en: { greeting: 'Hola' } };
131
- * const translateModule = TranslateTestingModule.withTranslations(ENGLISH_TRANSLATIONS)
132
- * .withTranslations(SPANISH_TRANSLATIONS);
133
- *
134
- * @param {Translations} translations the additional translations to add to the testing service.
135
- * @returns the instance that can be used to chain additional configuration.
136
- * @memberof TranslateTestingModule
137
- */
138
- public withTranslations(translations: Translations): TranslateTestingModule
139
-
140
- /**
141
- * Updates the {TranslateTestingModule} instance with additional translations for a
142
- * specified language. The translations will be shallowly merged with any existing translations.
143
- *
144
- * @example
145
- *
146
- * const ENGLISH_TRANSLATIONS = { greeting: 'Hello' };
147
- * const SPANISH_TRANSLATIONS = { greeting: 'Hola' };
148
- * const translateModule = TranslateTestingModule.withTranslations('en', ENGLISH_TRANSLATIONS)
149
- * .withTranslations('es', SPANISH_TRANSLATIONS);
150
- *
151
- * @example
152
- *
153
- * TranslateTestingModule.withTranslations('en', require('../../assets/i18n/en.json'))
154
- * .withTranslations('es', require('../../assets/i18n/es.json'));
155
- *
156
- * @param {string} language the language for which the new translations are being added.
157
- * @param {LanguageTranslations} translations the translations for the specified language.
158
- * @returns the instance that can be used to chain additional configuration.
159
- * @memberof TranslateTestingModule
160
- */
161
- public withTranslations(
162
- language: string,
163
- translations: LanguageTranslations
164
- ): TranslateTestingModule
165
-
166
- public withTranslations(
167
- languageOrTranslations: string | Translations,
168
- translations?: LanguageTranslations
169
- ): TranslateTestingModule {
170
- if (typeof languageOrTranslations === 'string' && translations) {
171
- this.addTranslations(languageOrTranslations, translations)
172
- this._defaultLanguage = languageOrTranslations
173
- } else if (languageOrTranslations) {
174
- Object.keys(languageOrTranslations).forEach((language) =>
175
- this.addTranslations(language, languageOrTranslations[language])
176
- )
177
- }
178
- return this
179
- }
180
-
181
- /**
182
- * Updates the {TranslationTestingModule} to provide a {TranslateService} that will
183
- * use the provided {TranslateCompiler} to translate the test translations.
184
- *
185
- * @example
186
- *
187
- * TranslateTestingModule.withTranslations('en', {people: '{gender, select, male{He is} female{She is} other{They are}} {how})'})
188
- * .withCompiler(new TranslateMessageFormatCompiler());
189
- *
190
- * @param compiler the compiler to use to compile the test translations.
191
- * @returns the instance that can be used to chain additional configuration.
192
- * @memberof TranslateTestingModule
193
- */
194
- public withCompiler(compiler: TranslateCompiler): TranslateTestingModule {
195
- this._compiler = compiler
196
- return this
197
- }
198
-
199
- /**
200
- * Updates the {TranslateTestingModule} to use the provided language as the default language.
201
- * By default, the default language will be set to the first language provided.
202
- *
203
- * @example
204
- *
205
- * TranslateTestingModule.withTranslations('es', SPANISH_TRANSLATIONS)
206
- * .withTranslations('en', ENGLISH_TRANSLATIONS)
207
- * .withDefaultLanguage('en');
208
- *
209
- * @param language the new default language for translations.
210
- * @returns the instance that can be used to chain additional configuration.
211
- * @memberof TranslateTestingModule
212
- */
213
- public withDefaultLanguage(language: string): TranslateTestingModule {
214
- this._defaultLanguage = language || this._defaultLanguage
215
- return this
216
- }
217
-
218
- private addTranslations(
219
- language: string,
220
- translations: LanguageTranslations
221
- ) {
222
- if (!this._defaultLanguage) {
223
- this._defaultLanguage = language
224
- }
225
-
226
- if (this._translations[language]) {
227
- this._translations[language] = {
228
- ...this._translations[language],
229
- ...translations,
230
- }
231
- } else {
232
- this._translations[language] = translations
233
- }
234
- }
235
- }
@@ -1,28 +0,0 @@
1
- // IMPORTANT:
2
- // This was copy-pasted from https://github.com/mwootendev/ngx-translate-plugins/blob/7c6c73c7d16c9519a7bafff939d29fd8ea5e574a/projects/testing/src/lib/translations.model.ts
3
- // because the original package was expecting rxjs 7+ as a peer dep and that was conflicting with many other dependencies
4
- // FIXME: when rxjs 7 can be used in the project, remove this and do `npm install ngx-translate-testing --save-dev`
5
-
6
- export declare type LanguageTranslation =
7
- | string
8
- | string[]
9
- | { [translationKey: string]: LanguageTranslation }
10
-
11
- /**
12
- * LanguageTranslations represents a mapping between a translation key and the translation for that key
13
- * or to nested translation keys.
14
- *
15
- * @export
16
- */
17
- export interface LanguageTranslations {
18
- [translationKey: string]: LanguageTranslation
19
- }
20
-
21
- /**
22
- * Translations represents a mapping between a language and the translations for that language.
23
- *
24
- * @export
25
- */
26
- export interface Translations {
27
- [language: string]: LanguageTranslations
28
- }