geonetwork-ui 2.2.0-dev.3ee8e2c9 → 2.2.0-dev.40043f45

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 (379) hide show
  1. package/esm2022/libs/api/metadata-converter/src/lib/gn4/atomic-operations.mjs +27 -1
  2. package/esm2022/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.mjs +64 -61
  3. package/esm2022/libs/api/metadata-converter/src/lib/gn4/gn4.metadata.mapper.mjs +7 -4
  4. package/esm2022/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.mjs +1 -1
  5. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/codelists/keyword.mapper.mjs +14 -0
  6. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/converter.mjs +25 -17
  7. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/read-parts.mjs +55 -23
  8. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/write-parts.mjs +52 -32
  9. package/esm2022/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.mjs +2 -2
  10. package/esm2022/libs/api/repository/src/lib/gn4/organizations/organizations-from-metadata.service.mjs +10 -3
  11. package/esm2022/libs/api/repository/src/lib/gn4/platform/gn4-platform.mapper.mjs +14 -5
  12. package/esm2022/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.mjs +33 -8
  13. package/esm2022/libs/api/repository/src/lib/gn4/selection/selection.service.mjs +13 -26
  14. package/esm2022/libs/common/domain/src/lib/model/record/metadata.model.mjs +1 -1
  15. package/esm2022/libs/common/domain/src/lib/model/search/aggregation.model.mjs +1 -1
  16. package/esm2022/libs/common/domain/src/lib/model/search/field.model.mjs +2 -0
  17. package/esm2022/libs/common/domain/src/lib/model/search/filter.model.mjs +1 -1
  18. package/esm2022/libs/common/domain/src/lib/model/search/index.mjs +2 -1
  19. package/esm2022/libs/common/domain/src/lib/model/search/search.model.mjs +1 -1
  20. package/esm2022/libs/common/domain/src/lib/model/thesaurus/thesaurus.model.mjs +1 -1
  21. package/esm2022/libs/common/domain/src/lib/platform.service.interface.mjs +1 -1
  22. package/esm2022/libs/feature/catalog/src/lib/my-org/my-org.service.mjs +4 -10
  23. package/esm2022/libs/feature/editor/src/index.mjs +6 -1
  24. package/esm2022/libs/feature/editor/src/lib/+state/editor.actions.mjs +8 -0
  25. package/esm2022/libs/feature/editor/src/lib/+state/editor.effects.mjs +26 -0
  26. package/esm2022/libs/feature/editor/src/lib/+state/editor.facade.mjs +30 -0
  27. package/esm2022/libs/feature/editor/src/lib/+state/editor.models.mjs +2 -0
  28. package/esm2022/libs/feature/editor/src/lib/+state/editor.reducer.mjs +42 -0
  29. package/esm2022/libs/feature/editor/src/lib/+state/editor.selectors.mjs +13 -0
  30. package/esm2022/libs/feature/editor/src/lib/expressions.mjs +13 -0
  31. package/esm2022/libs/feature/editor/src/lib/feature-editor.module.mjs +16 -4
  32. package/esm2022/libs/feature/editor/src/lib/fields.config.mjs +34 -0
  33. package/esm2022/libs/feature/editor/src/lib/models/fields.model.mjs +2 -0
  34. package/esm2022/libs/feature/editor/src/lib/record-form/record-form.component.mjs +15 -11
  35. package/esm2022/libs/feature/editor/src/lib/services/editor.service.mjs +22 -44
  36. package/esm2022/libs/feature/map/src/lib/feature-map.module.mjs +10 -1
  37. package/esm2022/libs/feature/map/src/lib/geocoding/geocoding.component.mjs +32 -15
  38. package/esm2022/libs/feature/map/src/lib/geocoding.service.mjs +40 -0
  39. package/esm2022/libs/feature/map/src/lib/map-context/map-context.service.mjs +9 -1
  40. package/esm2022/libs/feature/record/src/lib/data-view-permalink/data-view-permalink.component.mjs +13 -13
  41. package/esm2022/libs/feature/record/src/lib/state/mdview.reducer.mjs +2 -2
  42. package/esm2022/libs/feature/router/src/lib/default/index.mjs +2 -1
  43. package/esm2022/libs/feature/router/src/lib/default/router.service.mjs +1 -1
  44. package/esm2022/libs/feature/search/src/index.mjs +4 -1
  45. package/esm2022/libs/feature/search/src/lib/favorites/favorite-star/favorite-star.component.mjs +3 -3
  46. package/esm2022/libs/feature/search/src/lib/feature-search.module.mjs +2 -6
  47. package/esm2022/libs/feature/search/src/lib/filter-dropdown/filter-dropdown.component.mjs +1 -1
  48. package/esm2022/libs/feature/search/src/lib/filter-geometry.token.mjs +4 -0
  49. package/esm2022/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.mjs +7 -3
  50. package/esm2022/libs/feature/search/src/lib/record-url.token.mjs +4 -0
  51. package/esm2022/libs/feature/search/src/lib/results-list/results-list.container.component.mjs +2 -2
  52. package/esm2022/libs/feature/search/src/lib/results-table/results-table.component.mjs +128 -0
  53. package/esm2022/libs/feature/search/src/lib/state/effects.mjs +6 -4
  54. package/esm2022/libs/feature/search/src/lib/state/search.facade.mjs +3 -2
  55. package/esm2022/libs/feature/search/src/lib/utils/service/fields.mjs +41 -26
  56. package/esm2022/libs/feature/search/src/lib/utils/service/fields.service.mjs +11 -9
  57. package/esm2022/libs/ui/catalog/src/lib/language-switcher/language-switcher.component.mjs +3 -3
  58. package/esm2022/libs/ui/elements/src/lib/image-overlay-preview/image-overlay-preview.component.mjs +3 -3
  59. package/esm2022/libs/ui/elements/src/lib/markdown-parser/markdown-parser.component.mjs +3 -3
  60. package/esm2022/libs/ui/elements/src/lib/max-lines/max-lines.component.mjs +5 -3
  61. package/esm2022/libs/ui/elements/src/lib/metadata-contact/metadata-contact.component.mjs +3 -3
  62. package/esm2022/libs/ui/elements/src/lib/metadata-info/metadata-info.component.mjs +47 -22
  63. package/esm2022/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.mjs +3 -4
  64. package/esm2022/libs/ui/elements/src/lib/record-api-form/record-api-form.component.mjs +9 -6
  65. package/esm2022/libs/ui/elements/src/lib/thumbnail/thumbnail.component.mjs +3 -3
  66. package/esm2022/libs/ui/elements/src/lib/ui-elements.module.mjs +4 -4
  67. package/esm2022/libs/ui/inputs/src/index.mjs +2 -1
  68. package/esm2022/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.mjs +3 -3
  69. package/esm2022/libs/ui/inputs/src/lib/button/button.component.mjs +9 -9
  70. package/esm2022/libs/ui/inputs/src/lib/checkbox/checkbox.component.mjs +3 -3
  71. package/esm2022/libs/ui/inputs/src/lib/dropdown-multiselect/dropdown-multiselect.component.mjs +3 -3
  72. package/esm2022/libs/ui/inputs/src/lib/dropdown-selector/dropdown-selector.component.mjs +3 -3
  73. package/esm2022/libs/ui/inputs/src/lib/editable-label/editable-label.directive.mjs +3 -2
  74. package/esm2022/libs/ui/inputs/src/lib/form-field/form-field.component.mjs +4 -2
  75. package/esm2022/libs/ui/inputs/src/lib/form-field/form-field.model.mjs +1 -1
  76. package/esm2022/libs/ui/inputs/src/lib/navigation-button/navigation-button.component.mjs +3 -3
  77. package/esm2022/libs/ui/inputs/src/lib/text-area/text-area.component.mjs +3 -3
  78. package/esm2022/libs/ui/inputs/src/lib/ui-inputs.module.mjs +9 -9
  79. package/esm2022/libs/ui/layout/src/index.mjs +3 -1
  80. package/esm2022/libs/ui/layout/src/lib/carousel/carousel.component.mjs +3 -3
  81. package/esm2022/libs/ui/layout/src/lib/interactive-table/interactive-table-column/interactive-table-column.component.mjs +36 -0
  82. package/esm2022/libs/ui/layout/src/lib/interactive-table/interactive-table.component.mjs +37 -0
  83. package/esm2022/libs/ui/search/src/index.mjs +1 -2
  84. package/esm2022/libs/ui/search/src/lib/ui-search.module.mjs +9 -10
  85. package/esm2022/libs/ui/widgets/src/lib/badge/badge.component.mjs +3 -3
  86. package/esm2022/libs/util/i18n/src/index.mjs +1 -2
  87. package/esm2022/libs/util/i18n/src/lib/i18n.constants.mjs +18 -1
  88. package/esm2022/libs/util/shared/src/lib/utils/index.mjs +2 -1
  89. package/esm2022/libs/util/shared/src/lib/utils/temporal-extent-union.mjs +32 -0
  90. package/esm2022/translations/de.json +37 -26
  91. package/esm2022/translations/en.json +37 -26
  92. package/esm2022/translations/es.json +31 -20
  93. package/esm2022/translations/fr.json +51 -40
  94. package/esm2022/translations/it.json +44 -33
  95. package/esm2022/translations/nl.json +32 -21
  96. package/esm2022/translations/pt.json +31 -20
  97. package/fesm2022/geonetwork-ui.mjs +1290 -881
  98. package/fesm2022/geonetwork-ui.mjs.map +1 -1
  99. package/libs/api/metadata-converter/src/lib/gn4/atomic-operations.d.ts +2 -0
  100. package/libs/api/metadata-converter/src/lib/gn4/atomic-operations.d.ts.map +1 -1
  101. package/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.d.ts +0 -1
  102. package/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.d.ts.map +1 -1
  103. package/libs/api/metadata-converter/src/lib/gn4/gn4.metadata.mapper.d.ts.map +1 -1
  104. package/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.d.ts +4 -5
  105. package/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.d.ts.map +1 -1
  106. package/libs/api/metadata-converter/src/lib/iso19139/codelists/keyword.mapper.d.ts +3 -0
  107. package/libs/api/metadata-converter/src/lib/iso19139/codelists/keyword.mapper.d.ts.map +1 -0
  108. package/libs/api/metadata-converter/src/lib/iso19139/converter.d.ts.map +1 -1
  109. package/libs/api/metadata-converter/src/lib/iso19139/read-parts.d.ts +7 -6
  110. package/libs/api/metadata-converter/src/lib/iso19139/read-parts.d.ts.map +1 -1
  111. package/libs/api/metadata-converter/src/lib/iso19139/write-parts.d.ts +4 -3
  112. package/libs/api/metadata-converter/src/lib/iso19139/write-parts.d.ts.map +1 -1
  113. package/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.d.ts.map +1 -1
  114. package/libs/api/repository/src/lib/gn4/organizations/organizations-from-metadata.service.d.ts.map +1 -1
  115. package/libs/api/repository/src/lib/gn4/platform/gn4-platform.mapper.d.ts +1 -1
  116. package/libs/api/repository/src/lib/gn4/platform/gn4-platform.mapper.d.ts.map +1 -1
  117. package/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.d.ts +9 -2
  118. package/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.d.ts.map +1 -1
  119. package/libs/api/repository/src/lib/gn4/selection/selection.service.d.ts +4 -5
  120. package/libs/api/repository/src/lib/gn4/selection/selection.service.d.ts.map +1 -1
  121. package/libs/common/domain/src/lib/model/record/metadata.model.d.ts +21 -12
  122. package/libs/common/domain/src/lib/model/record/metadata.model.d.ts.map +1 -1
  123. package/libs/common/domain/src/lib/model/search/aggregation.model.d.ts +1 -1
  124. package/libs/common/domain/src/lib/model/search/aggregation.model.d.ts.map +1 -1
  125. package/libs/common/domain/src/lib/model/search/field.model.d.ts +2 -0
  126. package/libs/common/domain/src/lib/model/search/field.model.d.ts.map +1 -0
  127. package/libs/common/domain/src/lib/model/search/filter.model.d.ts +1 -1
  128. package/libs/common/domain/src/lib/model/search/filter.model.d.ts.map +1 -1
  129. package/libs/common/domain/src/lib/model/search/index.d.ts +1 -0
  130. package/libs/common/domain/src/lib/model/search/index.d.ts.map +1 -1
  131. package/libs/common/domain/src/lib/model/search/search.model.d.ts +2 -3
  132. package/libs/common/domain/src/lib/model/search/search.model.d.ts.map +1 -1
  133. package/libs/common/domain/src/lib/model/thesaurus/thesaurus.model.d.ts +1 -0
  134. package/libs/common/domain/src/lib/model/thesaurus/thesaurus.model.d.ts.map +1 -1
  135. package/libs/common/domain/src/lib/platform.service.interface.d.ts +1 -1
  136. package/libs/common/domain/src/lib/platform.service.interface.d.ts.map +1 -1
  137. package/libs/feature/catalog/src/lib/my-org/my-org.service.d.ts +0 -1
  138. package/libs/feature/catalog/src/lib/my-org/my-org.service.d.ts.map +1 -1
  139. package/libs/feature/editor/src/index.d.ts +5 -0
  140. package/libs/feature/editor/src/index.d.ts.map +1 -1
  141. package/libs/feature/editor/src/lib/+state/editor.actions.d.ts +23 -0
  142. package/libs/feature/editor/src/lib/+state/editor.actions.d.ts.map +1 -0
  143. package/libs/feature/editor/src/lib/+state/editor.effects.d.ts +15 -0
  144. package/libs/feature/editor/src/lib/+state/editor.effects.d.ts.map +1 -0
  145. package/libs/feature/editor/src/lib/+state/editor.facade.d.ts +19 -0
  146. package/libs/feature/editor/src/lib/+state/editor.facade.d.ts.map +1 -0
  147. package/libs/feature/editor/src/lib/+state/editor.models.d.ts +2 -0
  148. package/libs/feature/editor/src/lib/+state/editor.models.d.ts.map +1 -0
  149. package/libs/feature/editor/src/lib/+state/editor.reducer.d.ts +18 -0
  150. package/libs/feature/editor/src/lib/+state/editor.reducer.d.ts.map +1 -0
  151. package/libs/feature/editor/src/lib/+state/editor.selectors.d.ts +15 -0
  152. package/libs/feature/editor/src/lib/+state/editor.selectors.d.ts.map +1 -0
  153. package/libs/feature/editor/src/lib/expressions.d.ts +4 -0
  154. package/libs/feature/editor/src/lib/expressions.d.ts.map +1 -0
  155. package/libs/feature/editor/src/lib/feature-editor.module.d.ts +3 -1
  156. package/libs/feature/editor/src/lib/feature-editor.module.d.ts.map +1 -1
  157. package/libs/feature/editor/src/lib/fields.config.d.ts +3 -0
  158. package/libs/feature/editor/src/lib/fields.config.d.ts.map +1 -0
  159. package/libs/feature/editor/src/lib/models/fields.model.d.ts +15 -0
  160. package/libs/feature/editor/src/lib/models/fields.model.d.ts.map +1 -0
  161. package/libs/feature/editor/src/lib/record-form/record-form.component.d.ts +10 -5
  162. package/libs/feature/editor/src/lib/record-form/record-form.component.d.ts.map +1 -1
  163. package/libs/feature/editor/src/lib/services/editor.service.d.ts +3 -13
  164. package/libs/feature/editor/src/lib/services/editor.service.d.ts.map +1 -1
  165. package/libs/feature/map/src/lib/feature-map.module.d.ts.map +1 -1
  166. package/libs/feature/map/src/lib/geocoding/geocoding.component.d.ts +6 -1
  167. package/libs/feature/map/src/lib/geocoding/geocoding.component.d.ts.map +1 -1
  168. package/libs/feature/map/src/lib/geocoding.service.d.ts +18 -0
  169. package/libs/feature/map/src/lib/geocoding.service.d.ts.map +1 -0
  170. package/libs/feature/map/src/lib/map-context/map-context.service.d.ts +1 -0
  171. package/libs/feature/map/src/lib/map-context/map-context.service.d.ts.map +1 -1
  172. package/libs/feature/router/src/lib/default/index.d.ts +1 -0
  173. package/libs/feature/router/src/lib/default/index.d.ts.map +1 -1
  174. package/libs/feature/router/src/lib/default/router.service.d.ts +1 -1
  175. package/libs/feature/router/src/lib/default/router.service.d.ts.map +1 -1
  176. package/libs/feature/search/src/index.d.ts +3 -0
  177. package/libs/feature/search/src/index.d.ts.map +1 -1
  178. package/libs/feature/search/src/lib/favorites/favorite-star/favorite-star.component.d.ts +3 -3
  179. package/libs/feature/search/src/lib/favorites/favorite-star/favorite-star.component.d.ts.map +1 -1
  180. package/libs/feature/search/src/lib/feature-search.module.d.ts +0 -4
  181. package/libs/feature/search/src/lib/feature-search.module.d.ts.map +1 -1
  182. package/libs/feature/search/src/lib/filter-dropdown/filter-dropdown.component.d.ts +3 -2
  183. package/libs/feature/search/src/lib/filter-dropdown/filter-dropdown.component.d.ts.map +1 -1
  184. package/libs/feature/search/src/lib/filter-geometry.token.d.ts +4 -0
  185. package/libs/feature/search/src/lib/filter-geometry.token.d.ts.map +1 -0
  186. package/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.d.ts +1 -1
  187. package/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.d.ts.map +1 -1
  188. package/libs/feature/search/src/lib/record-url.token.d.ts +3 -0
  189. package/libs/feature/search/src/lib/record-url.token.d.ts.map +1 -0
  190. package/libs/feature/search/src/lib/results-table/results-table.component.d.ts +33 -0
  191. package/libs/feature/search/src/lib/results-table/results-table.component.d.ts.map +1 -0
  192. package/libs/feature/search/src/lib/state/effects.d.ts.map +1 -1
  193. package/libs/feature/search/src/lib/state/search.facade.d.ts +1 -1
  194. package/libs/feature/search/src/lib/state/search.facade.d.ts.map +1 -1
  195. package/libs/feature/search/src/lib/utils/service/fields.d.ts +21 -8
  196. package/libs/feature/search/src/lib/utils/service/fields.d.ts.map +1 -1
  197. package/libs/feature/search/src/lib/utils/service/fields.service.d.ts.map +1 -1
  198. package/libs/ui/dataviz/src/lib/chart/chart.component.d.ts +1 -1
  199. package/libs/ui/elements/src/lib/markdown-parser/markdown-parser.component.d.ts +1 -1
  200. package/libs/ui/elements/src/lib/markdown-parser/markdown-parser.component.d.ts.map +1 -1
  201. package/libs/ui/elements/src/lib/max-lines/max-lines.component.d.ts.map +1 -1
  202. package/libs/ui/elements/src/lib/metadata-info/metadata-info.component.d.ts +16 -6
  203. package/libs/ui/elements/src/lib/metadata-info/metadata-info.component.d.ts.map +1 -1
  204. package/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.d.ts.map +1 -1
  205. package/libs/ui/elements/src/lib/record-api-form/record-api-form.component.d.ts +3 -1
  206. package/libs/ui/elements/src/lib/record-api-form/record-api-form.component.d.ts.map +1 -1
  207. package/libs/ui/elements/src/lib/ui-elements.module.d.ts +13 -13
  208. package/libs/ui/inputs/src/index.d.ts +1 -0
  209. package/libs/ui/inputs/src/index.d.ts.map +1 -1
  210. package/libs/ui/inputs/src/lib/button/button.component.d.ts +1 -1
  211. package/libs/ui/inputs/src/lib/button/button.component.d.ts.map +1 -1
  212. package/libs/ui/inputs/src/lib/editable-label/editable-label.directive.d.ts +1 -1
  213. package/libs/ui/inputs/src/lib/editable-label/editable-label.directive.d.ts.map +1 -1
  214. package/libs/ui/inputs/src/lib/form-field/form-field.component.d.ts.map +1 -1
  215. package/libs/ui/inputs/src/lib/form-field/form-field.model.d.ts +0 -1
  216. package/libs/ui/inputs/src/lib/form-field/form-field.model.d.ts.map +1 -1
  217. package/libs/ui/inputs/src/lib/text-area/text-area.component.d.ts +1 -1
  218. package/libs/ui/inputs/src/lib/text-area/text-area.component.d.ts.map +1 -1
  219. package/libs/ui/inputs/src/lib/ui-inputs.module.d.ts +40 -40
  220. package/libs/ui/layout/src/index.d.ts +2 -0
  221. package/libs/ui/layout/src/index.d.ts.map +1 -1
  222. package/libs/ui/layout/src/lib/interactive-table/interactive-table-column/interactive-table-column.component.d.ts +14 -0
  223. package/libs/ui/layout/src/lib/interactive-table/interactive-table-column/interactive-table-column.component.d.ts.map +1 -0
  224. package/libs/ui/layout/src/lib/interactive-table/interactive-table.component.d.ts +15 -0
  225. package/libs/ui/layout/src/lib/interactive-table/interactive-table.component.d.ts.map +1 -0
  226. package/libs/ui/search/src/index.d.ts +0 -1
  227. package/libs/ui/search/src/index.d.ts.map +1 -1
  228. package/libs/ui/search/src/lib/ui-search.module.d.ts +15 -15
  229. package/libs/ui/search/src/lib/ui-search.module.d.ts.map +1 -1
  230. package/libs/util/i18n/src/index.d.ts +0 -1
  231. package/libs/util/i18n/src/index.d.ts.map +1 -1
  232. package/libs/util/i18n/src/lib/i18n.constants.d.ts +17 -0
  233. package/libs/util/i18n/src/lib/i18n.constants.d.ts.map +1 -1
  234. package/libs/util/shared/src/lib/utils/index.d.ts +1 -0
  235. package/libs/util/shared/src/lib/utils/index.d.ts.map +1 -1
  236. package/libs/util/shared/src/lib/utils/temporal-extent-union.d.ts +5 -0
  237. package/libs/util/shared/src/lib/utils/temporal-extent-union.d.ts.map +1 -0
  238. package/package.json +2 -2
  239. package/src/libs/api/metadata-converter/src/lib/fixtures/generic.records.ts +63 -8
  240. package/src/libs/api/metadata-converter/src/lib/fixtures/geo2france.records.ts +57 -9
  241. package/src/libs/api/metadata-converter/src/lib/fixtures/geocat-ch.records.ts +229 -24
  242. package/src/libs/api/metadata-converter/src/lib/gn4/atomic-operations.ts +29 -0
  243. package/src/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.ts +99 -76
  244. package/src/libs/api/metadata-converter/src/lib/gn4/gn4.metadata.mapper.ts +6 -3
  245. package/src/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.ts +4 -5
  246. package/src/libs/api/metadata-converter/src/lib/iso19139/codelists/keyword.mapper.ts +16 -0
  247. package/src/libs/api/metadata-converter/src/lib/iso19139/converter.ts +30 -21
  248. package/src/libs/api/metadata-converter/src/lib/iso19139/read-parts.ts +120 -63
  249. package/src/libs/api/metadata-converter/src/lib/iso19139/write-parts.ts +177 -97
  250. package/src/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.ts +1 -1
  251. package/src/libs/api/repository/src/lib/gn4/organizations/organizations-from-metadata.service.ts +22 -2
  252. package/src/libs/api/repository/src/lib/gn4/platform/gn4-platform.mapper.ts +15 -4
  253. package/src/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.ts +47 -8
  254. package/src/libs/api/repository/src/lib/gn4/selection/selection.service.ts +14 -38
  255. package/src/libs/common/domain/src/lib/model/record/metadata.model.ts +25 -14
  256. package/src/libs/common/domain/src/lib/model/search/aggregation.model.ts +1 -1
  257. package/src/libs/common/domain/src/lib/model/search/field.model.ts +1 -0
  258. package/src/libs/common/domain/src/lib/model/search/filter.model.ts +1 -1
  259. package/src/libs/common/domain/src/lib/model/search/index.ts +1 -0
  260. package/src/libs/common/domain/src/lib/model/search/search.model.ts +2 -2
  261. package/src/libs/common/domain/src/lib/model/thesaurus/thesaurus.model.ts +1 -0
  262. package/src/libs/common/domain/src/lib/model/user/index.ts +1 -0
  263. package/src/libs/common/domain/src/lib/platform.service.interface.ts +1 -4
  264. package/src/libs/common/fixtures/src/lib/elasticsearch/full-response.ts +1 -1
  265. package/src/libs/common/fixtures/src/lib/gn4/groups.fixtures.ts +1 -1
  266. package/src/libs/common/fixtures/src/lib/records.fixtures.ts +52 -10
  267. package/src/libs/feature/catalog/src/lib/my-org/my-org.service.ts +4 -16
  268. package/src/libs/feature/editor/src/index.ts +5 -0
  269. package/src/libs/feature/editor/src/lib/+state/editor.actions.ts +24 -0
  270. package/src/libs/feature/editor/src/lib/+state/editor.effects.ts +49 -0
  271. package/src/libs/feature/editor/src/lib/+state/editor.facade.ts +30 -0
  272. package/src/libs/feature/editor/src/lib/+state/editor.models.ts +1 -0
  273. package/src/libs/feature/editor/src/lib/+state/editor.reducer.ts +68 -0
  274. package/src/libs/feature/editor/src/lib/+state/editor.selectors.ts +39 -0
  275. package/src/libs/feature/editor/src/lib/expressions.ts +16 -0
  276. package/src/libs/feature/editor/src/lib/feature-editor.module.ts +11 -0
  277. package/src/libs/feature/editor/src/lib/fields.config.ts +35 -0
  278. package/src/libs/feature/editor/src/lib/models/fields.model.ts +29 -0
  279. package/src/libs/feature/editor/src/lib/record-form/record-form.component.html +9 -7
  280. package/src/libs/feature/editor/src/lib/record-form/record-form.component.ts +11 -5
  281. package/src/libs/feature/editor/src/lib/services/editor.service.ts +34 -73
  282. package/src/libs/feature/map/src/lib/feature-map.module.ts +5 -0
  283. package/src/libs/feature/map/src/lib/geocoding/geocoding.component.ts +27 -11
  284. package/src/libs/feature/map/src/lib/geocoding.service.ts +59 -0
  285. package/src/libs/feature/map/src/lib/map-context/map-context.service.ts +10 -0
  286. package/src/libs/feature/record/src/lib/data-view-permalink/data-view-permalink.component.ts +12 -12
  287. package/src/libs/feature/record/src/lib/state/mdview.reducer.ts +1 -1
  288. package/src/libs/feature/router/src/lib/default/index.ts +1 -0
  289. package/src/libs/feature/router/src/lib/default/router.service.ts +1 -1
  290. package/src/libs/feature/search/src/index.ts +3 -0
  291. package/src/libs/feature/search/src/lib/favorites/favorite-star/favorite-star.component.html +5 -4
  292. package/src/libs/feature/search/src/lib/favorites/favorite-star/favorite-star.component.ts +1 -1
  293. package/src/libs/feature/search/src/lib/feature-search.module.ts +1 -10
  294. package/src/libs/feature/search/src/lib/filter-dropdown/filter-dropdown.component.ts +4 -4
  295. package/src/libs/feature/search/src/lib/filter-geometry.token.ts +7 -0
  296. package/src/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.ts +9 -3
  297. package/src/libs/feature/search/src/lib/record-url.token.ts +4 -0
  298. package/src/libs/feature/search/src/lib/results-list/results-list.container.component.ts +1 -1
  299. package/src/libs/feature/search/src/lib/results-table/results-table.component.css +0 -0
  300. package/src/libs/feature/search/src/lib/results-table/results-table.component.html +112 -0
  301. package/src/libs/feature/search/src/lib/results-table/results-table.component.ts +164 -0
  302. package/src/libs/feature/search/src/lib/state/effects.ts +5 -4
  303. package/src/libs/feature/search/src/lib/state/search.facade.ts +2 -1
  304. package/src/libs/feature/search/src/lib/utils/service/fields.service.ts +21 -16
  305. package/src/libs/feature/search/src/lib/utils/service/fields.ts +43 -34
  306. package/src/libs/ui/catalog/src/lib/language-switcher/language-switcher.component.html +1 -1
  307. package/src/libs/ui/elements/src/lib/image-overlay-preview/image-overlay-preview.component.html +3 -2
  308. package/src/libs/ui/elements/src/lib/markdown-editor/markdown-editor.component.css +5 -0
  309. package/src/libs/ui/elements/src/lib/markdown-editor/markdown-editor.component.html +39 -0
  310. package/src/libs/ui/elements/src/lib/markdown-editor/markdown-editor.component.ts +58 -0
  311. package/src/libs/ui/elements/src/lib/markdown-parser/markdown-parser.component.css +2 -2
  312. package/src/libs/ui/elements/src/lib/markdown-parser/markdown-parser.component.ts +1 -0
  313. package/src/libs/ui/elements/src/lib/max-lines/max-lines.component.html +5 -1
  314. package/src/libs/ui/elements/src/lib/max-lines/max-lines.component.ts +1 -0
  315. package/src/libs/ui/elements/src/lib/metadata-contact/metadata-contact.component.html +2 -2
  316. package/src/libs/ui/elements/src/lib/metadata-info/metadata-info.component.html +169 -52
  317. package/src/libs/ui/elements/src/lib/metadata-info/metadata-info.component.ts +51 -15
  318. package/src/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.ts +2 -3
  319. package/src/libs/ui/elements/src/lib/record-api-form/record-api-form.component.html +5 -5
  320. package/src/libs/ui/elements/src/lib/record-api-form/record-api-form.component.ts +12 -4
  321. package/src/libs/ui/elements/src/lib/thumbnail/thumbnail.component.html +2 -2
  322. package/src/libs/ui/elements/src/lib/ui-elements.module.ts +1 -1
  323. package/src/libs/ui/inputs/src/index.ts +1 -0
  324. package/src/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.html +1 -1
  325. package/src/libs/ui/inputs/src/lib/button/button.component.css +0 -5
  326. package/src/libs/ui/inputs/src/lib/button/button.component.html +0 -1
  327. package/src/libs/ui/inputs/src/lib/button/button.component.ts +7 -6
  328. package/src/libs/ui/inputs/src/lib/checkbox/checkbox.component.html +0 -1
  329. package/src/libs/ui/inputs/src/lib/dropdown-multiselect/dropdown-multiselect.component.html +2 -2
  330. package/src/libs/ui/inputs/src/lib/dropdown-selector/dropdown-selector.component.html +3 -1
  331. package/src/libs/ui/inputs/src/lib/editable-label/editable-label.directive.ts +1 -0
  332. package/src/libs/ui/inputs/src/lib/form-field/form-field.component.ts +3 -1
  333. package/src/libs/ui/inputs/src/lib/form-field/form-field.model.ts +0 -1
  334. package/src/libs/ui/inputs/src/lib/navigation-button/navigation-button.component.css +3 -0
  335. package/src/libs/ui/inputs/src/lib/navigation-button/navigation-button.component.html +1 -1
  336. package/src/libs/ui/inputs/src/lib/text-area/text-area.component.ts +1 -0
  337. package/src/libs/ui/inputs/src/lib/ui-inputs.module.ts +3 -3
  338. package/src/libs/ui/layout/src/index.ts +2 -0
  339. package/src/libs/ui/layout/src/lib/carousel/carousel.component.html +1 -0
  340. package/src/libs/ui/layout/src/lib/interactive-table/interactive-table-column/interactive-table-column.component.css +0 -0
  341. package/src/libs/ui/layout/src/lib/interactive-table/interactive-table-column/interactive-table-column.component.html +1 -0
  342. package/src/libs/ui/layout/src/lib/interactive-table/interactive-table-column/interactive-table-column.component.ts +33 -0
  343. package/src/libs/ui/layout/src/lib/interactive-table/interactive-table.component.css +15 -0
  344. package/src/libs/ui/layout/src/lib/interactive-table/interactive-table.component.html +54 -0
  345. package/src/libs/ui/layout/src/lib/interactive-table/interactive-table.component.ts +42 -0
  346. package/src/libs/ui/search/src/index.ts +0 -1
  347. package/src/libs/ui/search/src/lib/ui-search.module.ts +2 -3
  348. package/src/libs/ui/widgets/src/lib/badge/badge.component.html +3 -1
  349. package/src/libs/util/i18n/src/index.ts +0 -1
  350. package/src/libs/util/i18n/src/lib/i18n.constants.ts +18 -0
  351. package/src/libs/util/shared/src/lib/utils/index.ts +1 -0
  352. package/src/libs/util/shared/src/lib/utils/temporal-extent-union.ts +32 -0
  353. package/tailwind.base.css +44 -15
  354. package/translations/de.json +37 -26
  355. package/translations/en.json +37 -26
  356. package/translations/es.json +31 -20
  357. package/translations/fr.json +51 -40
  358. package/translations/it.json +44 -33
  359. package/translations/nl.json +32 -21
  360. package/translations/pt.json +31 -20
  361. package/translations/sk.json +119 -108
  362. package/esm2022/libs/ui/search/src/lib/record-table/record-table.component.mjs +0 -145
  363. package/esm2022/libs/util/i18n/src/lib/testing/test.translate.loader.mjs +0 -24
  364. package/esm2022/libs/util/i18n/src/lib/testing/test.translate.module.mjs +0 -109
  365. package/esm2022/libs/util/i18n/src/lib/testing/translations.model.mjs +0 -6
  366. package/libs/ui/search/src/lib/record-table/record-table.component.d.ts +0 -31
  367. package/libs/ui/search/src/lib/record-table/record-table.component.d.ts.map +0 -1
  368. package/libs/util/i18n/src/lib/testing/test.translate.loader.d.ts +0 -17
  369. package/libs/util/i18n/src/lib/testing/test.translate.loader.d.ts.map +0 -1
  370. package/libs/util/i18n/src/lib/testing/test.translate.module.d.ts +0 -131
  371. package/libs/util/i18n/src/lib/testing/test.translate.module.d.ts.map +0 -1
  372. package/libs/util/i18n/src/lib/testing/translations.model.d.ts +0 -21
  373. package/libs/util/i18n/src/lib/testing/translations.model.d.ts.map +0 -1
  374. package/src/libs/ui/search/src/lib/record-table/record-table.component.css +0 -7
  375. package/src/libs/ui/search/src/lib/record-table/record-table.component.html +0 -215
  376. package/src/libs/ui/search/src/lib/record-table/record-table.component.ts +0 -149
  377. package/src/libs/util/i18n/src/lib/testing/test.translate.loader.ts +0 -26
  378. package/src/libs/util/i18n/src/lib/testing/test.translate.module.ts +0 -235
  379. package/src/libs/util/i18n/src/lib/testing/translations.model.ts +0 -28
@@ -1,6 +1,6 @@
1
1
  {
2
- "catalog.figures.datasets": "datasety",
3
- "catalog.figures.organisations": "organizácie",
2
+ "catalog.figures.datasets": "{count, plural, =0{datasety} one{dataset} other{datasety}}",
3
+ "catalog.figures.organisations": "{count, plural, =0{organizácie} one{organizácia} other{organizácie}}",
4
4
  "chart.aggregation.average": "priemer",
5
5
  "chart.aggregation.count": "počet",
6
6
  "chart.aggregation.max": "maximum",
@@ -8,28 +8,29 @@
8
8
  "chart.aggregation.sum": "súčet",
9
9
  "chart.dropdown.aggregation": "Agregácia",
10
10
  "chart.dropdown.type": "Typ",
11
- "chart.dropdown.xProperty": "X os",
12
- "chart.dropdown.yProperty": "Y os",
11
+ "chart.dropdown.xProperty": "os X",
12
+ "chart.dropdown.yProperty": "os Y",
13
13
  "chart.loading.data": "Načítavanie dát...",
14
14
  "chart.type.bar": "stĺpcový graf",
15
15
  "chart.type.barHorizontal": "horizontálny stĺpcový graf",
16
16
  "chart.type.line": "čiarový graf",
17
17
  "chart.type.lineSmooth": "vyhladený čiarový graf",
18
18
  "chart.type.pie": "koláčový graf",
19
+ "dashboard.createRecord": "",
19
20
  "dashboard.labels.mySpace": "Môj priestor",
20
21
  "dashboard.records.all": "Katalóg",
21
22
  "dashboard.records.myDraft": "Moje koncepty",
22
23
  "dashboard.records.myLibrary": "Moja knižnica",
23
24
  "dashboard.records.myOrg": "Organizácia",
24
25
  "dashboard.records.myRecords": "Moje záznamy",
25
- "dashboard.records.noRecord": "",
26
- "dashboard.records.noUser": "",
27
- "dashboard.records.publishedRecords": "",
26
+ "dashboard.records.publishedRecords": "{count, plural, =1{zverejnený záznam} other{zverejnených záznamov}}",
28
27
  "dashboard.records.search": "Hľadať \"{searchText}\"",
29
- "dashboard.records.userDetail": "",
30
- "dashboard.records.userEmail": "",
31
- "dashboard.records.username": "",
32
- "dashboard.records.users": "",
28
+ "dashboard.records.userDetail": "Meno",
29
+ "dashboard.records.userEmail": "Email",
30
+ "dashboard.records.username": "Užívateľské meno",
31
+ "dashboard.records.users": "{count, plural, =1{užívateľ} other{užívatelia}}",
32
+ "dashboard.results.listMetadata": "Zobraziť metadata",
33
+ "dashboard.results.listResources": "Zobraziť zdroje",
33
34
  "datafeeder.analysisProgressBar.illustration.fileFormatDetection": "Detekcia formátu súboru",
34
35
  "datafeeder.analysisProgressBar.illustration.gatheringDatasetInformation": "Zbieranie informácií o datasete",
35
36
  "datafeeder.analysisProgressBar.illustration.samplingData": "Vzorkovanie dát",
@@ -110,12 +111,12 @@
110
111
  "datahub.header.organisations": "Organizácie",
111
112
  "datahub.header.popularRecords": "Najpopulárnejšie",
112
113
  "datahub.header.title.html": "<div class=\"text-white\">Objavte otvorené<br>dáta z mojej organizácie</div>",
113
- "datahub.news.contact.contactus": "",
114
- "datahub.news.contact.html": "",
115
- "datahub.news.contact.title": "",
114
+ "datahub.news.contact.contactus": "Kontaktujte nás",
115
+ "datahub.news.contact.html": "<p>Potrebujete údaje, ktoré sa v súčasnosti na platforme nenachádzajú?</p><p>Náš tím je tu, aby Vám odpovedal.</p>",
116
+ "datahub.news.contact.title": "Špecifická potreba?",
116
117
  "datahub.news.feed": "Spravodajský kanál",
117
118
  "datahub.news.figures": "Ukazovatele",
118
- "datahub.record.addToFavorites": "",
119
+ "datahub.record.addToFavorites": "Pridať do obľúbených",
119
120
  "datahub.search.back": "Späť na výsledky",
120
121
  "datahub.search.filter.all": "Všetky",
121
122
  "datahub.search.filter.generatedByWfs": "vygenerované cez API",
@@ -143,6 +144,8 @@
143
144
  "downloads.format.unknown": "neznámy",
144
145
  "downloads.wfs.featuretype.not.found": "Vrstva nebola nájdená",
145
146
  "dropFile": "nahrať súbor",
147
+ "editor.record.publish": "",
148
+ "editor.record.upToDate": "",
146
149
  "externalviewer.dataset.unnamed": "",
147
150
  "facets.block.title.OrgForResource": "Organizácia",
148
151
  "facets.block.title.availableInServices": "Dostupné pre",
@@ -156,44 +159,44 @@
156
159
  "facets.block.title.tag.default": "Štítok",
157
160
  "facets.block.title.th_regions_tree.default": "Regióny",
158
161
  "favorite.not.authenticated.tooltip": "<div><a href='{link}'>Prihlásiť sa</a> pre prístup k tejto funkcii</div>",
159
- "language.ca": "Català",
162
+ "language.ca": "Catalánsky",
160
163
  "language.cs": "Čeština",
161
- "language.de": "Deutsch",
162
- "language.en": "English",
163
- "language.es": "Español",
164
- "language.fi": "Suomi",
165
- "language.fr": "Français",
166
- "language.is": "Íslenska",
167
- "language.it": "Italiano",
168
- "language.ko": "한국어",
169
- "language.nl": "Nederlands",
170
- "language.pt": "Português",
171
- "language.ru": "Русский",
164
+ "language.de": "Nemecky",
165
+ "language.en": "Anglicky",
166
+ "language.es": "Španielsky",
167
+ "language.fi": "Fínsky",
168
+ "language.fr": "Francúzsky",
169
+ "language.is": "Islandsky",
170
+ "language.it": "Taliančina",
171
+ "language.ko": "Kórejsky",
172
+ "language.nl": "Holandsky",
173
+ "language.pt": "Portugalčina",
174
+ "language.ru": "Ruština",
172
175
  "language.sk": "Slovenčina",
173
- "language.zh": "中文",
176
+ "language.zh": "Čínština",
174
177
  "map.add.layer": "Pridať vrstvu",
175
178
  "map.add.layer.catalog": "Z katalógu",
176
179
  "map.add.layer.file": "Zo súboru",
177
180
  "map.add.layer.wfs": "Z WFS",
178
181
  "map.add.layer.wms": "Z WMS",
179
- "map.addFromFile.placeholder": "",
180
- "map.geocoding.placeholder": "",
181
- "map.help.addFromFile": "",
182
- "map.layer.add": "",
183
- "map.layers.available": "",
182
+ "map.addFromFile.placeholder": "Kliknite na tlačidlo alebo sem vložte súbor",
183
+ "map.geocoding.placeholder": "Nájsť miesto",
184
+ "map.help.addFromFile": "Kliknite na tlačidlo alebo sem vložte súbor, ktorý chcete pridať do mapy (v súčasnosti podporuje iba formát GeoJSON).",
185
+ "map.layer.add": "Pridať",
186
+ "map.layers.available": "Dostupné vrsty",
184
187
  "map.layers.list": "Vrstvy",
185
188
  "map.loading.data": "Načítavanie dát mapy...",
186
- "map.loading.service": "",
189
+ "map.loading.service": "Načítavanie služieb...",
187
190
  "map.navigation.message": "Použite prosím CTRL + myš (alebo dva prsty na mobilnom zariadení) na navigáciu po mape",
188
191
  "map.select.layer": "Zdroj dát",
189
- "map.wfs.urlInput.hint": "",
190
- "map.wms.urlInput.hint": "",
192
+ "map.wfs.urlInput.hint": "Zadajte URL adresu služby WFS",
193
+ "map.wms.urlInput.hint": "Zadajte URL adresu služby WMS",
191
194
  "multiselect.filter.placeholder": "Hľadať",
192
195
  "nav.back": "Späť",
193
196
  "next": "Ďalej",
194
- "organisation.filter.placeholder": "",
197
+ "organisation.filter.placeholder": "Filtrovať výsledky",
195
198
  "organisation.sort.sortBy": "Zoradiť podľa:",
196
- "organisations.hits.found": "",
199
+ "organisations.hits.found": "{hits, plural, =0{Žiadna organizácia nenájdená} other{{hits} celkovo {total} organizácií nájdených}}",
197
200
  "organisations.sortBy.nameAsc": "Názov A → Z",
198
201
  "organisations.sortBy.nameDesc": "Názov Z → A",
199
202
  "organisations.sortBy.recordCountAsc": "Publikácie 0 → 9",
@@ -207,72 +210,79 @@
207
210
  "record.externalViewer.open": "Otvoriť v externom mapovom prehliadači",
208
211
  "record.metadata.about": "O",
209
212
  "record.metadata.api": "API",
210
- "record.metadata.api.form.closeButton": "",
211
- "record.metadata.api.form.closeForm": "",
212
- "record.metadata.api.form.create": "",
213
- "record.metadata.api.form.customUrl": "",
214
- "record.metadata.api.form.limit": "",
215
- "record.metadata.api.form.limit.all": "",
216
- "record.metadata.api.form.offset": "",
217
- "record.metadata.api.form.openForm": "",
218
- "record.metadata.api.form.reset": "",
219
- "record.metadata.api.form.title": "",
220
- "record.metadata.api.form.type": "",
213
+ "record.metadata.api.form.closeButton": "Zavrieť",
214
+ "record.metadata.api.form.closeForm": "Zavrieť formulár",
215
+ "record.metadata.api.form.create": "Vytvoriť požiadavku",
216
+ "record.metadata.api.form.customUrl": "Vlastná URL",
217
+ "record.metadata.api.form.limit": "Počet záznamov",
218
+ "record.metadata.api.form.limit.all": "Všetky",
219
+ "record.metadata.api.form.offset": "Počet prvých záznamov",
220
+ "record.metadata.api.form.openForm": "Otvoriť formulár",
221
+ "record.metadata.api.form.reset": "Resetovať",
222
+ "record.metadata.api.form.title": "Vytvoriť vlatnú URL",
223
+ "record.metadata.api.form.type": "Výstupný formát",
221
224
  "record.metadata.author": "Autor",
222
225
  "record.metadata.catalog": "Katalóg",
223
226
  "record.metadata.contact": "Kontakt",
224
- "record.metadata.createdOn": "Vytvorené dňa",
227
+ "record.metadata.creation": "",
225
228
  "record.metadata.details": "Detaily",
226
229
  "record.metadata.download": "Sťahovania",
227
230
  "record.metadata.formats": "Formáty",
228
- "record.metadata.isOpenData": "Otvorené dáta",
229
231
  "record.metadata.keywords": "Kľúčové slová",
230
- "record.metadata.lastUpdate": "",
232
+ "record.metadata.languages": "",
233
+ "record.metadata.lastUpdate": "Posledná aktualizácia",
231
234
  "record.metadata.links": "Odkazy",
232
235
  "record.metadata.noUsage": "Pre túto položku nie sú špecifikované žiadne podmienky použitia.",
233
- "record.metadata.origin": "Pôvod",
234
- "record.metadata.owner": "",
236
+ "record.metadata.otherConstraints": "Ďalšie podmienky",
237
+ "record.metadata.owner": "Katalóg pôvodu",
235
238
  "record.metadata.preview": "Náhľad",
239
+ "record.metadata.producer": "",
240
+ "record.metadata.publication": "",
236
241
  "record.metadata.publications": "publikácie",
237
242
  "record.metadata.quality": "Kvalita metadát",
238
- "record.metadata.quality.contact.failed": "",
239
- "record.metadata.quality.contact.success": "",
240
- "record.metadata.quality.description.failed": "",
241
- "record.metadata.quality.description.success": "",
243
+ "record.metadata.quality.contact.failed": "Kontakt nie je uvedený",
244
+ "record.metadata.quality.contact.success": "Kontakt je uvedený",
245
+ "record.metadata.quality.description.failed": "Popis nie je uvedený",
246
+ "record.metadata.quality.description.success": "Popis je uvedený",
242
247
  "record.metadata.quality.details": "Detaily",
243
- "record.metadata.quality.keywords.failed": "",
244
- "record.metadata.quality.keywords.success": "",
245
- "record.metadata.quality.legalConstraints.failed": "",
246
- "record.metadata.quality.legalConstraints.success": "",
247
- "record.metadata.quality.organisation.failed": "",
248
- "record.metadata.quality.organisation.success": "",
249
- "record.metadata.quality.title.failed": "",
250
- "record.metadata.quality.title.success": "",
251
- "record.metadata.quality.topic.failed": "",
252
- "record.metadata.quality.topic.success": "",
253
- "record.metadata.quality.updateFrequency.failed": "",
254
- "record.metadata.quality.updateFrequency.success": "",
248
+ "record.metadata.quality.keywords.failed": "Kľúčové slová nie sú uvedené",
249
+ "record.metadata.quality.keywords.success": "Kľúčové slová sú uvedené",
250
+ "record.metadata.quality.legalConstraints.failed": "Právne obmedzenia nie sú uvedené",
251
+ "record.metadata.quality.legalConstraints.success": "Právne obmedzenia sú uvedené",
252
+ "record.metadata.quality.organisation.failed": "Organizácie nie je uvedená",
253
+ "record.metadata.quality.organisation.success": "Organizácie je uvedená",
254
+ "record.metadata.quality.title.failed": "Názov nie je uvedený",
255
+ "record.metadata.quality.title.success": "Názov je uvedený",
256
+ "record.metadata.quality.topic.failed": "Téma nie je uvedená",
257
+ "record.metadata.quality.topic.success": "Téma je uvedená",
258
+ "record.metadata.quality.updateFrequency.failed": "Frekvencia aktualizácie nie je určená",
259
+ "record.metadata.quality.updateFrequency.success": "Frekvencia aktualizácie je určená",
255
260
  "record.metadata.related": "Súvisiace záznamy",
256
261
  "record.metadata.sheet": "Ďalšie metadáta sú k dispozícii na:",
257
- "record.metadata.themes": "",
262
+ "record.metadata.status": "Stav",
263
+ "record.metadata.technical": "",
264
+ "record.metadata.temporalExtent": "",
265
+ "record.metadata.temporalExtent.fromDateToDate": "",
266
+ "record.metadata.temporalExtent.sinceDate": "",
267
+ "record.metadata.temporalExtent.untilDate": "",
258
268
  "record.metadata.title": "Názov",
259
- "record.metadata.type": "",
260
- "record.metadata.uniqueId": "",
269
+ "record.metadata.topics": "",
270
+ "record.metadata.type": "Súbor geografických údajov",
271
+ "record.metadata.uniqueId": "Jedinečný identifikátor",
261
272
  "record.metadata.updateFrequency": "Frekvencia aktualizácie metadát",
262
- "record.metadata.updateStatus": "Stav aktualizácie metadát",
263
273
  "record.metadata.updatedOn": "Posledná aktualizácia metadát",
264
274
  "record.metadata.usage": "Použitie a obmedzenia",
265
275
  "record.more.details": "Čítať viac",
266
276
  "record.tab.chart": "Graf",
267
277
  "record.tab.data": "Tabuľka",
268
278
  "record.tab.map": "Mapa",
269
- "record.was.created.time": "vytvoril tento dataset {time}",
279
+ "record.was.created.time": "vytvoril tento dataset o {time}",
270
280
  "records": "záznamy",
271
281
  "results.layout.selectOne": "Rozmiestnenie výsledkov",
272
282
  "results.records.hits.displayedOn": "{displayed, plural, =0{Žiadny záznam.} one{1 záznam} other{{displayed} záznamov }} {hits, plural, other{zobrazených z {hits} celkovo.}}",
273
283
  "results.records.hits.empty.help.html": "Návrhy: <ul class='list-disc list-inside'><li>Vyskúšajte iné slová</li><li>Uveďte menej slov</li></ul>",
274
284
  "results.records.hits.found": "{hits, plural, =0{Žiadne dokumenty nezodpovedajú zadanému vyhľadávaniu.} one{1 záznam nájdený.} other{{hits} záznamov nájdených.}}",
275
- "results.records.hits.selected": "",
285
+ "results.records.hits.selected": "{ amount } označených",
276
286
  "results.showMore": "Zobraziť viac výsledkov...",
277
287
  "results.sortBy.dateStamp": "Najnovšie",
278
288
  "results.sortBy.popularity": "Popularita",
@@ -285,12 +295,13 @@
285
295
  "search.field.any.placeholder": "Hľadať datasety ...",
286
296
  "search.field.sortBy": "Zoradiť podľa:",
287
297
  "search.filters.clear": "Obnoviť",
288
- "search.filters.contact": "",
298
+ "search.filters.contact": "Kontakty",
289
299
  "search.filters.format": "Formáty",
290
300
  "search.filters.inspireKeyword": "Kľúčové slová INSPIRE",
291
301
  "search.filters.isSpatial": "Je priestorový údaj",
292
302
  "search.filters.isSpatial.no": "nepravdivé",
293
303
  "search.filters.isSpatial.yes": "pravdivé",
304
+ "search.filters.keyword": "",
294
305
  "search.filters.license": "Licencia",
295
306
  "search.filters.license.cc-by": "Creative Commons CC-BY",
296
307
  "search.filters.license.cc-by-sa": "Creative Commons CC-BY-SA",
@@ -300,35 +311,35 @@
300
311
  "search.filters.license.odbl": "Open Data Commons ODbL",
301
312
  "search.filters.license.odc-by": "Open Data Commons ODC-By",
302
313
  "search.filters.license.pddl": "Open Data Commons",
303
- "search.filters.license.unknown": "",
304
- "search.filters.maximize": "",
305
- "search.filters.minimize": "",
306
- "search.filters.myRecords": "",
307
- "search.filters.myRecordsHelp": "",
308
- "search.filters.otherRecords": "",
309
- "search.filters.publicationYear": "",
310
- "search.filters.publisher": "",
311
- "search.filters.representationType": "",
312
- "search.filters.resourceType": "",
313
- "search.filters.standard": "",
314
- "search.filters.title": "",
315
- "search.filters.topic": "",
316
- "search.filters.useSpatialFilter": "",
317
- "search.filters.useSpatialFilterHelp": "",
318
- "share.tab.permalink": "",
319
- "share.tab.webComponent": "",
320
- "table.loading.data": "",
321
- "table.object.count": "",
322
- "table.select.data": "",
323
- "tooltip.html.copy": "",
324
- "tooltip.id.copy": "",
325
- "tooltip.url.copy": "",
326
- "tooltip.url.open": "",
327
- "ui.readLess": "",
328
- "ui.readMore": "",
329
- "wfs.featuretype.notfound": "",
330
- "wfs.geojsongml.notsupported": "",
331
- "wfs.unreachable.cors": "",
332
- "wfs.unreachable.http": "",
333
- "wfs.unreachable.unknown": ""
314
+ "search.filters.license.unknown": "Neznáme alebo chýbajúce",
315
+ "search.filters.maximize": "Rozšíriť",
316
+ "search.filters.minimize": "Zmenšiť",
317
+ "search.filters.myRecords": "Zobraziť len moje záznamy",
318
+ "search.filters.myRecordsHelp": "Keď je táto možnosť zapnutá, zobrazia sa len záznamy vytvorené mnou; záznamy vytvorené inými sa nezobrazia.",
319
+ "search.filters.otherRecords": "Zobrazenie záznamov od inej osoby",
320
+ "search.filters.publicationYear": "Rok zverejnenia",
321
+ "search.filters.publisher": "Organizácie",
322
+ "search.filters.representationType": "Typ reprezentácie",
323
+ "search.filters.resourceType": "Typ zdroja",
324
+ "search.filters.standard": "Štandard",
325
+ "search.filters.title": "Filtrovanie výsledkov",
326
+ "search.filters.topic": "Téma",
327
+ "search.filters.useSpatialFilter": "Najskôr zobraziť záznamy v oblasti záujmu",
328
+ "search.filters.useSpatialFilterHelp": "Keď je táto možnosť zapnutá, záznamy nachádzajúce sa v oblasti záujmu katalógu sa zobrazia ako prvé; záznamy mimo tejto oblasti sa nezobrazia.",
329
+ "share.tab.permalink": "Zdieľať",
330
+ "share.tab.webComponent": "Integrovať",
331
+ "table.loading.data": "Načítanie údajov...",
332
+ "table.object.count": "objekty v tomto súbore údajov",
333
+ "table.select.data": "Zdroj údajov",
334
+ "tooltip.html.copy": "Kopírovať HTML",
335
+ "tooltip.id.copy": "Kopírovať jedinečný identifikátor",
336
+ "tooltip.url.copy": "Kopírovať URL",
337
+ "tooltip.url.open": "Otvoriť URL",
338
+ "ui.readLess": "Čítať menej",
339
+ "ui.readMore": "Čítať viac",
340
+ "wfs.featuretype.notfound": "V službe nebol nájdený žiadny zodpovedajúci typ funkcie",
341
+ "wfs.geojsongml.notsupported": "Táto služba nepodporuje formát GeoJSON alebo GML",
342
+ "wfs.unreachable.cors": "Službu nemožno dosiahnuť z dôvodu obmedzení CORS",
343
+ "wfs.unreachable.http": "Služba vrátila chybu HTTP",
344
+ "wfs.unreachable.unknown": "So službou sa nedalo spojiť"
334
345
  }
@@ -1,145 +0,0 @@
1
- import { Component, EventEmitter, Input, Output } from '@angular/core';
2
- import { getBadgeColor, getFileFormat, getFormatPriority, } from '../../../../../../libs/util/shared/src';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "@angular/common";
5
- import * as i2 from "@ngx-translate/core";
6
- import * as i3 from "../../../../inputs/src/lib/button/button.component";
7
- import * as i4 from "../../../../inputs/src/lib/checkbox/checkbox.component";
8
- import * as i5 from "@angular/material/icon";
9
- export class RecordTableComponent {
10
- constructor() {
11
- this.selectedRecords = [];
12
- this.records = [];
13
- this.recordClick = new EventEmitter();
14
- this.recordsSelect = new EventEmitter();
15
- this.recordsDeselect = new EventEmitter();
16
- this.sortByChange = new EventEmitter();
17
- }
18
- dateToString(date) {
19
- return date?.toLocaleDateString(undefined, {
20
- year: 'numeric',
21
- month: 'long',
22
- day: 'numeric',
23
- timeZone: 'UTC',
24
- });
25
- }
26
- getStatus(isPublishedToAll) {
27
- return isPublishedToAll ? 'published' : 'not published';
28
- }
29
- formatUserInfo(userInfo) {
30
- const infos = (typeof userInfo === 'string' ? userInfo : '').split('|');
31
- if (infos && infos.length === 4) {
32
- return `${infos[2]} ${infos[1]}`;
33
- }
34
- return undefined;
35
- }
36
- getRecordFormats(record) {
37
- if (record.kind === 'service' || !('distributions' in record)) {
38
- return [];
39
- }
40
- const formats = Array.from(new Set(record.distributions.map((distribution) => getFileFormat(distribution)))).filter((format) => !!format);
41
- formats.sort((a, b) => getFormatPriority(b) - getFormatPriority(a));
42
- return formats;
43
- }
44
- getBadgeColor(format) {
45
- return getBadgeColor(format);
46
- }
47
- getOrderForColumn(col) {
48
- if (!this.sortBy) {
49
- return null;
50
- }
51
- let order = null;
52
- const sortedArray = Array.isArray(this.sortBy[0])
53
- ? this.sortBy
54
- : [this.sortBy];
55
- sortedArray.forEach((sortedCol) => {
56
- if (sortedCol[1] === col) {
57
- order = sortedCol[0];
58
- }
59
- });
60
- return order;
61
- }
62
- setSortBy(col) {
63
- const sortOrder = this.getOrderForColumn(col);
64
- let newOrder;
65
- if (sortOrder) {
66
- newOrder = sortOrder === 'asc' ? 'desc' : 'asc';
67
- }
68
- else {
69
- newOrder = 'asc';
70
- }
71
- this.sortByChange.emit([newOrder, col]);
72
- this.sortBy = [newOrder, col];
73
- }
74
- isSortedBy(col, order) {
75
- const sortOrder = this.getOrderForColumn(col);
76
- return sortOrder === order;
77
- }
78
- isChecked(record) {
79
- if (this.selectedRecords.includes(record.uniqueIdentifier)) {
80
- return true;
81
- }
82
- return false;
83
- }
84
- handleRecordSelectedChange(selected, record) {
85
- if (!selected) {
86
- this.recordsDeselect.emit([record]);
87
- this.selectedRecords = this.selectedRecords.filter((val) => val !== record.uniqueIdentifier);
88
- }
89
- else {
90
- this.recordsSelect.emit([record]);
91
- this.selectedRecords.push(record.uniqueIdentifier);
92
- }
93
- }
94
- selectAll() {
95
- if (this.isAllSelected()) {
96
- this.recordsDeselect.emit(this.records);
97
- this.selectedRecords = [];
98
- }
99
- else {
100
- this.recordsSelect.emit(this.records);
101
- this.selectedRecords = this.records.map((record) => {
102
- return record.uniqueIdentifier;
103
- });
104
- }
105
- }
106
- isAllSelected() {
107
- if (this.selectedRecords.length === this.records.length) {
108
- const allRecords = this.records.filter((record) => this.selectedRecords.includes(record.uniqueIdentifier));
109
- if (allRecords.length === this.records.length) {
110
- return true;
111
- }
112
- }
113
- return false;
114
- }
115
- isSomeSelected() {
116
- if (this.selectedRecords.length > 0 &&
117
- this.selectedRecords.length < this.records.length) {
118
- return true;
119
- }
120
- return false;
121
- }
122
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: RecordTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
123
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: RecordTableComponent, selector: "gn-ui-record-table", inputs: { selectedRecords: "selectedRecords", records: "records", totalHits: "totalHits", sortBy: "sortBy" }, outputs: { recordClick: "recordClick", recordsSelect: "recordsSelect", recordsDeselect: "recordsDeselect", sortByChange: "sortByChange" }, ngImport: i0, template: "<div>\n <div *ngIf=\"totalHits\" class=\"\">\n <div class=\"flex records-information\">\n <div\n translate\n class=\"my-8 ml-4 block text-gray-800\"\n [translateParams]=\"{\n displayed: records.length,\n hits: totalHits\n }\"\n >\n results.records.hits.displayedOn\n </div>\n <div\n *ngIf=\"selectedRecords.length > 0\"\n class=\"my-8 ml-6 block text-gray-400 selected-records\"\n translate\n [translateParams]=\"{ amount: selectedRecords.length }\"\n >\n results.records.hits.selected\n </div>\n </div>\n\n <div\n class=\"grid grid-cols-[repeat(3,minmax(0,max-content))] gap-x-4 gap-y-1\"\n *ngIf=\"records[0].name\"\n >\n <div class=\"contents text-sm\">\n <div class=\"record-table-header text-gray-400 flex gap-1\">\n <span translate>dashboard.records.userDetail</span>\n </div>\n <div class=\"record-table-header text-gray-400 flex gap-1\">\n <span translate>dashboard.records.username</span>\n </div>\n <div class=\"record-table-header text-gray-400 flex gap-1\">\n <span translate>dashboard.records.userEmail</span>\n </div>\n </div>\n <div\n class=\"contents hover:text-gray-900 text-gray-800 cursor-pointer\"\n (click)=\"recordsSelect.emit([record])\"\n *ngFor=\"let record of records\"\n >\n <div class=\"record-table-col text-16\">\n {{ record.name }}\n </div>\n <div class=\"record-table-col text-16\">\n {{ record.username }}\n </div>\n <div class=\"record-table-col text-16\">\n {{ record.emailAddresses[0] }}\n </div>\n </div>\n </div>\n\n <div\n class=\"grid grid-cols-[repeat(6,minmax(0,max-content))] gap-x-4 gap-y-1\"\n *ngIf=\"!records[0].name\"\n >\n <div class=\"contents text-sm\">\n <div class=\"flex justify-center items-center\">\n <gn-ui-checkbox\n [checked]=\"isAllSelected()\"\n [indeterminate]=\"isSomeSelected()\"\n (changed)=\"selectAll()\"\n type=\"default\"\n >\n </gn-ui-checkbox>\n </div>\n <div class=\"record-table-header text-gray-400 flex gap-1\">\n <gn-ui-button\n type=\"light\"\n extraClass=\"px-3 pl-0 space-x-1 text-left\"\n (buttonClick)=\"setSortBy('resourceTitleObject.default.keyword')\"\n >\n <span translate>record.metadata.title</span>\n <mat-icon\n class=\"material-symbols-outlined\"\n *ngIf=\"isSortedBy('resourceTitleObject.default.keyword', 'desc')\"\n >\n expand_more</mat-icon\n >\n <mat-icon\n class=\"material-symbols-outlined\"\n *ngIf=\"isSortedBy('resourceTitleObject.default.keyword', 'asc')\"\n >\n expand_less</mat-icon\n >\n </gn-ui-button>\n </div>\n <div translate=\"\" class=\"record-table-header text-gray-400 flex gap-1\">\n record.metadata.formats\n </div>\n <div class=\"record-table-header text-gray-400 flex gap-1\">\n <gn-ui-button\n type=\"light\"\n extraClass=\"px-3 pl-0 space-x-1\"\n (buttonClick)=\"setSortBy('recordOwner')\"\n >\n <span translate>record.metadata.author</span>\n <mat-icon\n class=\"material-symbols-outlined\"\n *ngIf=\"isSortedBy('recordOwner', 'desc')\"\n >\n expand_more</mat-icon\n >\n <mat-icon\n class=\"material-symbols-outlined\"\n *ngIf=\"isSortedBy('recordOwner', 'asc')\"\n >\n expand_less</mat-icon\n >\n </gn-ui-button>\n </div>\n <div class=\"record-table-header text-gray-400 flex gap-1\">\n <gn-ui-button\n type=\"light\"\n extraClass=\"px-3 pl-0 space-x-1\"\n (buttonClick)=\"setSortBy('changeDate')\"\n >\n <span translate>record.metadata.updatedOn</span>\n <mat-icon\n class=\"material-symbols-outlined\"\n *ngIf=\"isSortedBy('changeDate', 'desc')\"\n >\n expand_more</mat-icon\n >\n <mat-icon\n class=\"material-symbols-outlined\"\n *ngIf=\"isSortedBy('changeDate', 'asc')\"\n >\n expand_less</mat-icon\n >\n </gn-ui-button>\n </div>\n <div class=\"record-table-header text-gray-400 flex gap-1\">\n <gn-ui-button\n type=\"light\"\n extraClass=\"px-3 pl-0 space-x-1\"\n (buttonClick)=\"setSortBy('createDate')\"\n >\n <span translate>record.metadata.createdOn</span>\n <mat-icon\n class=\"material-symbols-outlined\"\n *ngIf=\"isSortedBy('createDate', 'desc')\"\n >\n expand_more</mat-icon\n >\n <mat-icon\n class=\"material-symbols-outlined\"\n *ngIf=\"isSortedBy('createDate', 'asc')\"\n >\n expand_less</mat-icon\n >\n </gn-ui-button>\n </div>\n </div>\n <div\n class=\"contents hover:text-gray-900 text-gray-800 cursor-pointer\"\n (click)=\"recordsSelect.emit([record])\"\n *ngFor=\"let record of records\"\n >\n <div class=\"record-table-col\">\n <gn-ui-checkbox\n [checked]=\"isChecked(record)\"\n (changed)=\"handleRecordSelectedChange($event, record)\"\n type=\"default\"\n ></gn-ui-checkbox>\n </div>\n <div\n [title]=\"record.title\"\n class=\"record-table-col text-16 self-center\"\n >\n {{ record.title }}\n </div>\n <div\n class=\"record-table-col flex justify-start items-center gap-2 text-16\"\n [title]=\"formats.join(', ')\"\n *ngIf=\"getRecordFormats(record) as formats\"\n >\n <span\n class=\"badge-btn min-w-[45px] text-sm text-white px-2 flex-shrink-0\"\n [style.background-color]=\"getBadgeColor(formats[0])\"\n *ngIf=\"formats[0]\"\n >\n {{ formats[0] }}\n </span>\n <span\n class=\"badge-btn min-w-[45px] text-sm text-white px-2 flex-shrink-0\"\n [style.background-color]=\"getBadgeColor(formats[1])\"\n *ngIf=\"formats[1]\"\n >\n {{ formats[1] }}\n </span>\n <div\n class=\"flex-shrink-0\"\n *ngIf=\"!record.name && formats.slice(2).length > 0\"\n >\n <span>+{{ formats.slice(2).length }}</span>\n </div>\n </div>\n <div class=\"record-table-col flex items-center gap-2 text-16\">\n <mat-icon class=\"material-symbols-outlined\"> person </mat-icon>\n <span class=\"\">{{ formatUserInfo(record.extras?.ownerInfo) }}</span>\n </div>\n <div class=\"record-table-col text-16 self-center\">\n {{ dateToString(record.recordUpdated) }}\n </div>\n <div class=\"record-table-col text-16 self-center\">\n {{ dateToString(record.recordCreated) }}\n </div>\n </div>\n </div>\n </div>\n</div>\n", styles: [".record-table-col{@apply px-5 py-3 items-center truncate;}.record-table-header{@apply record-table-col capitalize;}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i3.ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "component", type: i4.CheckboxComponent, selector: "gn-ui-checkbox", inputs: ["type", "checked", "indeterminate"], outputs: ["changed"] }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
124
- }
125
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: RecordTableComponent, decorators: [{
126
- type: Component,
127
- args: [{ selector: 'gn-ui-record-table', template: "<div>\n <div *ngIf=\"totalHits\" class=\"\">\n <div class=\"flex records-information\">\n <div\n translate\n class=\"my-8 ml-4 block text-gray-800\"\n [translateParams]=\"{\n displayed: records.length,\n hits: totalHits\n }\"\n >\n results.records.hits.displayedOn\n </div>\n <div\n *ngIf=\"selectedRecords.length > 0\"\n class=\"my-8 ml-6 block text-gray-400 selected-records\"\n translate\n [translateParams]=\"{ amount: selectedRecords.length }\"\n >\n results.records.hits.selected\n </div>\n </div>\n\n <div\n class=\"grid grid-cols-[repeat(3,minmax(0,max-content))] gap-x-4 gap-y-1\"\n *ngIf=\"records[0].name\"\n >\n <div class=\"contents text-sm\">\n <div class=\"record-table-header text-gray-400 flex gap-1\">\n <span translate>dashboard.records.userDetail</span>\n </div>\n <div class=\"record-table-header text-gray-400 flex gap-1\">\n <span translate>dashboard.records.username</span>\n </div>\n <div class=\"record-table-header text-gray-400 flex gap-1\">\n <span translate>dashboard.records.userEmail</span>\n </div>\n </div>\n <div\n class=\"contents hover:text-gray-900 text-gray-800 cursor-pointer\"\n (click)=\"recordsSelect.emit([record])\"\n *ngFor=\"let record of records\"\n >\n <div class=\"record-table-col text-16\">\n {{ record.name }}\n </div>\n <div class=\"record-table-col text-16\">\n {{ record.username }}\n </div>\n <div class=\"record-table-col text-16\">\n {{ record.emailAddresses[0] }}\n </div>\n </div>\n </div>\n\n <div\n class=\"grid grid-cols-[repeat(6,minmax(0,max-content))] gap-x-4 gap-y-1\"\n *ngIf=\"!records[0].name\"\n >\n <div class=\"contents text-sm\">\n <div class=\"flex justify-center items-center\">\n <gn-ui-checkbox\n [checked]=\"isAllSelected()\"\n [indeterminate]=\"isSomeSelected()\"\n (changed)=\"selectAll()\"\n type=\"default\"\n >\n </gn-ui-checkbox>\n </div>\n <div class=\"record-table-header text-gray-400 flex gap-1\">\n <gn-ui-button\n type=\"light\"\n extraClass=\"px-3 pl-0 space-x-1 text-left\"\n (buttonClick)=\"setSortBy('resourceTitleObject.default.keyword')\"\n >\n <span translate>record.metadata.title</span>\n <mat-icon\n class=\"material-symbols-outlined\"\n *ngIf=\"isSortedBy('resourceTitleObject.default.keyword', 'desc')\"\n >\n expand_more</mat-icon\n >\n <mat-icon\n class=\"material-symbols-outlined\"\n *ngIf=\"isSortedBy('resourceTitleObject.default.keyword', 'asc')\"\n >\n expand_less</mat-icon\n >\n </gn-ui-button>\n </div>\n <div translate=\"\" class=\"record-table-header text-gray-400 flex gap-1\">\n record.metadata.formats\n </div>\n <div class=\"record-table-header text-gray-400 flex gap-1\">\n <gn-ui-button\n type=\"light\"\n extraClass=\"px-3 pl-0 space-x-1\"\n (buttonClick)=\"setSortBy('recordOwner')\"\n >\n <span translate>record.metadata.author</span>\n <mat-icon\n class=\"material-symbols-outlined\"\n *ngIf=\"isSortedBy('recordOwner', 'desc')\"\n >\n expand_more</mat-icon\n >\n <mat-icon\n class=\"material-symbols-outlined\"\n *ngIf=\"isSortedBy('recordOwner', 'asc')\"\n >\n expand_less</mat-icon\n >\n </gn-ui-button>\n </div>\n <div class=\"record-table-header text-gray-400 flex gap-1\">\n <gn-ui-button\n type=\"light\"\n extraClass=\"px-3 pl-0 space-x-1\"\n (buttonClick)=\"setSortBy('changeDate')\"\n >\n <span translate>record.metadata.updatedOn</span>\n <mat-icon\n class=\"material-symbols-outlined\"\n *ngIf=\"isSortedBy('changeDate', 'desc')\"\n >\n expand_more</mat-icon\n >\n <mat-icon\n class=\"material-symbols-outlined\"\n *ngIf=\"isSortedBy('changeDate', 'asc')\"\n >\n expand_less</mat-icon\n >\n </gn-ui-button>\n </div>\n <div class=\"record-table-header text-gray-400 flex gap-1\">\n <gn-ui-button\n type=\"light\"\n extraClass=\"px-3 pl-0 space-x-1\"\n (buttonClick)=\"setSortBy('createDate')\"\n >\n <span translate>record.metadata.createdOn</span>\n <mat-icon\n class=\"material-symbols-outlined\"\n *ngIf=\"isSortedBy('createDate', 'desc')\"\n >\n expand_more</mat-icon\n >\n <mat-icon\n class=\"material-symbols-outlined\"\n *ngIf=\"isSortedBy('createDate', 'asc')\"\n >\n expand_less</mat-icon\n >\n </gn-ui-button>\n </div>\n </div>\n <div\n class=\"contents hover:text-gray-900 text-gray-800 cursor-pointer\"\n (click)=\"recordsSelect.emit([record])\"\n *ngFor=\"let record of records\"\n >\n <div class=\"record-table-col\">\n <gn-ui-checkbox\n [checked]=\"isChecked(record)\"\n (changed)=\"handleRecordSelectedChange($event, record)\"\n type=\"default\"\n ></gn-ui-checkbox>\n </div>\n <div\n [title]=\"record.title\"\n class=\"record-table-col text-16 self-center\"\n >\n {{ record.title }}\n </div>\n <div\n class=\"record-table-col flex justify-start items-center gap-2 text-16\"\n [title]=\"formats.join(', ')\"\n *ngIf=\"getRecordFormats(record) as formats\"\n >\n <span\n class=\"badge-btn min-w-[45px] text-sm text-white px-2 flex-shrink-0\"\n [style.background-color]=\"getBadgeColor(formats[0])\"\n *ngIf=\"formats[0]\"\n >\n {{ formats[0] }}\n </span>\n <span\n class=\"badge-btn min-w-[45px] text-sm text-white px-2 flex-shrink-0\"\n [style.background-color]=\"getBadgeColor(formats[1])\"\n *ngIf=\"formats[1]\"\n >\n {{ formats[1] }}\n </span>\n <div\n class=\"flex-shrink-0\"\n *ngIf=\"!record.name && formats.slice(2).length > 0\"\n >\n <span>+{{ formats.slice(2).length }}</span>\n </div>\n </div>\n <div class=\"record-table-col flex items-center gap-2 text-16\">\n <mat-icon class=\"material-symbols-outlined\"> person </mat-icon>\n <span class=\"\">{{ formatUserInfo(record.extras?.ownerInfo) }}</span>\n </div>\n <div class=\"record-table-col text-16 self-center\">\n {{ dateToString(record.recordUpdated) }}\n </div>\n <div class=\"record-table-col text-16 self-center\">\n {{ dateToString(record.recordCreated) }}\n </div>\n </div>\n </div>\n </div>\n</div>\n", styles: [".record-table-col{@apply px-5 py-3 items-center truncate;}.record-table-header{@apply record-table-col capitalize;}\n"] }]
128
- }], propDecorators: { selectedRecords: [{
129
- type: Input
130
- }], records: [{
131
- type: Input
132
- }], totalHits: [{
133
- type: Input
134
- }], sortBy: [{
135
- type: Input
136
- }], recordClick: [{
137
- type: Output
138
- }], recordsSelect: [{
139
- type: Output
140
- }], recordsDeselect: [{
141
- type: Output
142
- }], sortByChange: [{
143
- type: Output
144
- }] } });
145
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjb3JkLXRhYmxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvc2VhcmNoL3NyYy9saWIvcmVjb3JkLXRhYmxlL3JlY29yZC10YWJsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL3NlYXJjaC9zcmMvbGliL3JlY29yZC10YWJsZS9yZWNvcmQtdGFibGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUV0RSxPQUFPLEVBRUwsYUFBYSxFQUNiLGFBQWEsRUFDYixpQkFBaUIsR0FDbEIsTUFBTSx3Q0FBd0MsQ0FBQTs7Ozs7OztBQVEvQyxNQUFNLE9BQU8sb0JBQW9CO0lBTGpDO1FBTVcsb0JBQWUsR0FBYSxFQUFFLENBQUE7UUFDOUIsWUFBTyxHQUFVLEVBQUUsQ0FBQTtRQUdsQixnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFpQixDQUFBO1FBQy9DLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQW1CLENBQUE7UUFDbkQsb0JBQWUsR0FBRyxJQUFJLFlBQVksRUFBbUIsQ0FBQTtRQUNyRCxpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFlLENBQUE7S0E2SHpEO0lBM0hDLFlBQVksQ0FBQyxJQUFVO1FBQ3JCLE9BQU8sSUFBSSxFQUFFLGtCQUFrQixDQUFDLFNBQVMsRUFBRTtZQUN6QyxJQUFJLEVBQUUsU0FBUztZQUNmLEtBQUssRUFBRSxNQUFNO1lBQ2IsR0FBRyxFQUFFLFNBQVM7WUFDZCxRQUFRLEVBQUUsS0FBSztTQUNoQixDQUFDLENBQUE7SUFDSixDQUFDO0lBRUQsU0FBUyxDQUFDLGdCQUFtQztRQUMzQyxPQUFPLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQTtJQUN6RCxDQUFDO0lBRUQsY0FBYyxDQUFDLFFBQTBCO1FBQ3ZDLE1BQU0sS0FBSyxHQUFHLENBQUMsT0FBTyxRQUFRLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQTtRQUN2RSxJQUFJLEtBQUssSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUMvQixPQUFPLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFBO1NBQ2pDO1FBQ0QsT0FBTyxTQUFTLENBQUE7SUFDbEIsQ0FBQztJQUVELGdCQUFnQixDQUFDLE1BQXFCO1FBQ3BDLElBQUksTUFBTSxDQUFDLElBQUksS0FBSyxTQUFTLElBQUksQ0FBQyxDQUFDLGVBQWUsSUFBSSxNQUFNLENBQUMsRUFBRTtZQUM3RCxPQUFPLEVBQUUsQ0FBQTtTQUNWO1FBQ0QsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FDeEIsSUFBSSxHQUFHLENBQ0wsTUFBTSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxZQUFZLEVBQUUsRUFBRSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUN4RSxDQUNGLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUE7UUFDOUIsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxHQUFHLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFDbkUsT0FBTyxPQUFPLENBQUE7SUFDaEIsQ0FBQztJQUVELGFBQWEsQ0FBQyxNQUFrQjtRQUM5QixPQUFPLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUM5QixDQUFDO0lBRU8saUJBQWlCLENBQUMsR0FBVztRQUNuQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNoQixPQUFPLElBQUksQ0FBQTtTQUNaO1FBQ0QsSUFBSSxLQUFLLEdBQTBCLElBQUksQ0FBQTtRQUN2QyxNQUFNLFdBQVcsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDL0MsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNO1lBQ2IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFBO1FBQ2pCLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRTtZQUNoQyxJQUFJLFNBQVMsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLEVBQUU7Z0JBQ3hCLEtBQUssR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUE7YUFDckI7UUFDSCxDQUFDLENBQUMsQ0FBQTtRQUNGLE9BQU8sS0FBSyxDQUFBO0lBQ2QsQ0FBQztJQUVELFNBQVMsQ0FBQyxHQUFXO1FBQ25CLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsQ0FBQTtRQUM3QyxJQUFJLFFBQVEsQ0FBQTtRQUNaLElBQUksU0FBUyxFQUFFO1lBQ2IsUUFBUSxHQUFHLFNBQVMsS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFBO1NBQ2hEO2FBQU07WUFDTCxRQUFRLEdBQUcsS0FBSyxDQUFBO1NBQ2pCO1FBQ0QsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQTtRQUN2QyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxDQUFBO0lBQy9CLENBQUM7SUFFRCxVQUFVLENBQUMsR0FBVyxFQUFFLEtBQXFCO1FBQzNDLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsQ0FBQTtRQUM3QyxPQUFPLFNBQVMsS0FBSyxLQUFLLENBQUE7SUFDNUIsQ0FBQztJQUVELFNBQVMsQ0FBQyxNQUFxQjtRQUM3QixJQUFJLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFO1lBQzFELE9BQU8sSUFBSSxDQUFBO1NBQ1o7UUFDRCxPQUFPLEtBQUssQ0FBQTtJQUNkLENBQUM7SUFFRCwwQkFBMEIsQ0FBQyxRQUFpQixFQUFFLE1BQXFCO1FBQ2pFLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDYixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUE7WUFDbkMsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FDaEQsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsS0FBSyxNQUFNLENBQUMsZ0JBQWdCLENBQ3pDLENBQUE7U0FDRjthQUFNO1lBQ0wsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFBO1lBQ2pDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFBO1NBQ25EO0lBQ0gsQ0FBQztJQUVELFNBQVM7UUFDUCxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsRUFBRTtZQUN4QixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUE7WUFDdkMsSUFBSSxDQUFDLGVBQWUsR0FBRyxFQUFFLENBQUE7U0FDMUI7YUFBTTtZQUNMLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQTtZQUNyQyxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7Z0JBQ2pELE9BQU8sTUFBTSxDQUFDLGdCQUFnQixDQUFBO1lBQ2hDLENBQUMsQ0FBQyxDQUFBO1NBQ0g7SUFDSCxDQUFDO0lBRUQsYUFBYTtRQUNYLElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLEtBQUssSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUU7WUFDdkQsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUNoRCxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FDdkQsQ0FBQTtZQUNELElBQUksVUFBVSxDQUFDLE1BQU0sS0FBSyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRTtnQkFDN0MsT0FBTyxJQUFJLENBQUE7YUFDWjtTQUNGO1FBQ0QsT0FBTyxLQUFLLENBQUE7SUFDZCxDQUFDO0lBRUQsY0FBYztRQUNaLElBQ0UsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLEdBQUcsQ0FBQztZQUMvQixJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFDakQ7WUFDQSxPQUFPLElBQUksQ0FBQTtTQUNaO1FBQ0QsT0FBTyxLQUFLLENBQUE7SUFDZCxDQUFDOzhHQXBJVSxvQkFBb0I7a0dBQXBCLG9CQUFvQixtVENmakMsbTZPQXVOQTs7MkZEeE1hLG9CQUFvQjtrQkFMaEMsU0FBUzsrQkFDRSxvQkFBb0I7OEJBS3JCLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNJLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csYUFBYTtzQkFBdEIsTUFBTTtnQkFDRyxlQUFlO3NCQUF4QixNQUFNO2dCQUNHLFlBQVk7c0JBQXJCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBDYXRhbG9nUmVjb3JkIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vZG9tYWluL3NyYy9saWIvbW9kZWwvcmVjb3JkJ1xuaW1wb3J0IHtcbiAgRmlsZUZvcm1hdCxcbiAgZ2V0QmFkZ2VDb2xvcixcbiAgZ2V0RmlsZUZvcm1hdCxcbiAgZ2V0Rm9ybWF0UHJpb3JpdHksXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdXRpbC9zaGFyZWQvc3JjJ1xuaW1wb3J0IHsgU29ydEJ5RmllbGQgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9tb2RlbC9zZWFyY2gnXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2duLXVpLXJlY29yZC10YWJsZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9yZWNvcmQtdGFibGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9yZWNvcmQtdGFibGUuY29tcG9uZW50LmNzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBSZWNvcmRUYWJsZUNvbXBvbmVudCB7XG4gIEBJbnB1dCgpIHNlbGVjdGVkUmVjb3Jkczogc3RyaW5nW10gPSBbXVxuICBASW5wdXQoKSByZWNvcmRzOiBhbnlbXSA9IFtdXG4gIEBJbnB1dCgpIHRvdGFsSGl0cz86IG51bWJlclxuICBASW5wdXQoKSBzb3J0Qnk/OiBTb3J0QnlGaWVsZFxuICBAT3V0cHV0KCkgcmVjb3JkQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPENhdGFsb2dSZWNvcmQ+KClcbiAgQE91dHB1dCgpIHJlY29yZHNTZWxlY3QgPSBuZXcgRXZlbnRFbWl0dGVyPENhdGFsb2dSZWNvcmRbXT4oKVxuICBAT3V0cHV0KCkgcmVjb3Jkc0Rlc2VsZWN0ID0gbmV3IEV2ZW50RW1pdHRlcjxDYXRhbG9nUmVjb3JkW10+KClcbiAgQE91dHB1dCgpIHNvcnRCeUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8U29ydEJ5RmllbGQ+KClcblxuICBkYXRlVG9TdHJpbmcoZGF0ZTogRGF0ZSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGRhdGU/LnRvTG9jYWxlRGF0ZVN0cmluZyh1bmRlZmluZWQsIHtcbiAgICAgIHllYXI6ICdudW1lcmljJyxcbiAgICAgIG1vbnRoOiAnbG9uZycsXG4gICAgICBkYXk6ICdudW1lcmljJyxcbiAgICAgIHRpbWVab25lOiAnVVRDJyxcbiAgICB9KVxuICB9XG5cbiAgZ2V0U3RhdHVzKGlzUHVibGlzaGVkVG9BbGw6IGJvb2xlYW4gfCB1bmtub3duKSB7XG4gICAgcmV0dXJuIGlzUHVibGlzaGVkVG9BbGwgPyAncHVibGlzaGVkJyA6ICdub3QgcHVibGlzaGVkJ1xuICB9XG5cbiAgZm9ybWF0VXNlckluZm8odXNlckluZm86IHN0cmluZyB8IHVua25vd24pOiBzdHJpbmcge1xuICAgIGNvbnN0IGluZm9zID0gKHR5cGVvZiB1c2VySW5mbyA9PT0gJ3N0cmluZycgPyB1c2VySW5mbyA6ICcnKS5zcGxpdCgnfCcpXG4gICAgaWYgKGluZm9zICYmIGluZm9zLmxlbmd0aCA9PT0gNCkge1xuICAgICAgcmV0dXJuIGAke2luZm9zWzJdfSAke2luZm9zWzFdfWBcbiAgICB9XG4gICAgcmV0dXJuIHVuZGVmaW5lZFxuICB9XG5cbiAgZ2V0UmVjb3JkRm9ybWF0cyhyZWNvcmQ6IENhdGFsb2dSZWNvcmQpOiBGaWxlRm9ybWF0W10ge1xuICAgIGlmIChyZWNvcmQua2luZCA9PT0gJ3NlcnZpY2UnIHx8ICEoJ2Rpc3RyaWJ1dGlvbnMnIGluIHJlY29yZCkpIHtcbiAgICAgIHJldHVybiBbXVxuICAgIH1cbiAgICBjb25zdCBmb3JtYXRzID0gQXJyYXkuZnJvbShcbiAgICAgIG5ldyBTZXQoXG4gICAgICAgIHJlY29yZC5kaXN0cmlidXRpb25zLm1hcCgoZGlzdHJpYnV0aW9uKSA9PiBnZXRGaWxlRm9ybWF0KGRpc3RyaWJ1dGlvbikpXG4gICAgICApXG4gICAgKS5maWx0ZXIoKGZvcm1hdCkgPT4gISFmb3JtYXQpXG4gICAgZm9ybWF0cy5zb3J0KChhLCBiKSA9PiBnZXRGb3JtYXRQcmlvcml0eShiKSAtIGdldEZvcm1hdFByaW9yaXR5KGEpKVxuICAgIHJldHVybiBmb3JtYXRzXG4gIH1cblxuICBnZXRCYWRnZUNvbG9yKGZvcm1hdDogRmlsZUZvcm1hdCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGdldEJhZGdlQ29sb3IoZm9ybWF0KVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRPcmRlckZvckNvbHVtbihjb2w6IHN0cmluZyk6ICdhc2MnIHwgJ2Rlc2MnIHwgbnVsbCB7XG4gICAgaWYgKCF0aGlzLnNvcnRCeSkge1xuICAgICAgcmV0dXJuIG51bGxcbiAgICB9XG4gICAgbGV0IG9yZGVyOiAnYXNjJyB8ICdkZXNjJyB8IG51bGwgPSBudWxsXG4gICAgY29uc3Qgc29ydGVkQXJyYXkgPSBBcnJheS5pc0FycmF5KHRoaXMuc29ydEJ5WzBdKVxuICAgICAgPyB0aGlzLnNvcnRCeVxuICAgICAgOiBbdGhpcy5zb3J0QnldXG4gICAgc29ydGVkQXJyYXkuZm9yRWFjaCgoc29ydGVkQ29sKSA9PiB7XG4gICAgICBpZiAoc29ydGVkQ29sWzFdID09PSBjb2wpIHtcbiAgICAgICAgb3JkZXIgPSBzb3J0ZWRDb2xbMF1cbiAgICAgIH1cbiAgICB9KVxuICAgIHJldHVybiBvcmRlclxuICB9XG5cbiAgc2V0U29ydEJ5KGNvbDogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3Qgc29ydE9yZGVyID0gdGhpcy5nZXRPcmRlckZvckNvbHVtbihjb2wpXG4gICAgbGV0IG5ld09yZGVyXG4gICAgaWYgKHNvcnRPcmRlcikge1xuICAgICAgbmV3T3JkZXIgPSBzb3J0T3JkZXIgPT09ICdhc2MnID8gJ2Rlc2MnIDogJ2FzYydcbiAgICB9IGVsc2Uge1xuICAgICAgbmV3T3JkZXIgPSAnYXNjJ1xuICAgIH1cbiAgICB0aGlzLnNvcnRCeUNoYW5nZS5lbWl0KFtuZXdPcmRlciwgY29sXSlcbiAgICB0aGlzLnNvcnRCeSA9IFtuZXdPcmRlciwgY29sXVxuICB9XG5cbiAgaXNTb3J0ZWRCeShjb2w6IHN0cmluZywgb3JkZXI6ICdhc2MnIHwgJ2Rlc2MnKTogYm9vbGVhbiB7XG4gICAgY29uc3Qgc29ydE9yZGVyID0gdGhpcy5nZXRPcmRlckZvckNvbHVtbihjb2wpXG4gICAgcmV0dXJuIHNvcnRPcmRlciA9PT0gb3JkZXJcbiAgfVxuXG4gIGlzQ2hlY2tlZChyZWNvcmQ6IENhdGFsb2dSZWNvcmQpIHtcbiAgICBpZiAodGhpcy5zZWxlY3RlZFJlY29yZHMuaW5jbHVkZXMocmVjb3JkLnVuaXF1ZUlkZW50aWZpZXIpKSB7XG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIGhhbmRsZVJlY29yZFNlbGVjdGVkQ2hhbmdlKHNlbGVjdGVkOiBib29sZWFuLCByZWNvcmQ6IENhdGFsb2dSZWNvcmQpIHtcbiAgICBpZiAoIXNlbGVjdGVkKSB7XG4gICAgICB0aGlzLnJlY29yZHNEZXNlbGVjdC5lbWl0KFtyZWNvcmRdKVxuICAgICAgdGhpcy5zZWxlY3RlZFJlY29yZHMgPSB0aGlzLnNlbGVjdGVkUmVjb3Jkcy5maWx0ZXIoXG4gICAgICAgICh2YWwpID0+IHZhbCAhPT0gcmVjb3JkLnVuaXF1ZUlkZW50aWZpZXJcbiAgICAgIClcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5yZWNvcmRzU2VsZWN0LmVtaXQoW3JlY29yZF0pXG4gICAgICB0aGlzLnNlbGVjdGVkUmVjb3Jkcy5wdXNoKHJlY29yZC51bmlxdWVJZGVudGlmaWVyKVxuICAgIH1cbiAgfVxuXG4gIHNlbGVjdEFsbCgpIHtcbiAgICBpZiAodGhpcy5pc0FsbFNlbGVjdGVkKCkpIHtcbiAgICAgIHRoaXMucmVjb3Jkc0Rlc2VsZWN0LmVtaXQodGhpcy5yZWNvcmRzKVxuICAgICAgdGhpcy5zZWxlY3RlZFJlY29yZHMgPSBbXVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnJlY29yZHNTZWxlY3QuZW1pdCh0aGlzLnJlY29yZHMpXG4gICAgICB0aGlzLnNlbGVjdGVkUmVjb3JkcyA9IHRoaXMucmVjb3Jkcy5tYXAoKHJlY29yZCkgPT4ge1xuICAgICAgICByZXR1cm4gcmVjb3JkLnVuaXF1ZUlkZW50aWZpZXJcbiAgICAgIH0pXG4gICAgfVxuICB9XG5cbiAgaXNBbGxTZWxlY3RlZCgpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5zZWxlY3RlZFJlY29yZHMubGVuZ3RoID09PSB0aGlzLnJlY29yZHMubGVuZ3RoKSB7XG4gICAgICBjb25zdCBhbGxSZWNvcmRzID0gdGhpcy5yZWNvcmRzLmZpbHRlcigocmVjb3JkKSA9PlxuICAgICAgICB0aGlzLnNlbGVjdGVkUmVjb3Jkcy5pbmNsdWRlcyhyZWNvcmQudW5pcXVlSWRlbnRpZmllcilcbiAgICAgIClcbiAgICAgIGlmIChhbGxSZWNvcmRzLmxlbmd0aCA9PT0gdGhpcy5yZWNvcmRzLmxlbmd0aCkge1xuICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIGlzU29tZVNlbGVjdGVkKCk6IGJvb2xlYW4ge1xuICAgIGlmIChcbiAgICAgIHRoaXMuc2VsZWN0ZWRSZWNvcmRzLmxlbmd0aCA+IDAgJiZcbiAgICAgIHRoaXMuc2VsZWN0ZWRSZWNvcmRzLmxlbmd0aCA8IHRoaXMucmVjb3Jkcy5sZW5ndGhcbiAgICApIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuICAgIHJldHVybiBmYWxzZVxuICB9XG59XG4iLCI8ZGl2PlxuICA8ZGl2ICpuZ0lmPVwidG90YWxIaXRzXCIgY2xhc3M9XCJcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleCByZWNvcmRzLWluZm9ybWF0aW9uXCI+XG4gICAgICA8ZGl2XG4gICAgICAgIHRyYW5zbGF0ZVxuICAgICAgICBjbGFzcz1cIm15LTggbWwtNCBibG9jayB0ZXh0LWdyYXktODAwXCJcbiAgICAgICAgW3RyYW5zbGF0ZVBhcmFtc109XCJ7XG4gICAgICAgICAgZGlzcGxheWVkOiByZWNvcmRzLmxlbmd0aCxcbiAgICAgICAgICBoaXRzOiB0b3RhbEhpdHNcbiAgICAgICAgfVwiXG4gICAgICA+XG4gICAgICAgIHJlc3VsdHMucmVjb3Jkcy5oaXRzLmRpc3BsYXllZE9uXG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXZcbiAgICAgICAgKm5nSWY9XCJzZWxlY3RlZFJlY29yZHMubGVuZ3RoID4gMFwiXG4gICAgICAgIGNsYXNzPVwibXktOCBtbC02IGJsb2NrIHRleHQtZ3JheS00MDAgc2VsZWN0ZWQtcmVjb3Jkc1wiXG4gICAgICAgIHRyYW5zbGF0ZVxuICAgICAgICBbdHJhbnNsYXRlUGFyYW1zXT1cInsgYW1vdW50OiBzZWxlY3RlZFJlY29yZHMubGVuZ3RoIH1cIlxuICAgICAgPlxuICAgICAgICByZXN1bHRzLnJlY29yZHMuaGl0cy5zZWxlY3RlZFxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cImdyaWQgZ3JpZC1jb2xzLVtyZXBlYXQoMyxtaW5tYXgoMCxtYXgtY29udGVudCkpXSBnYXAteC00IGdhcC15LTFcIlxuICAgICAgKm5nSWY9XCJyZWNvcmRzWzBdLm5hbWVcIlxuICAgID5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb250ZW50cyB0ZXh0LXNtXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJyZWNvcmQtdGFibGUtaGVhZGVyIHRleHQtZ3JheS00MDAgZmxleCBnYXAtMVwiPlxuICAgICAgICAgIDxzcGFuIHRyYW5zbGF0ZT5kYXNoYm9hcmQucmVjb3Jkcy51c2VyRGV0YWlsPC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInJlY29yZC10YWJsZS1oZWFkZXIgdGV4dC1ncmF5LTQwMCBmbGV4IGdhcC0xXCI+XG4gICAgICAgICAgPHNwYW4gdHJhbnNsYXRlPmRhc2hib2FyZC5yZWNvcmRzLnVzZXJuYW1lPC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInJlY29yZC10YWJsZS1oZWFkZXIgdGV4dC1ncmF5LTQwMCBmbGV4IGdhcC0xXCI+XG4gICAgICAgICAgPHNwYW4gdHJhbnNsYXRlPmRhc2hib2FyZC5yZWNvcmRzLnVzZXJFbWFpbDwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJjb250ZW50cyBob3Zlcjp0ZXh0LWdyYXktOTAwIHRleHQtZ3JheS04MDAgY3Vyc29yLXBvaW50ZXJcIlxuICAgICAgICAoY2xpY2spPVwicmVjb3Jkc1NlbGVjdC5lbWl0KFtyZWNvcmRdKVwiXG4gICAgICAgICpuZ0Zvcj1cImxldCByZWNvcmQgb2YgcmVjb3Jkc1wiXG4gICAgICA+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJyZWNvcmQtdGFibGUtY29sIHRleHQtMTZcIj5cbiAgICAgICAgICB7eyByZWNvcmQubmFtZSB9fVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInJlY29yZC10YWJsZS1jb2wgdGV4dC0xNlwiPlxuICAgICAgICAgIHt7IHJlY29yZC51c2VybmFtZSB9fVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInJlY29yZC10YWJsZS1jb2wgdGV4dC0xNlwiPlxuICAgICAgICAgIHt7IHJlY29yZC5lbWFpbEFkZHJlc3Nlc1swXSB9fVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJncmlkIGdyaWQtY29scy1bcmVwZWF0KDYsbWlubWF4KDAsbWF4LWNvbnRlbnQpKV0gZ2FwLXgtNCBnYXAteS0xXCJcbiAgICAgICpuZ0lmPVwiIXJlY29yZHNbMF0ubmFtZVwiXG4gICAgPlxuICAgICAgPGRpdiBjbGFzcz1cImNvbnRlbnRzIHRleHQtc21cIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1jZW50ZXIgaXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgPGduLXVpLWNoZWNrYm94XG4gICAgICAgICAgICBbY2hlY2tlZF09XCJpc0FsbFNlbGVjdGVkKClcIlxuICAgICAgICAgICAgW2luZGV0ZXJtaW5hdGVdPVwiaXNTb21lU2VsZWN0ZWQoKVwiXG4gICAgICAgICAgICAoY2hhbmdlZCk9XCJzZWxlY3RBbGwoKVwiXG4gICAgICAgICAgICB0eXBlPVwiZGVmYXVsdFwiXG4gICAgICAgICAgPlxuICAgICAgICAgIDwvZ24tdWktY2hlY2tib3g+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwicmVjb3JkLXRhYmxlLWhlYWRlciB0ZXh0LWdyYXktNDAwIGZsZXggZ2FwLTFcIj5cbiAgICAgICAgICA8Z24tdWktYnV0dG9uXG4gICAgICAgICAgICB0eXBlPVwibGlnaHRcIlxuICAgICAgICAgICAgZXh0cmFDbGFzcz1cInB4LTMgcGwtMCBzcGFjZS14LTEgdGV4dC1sZWZ0XCJcbiAgICAgICAgICAgIChidXR0b25DbGljayk9XCJzZXRTb3J0QnkoJ3Jlc291cmNlVGl0bGVPYmplY3QuZGVmYXVsdC5rZXl3b3JkJylcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxzcGFuIHRyYW5zbGF0ZT5yZWNvcmQubWV0YWRhdGEudGl0bGU8L3NwYW4+XG4gICAgICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgICAgY2xhc3M9XCJtYXRlcmlhbC1zeW1ib2xzLW91dGxpbmVkXCJcbiAgICAgICAgICAgICAgKm5nSWY9XCJpc1NvcnRlZEJ5KCdyZXNvdXJjZVRpdGxlT2JqZWN0LmRlZmF1bHQua2V5d29yZCcsICdkZXNjJylcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICBleHBhbmRfbW9yZTwvbWF0LWljb25cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgICAgICBjbGFzcz1cIm1hdGVyaWFsLXN5bWJvbHMtb3V0bGluZWRcIlxuICAgICAgICAgICAgICAqbmdJZj1cImlzU29ydGVkQnkoJ3Jlc291cmNlVGl0bGVPYmplY3QuZGVmYXVsdC5rZXl3b3JkJywgJ2FzYycpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgZXhwYW5kX2xlc3M8L21hdC1pY29uXG4gICAgICAgICAgICA+XG4gICAgICAgICAgPC9nbi11aS1idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IHRyYW5zbGF0ZT1cIlwiIGNsYXNzPVwicmVjb3JkLXRhYmxlLWhlYWRlciB0ZXh0LWdyYXktNDAwIGZsZXggZ2FwLTFcIj5cbiAgICAgICAgICByZWNvcmQubWV0YWRhdGEuZm9ybWF0c1xuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInJlY29yZC10YWJsZS1oZWFkZXIgdGV4dC1ncmF5LTQwMCBmbGV4IGdhcC0xXCI+XG4gICAgICAgICAgPGduLXVpLWJ1dHRvblxuICAgICAgICAgICAgdHlwZT1cImxpZ2h0XCJcbiAgICAgICAgICAgIGV4dHJhQ2xhc3M9XCJweC0zIHBsLTAgc3BhY2UteC0xXCJcbiAgICAgICAgICAgIChidXR0b25DbGljayk9XCJzZXRTb3J0QnkoJ3JlY29yZE93bmVyJylcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxzcGFuIHRyYW5zbGF0ZT5yZWNvcmQubWV0YWRhdGEuYXV0aG9yPC9zcGFuPlxuICAgICAgICAgICAgPG1hdC1pY29uXG4gICAgICAgICAgICAgIGNsYXNzPVwibWF0ZXJpYWwtc3ltYm9scy1vdXRsaW5lZFwiXG4gICAgICAgICAgICAgICpuZ0lmPVwiaXNTb3J0ZWRCeSgncmVjb3JkT3duZXInLCAnZGVzYycpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgZXhwYW5kX21vcmU8L21hdC1pY29uXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgICAgY2xhc3M9XCJtYXRlcmlhbC1zeW1ib2xzLW91dGxpbmVkXCJcbiAgICAgICAgICAgICAgKm5nSWY9XCJpc1NvcnRlZEJ5KCdyZWNvcmRPd25lcicsICdhc2MnKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIGV4cGFuZF9sZXNzPC9tYXQtaWNvblxuICAgICAgICAgICAgPlxuICAgICAgICAgIDwvZ24tdWktYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInJlY29yZC10YWJsZS1oZWFkZXIgdGV4dC1ncmF5LTQwMCBmbGV4IGdhcC0xXCI+XG4gICAgICAgICAgPGduLXVpLWJ1dHRvblxuICAgICAgICAgICAgdHlwZT1cImxpZ2h0XCJcbiAgICAgICAgICAgIGV4dHJhQ2xhc3M9XCJweC0zIHBsLTAgc3BhY2UteC0xXCJcbiAgICAgICAgICAgIChidXR0b25DbGljayk9XCJzZXRTb3J0QnkoJ2NoYW5nZURhdGUnKVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPHNwYW4gdHJhbnNsYXRlPnJlY29yZC5tZXRhZGF0YS51cGRhdGVkT248L3NwYW4+XG4gICAgICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgICAgY2xhc3M9XCJtYXRlcmlhbC1zeW1ib2xzLW91dGxpbmVkXCJcbiAgICAgICAgICAgICAgKm5nSWY9XCJpc1NvcnRlZEJ5KCdjaGFuZ2VEYXRlJywgJ2Rlc2MnKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIGV4cGFuZF9tb3JlPC9tYXQtaWNvblxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPG1hdC1pY29uXG4gICAgICAgICAgICAgIGNsYXNzPVwibWF0ZXJpYWwtc3ltYm9scy1vdXRsaW5lZFwiXG4gICAgICAgICAgICAgICpuZ0lmPVwiaXNTb3J0ZWRCeSgnY2hhbmdlRGF0ZScsICdhc2MnKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIGV4cGFuZF9sZXNzPC9tYXQtaWNvblxuICAgICAgICAgICAgPlxuICAgICAgICAgIDwvZ24tdWktYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInJlY29yZC10YWJsZS1oZWFkZXIgdGV4dC1ncmF5LTQwMCBmbGV4IGdhcC0xXCI+XG4gICAgICAgICAgPGduLXVpLWJ1dHRvblxuICAgICAgICAgICAgdHlwZT1cImxpZ2h0XCJcbiAgICAgICAgICAgIGV4dHJhQ2xhc3M9XCJweC0zIHBsLTAgc3BhY2UteC0xXCJcbiAgICAgICAgICAgIChidXR0b25DbGljayk9XCJzZXRTb3J0QnkoJ2NyZWF0ZURhdGUnKVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPHNwYW4gdHJhbnNsYXRlPnJlY29yZC5tZXRhZGF0YS5jcmVhdGVkT248L3NwYW4+XG4gICAgICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgICAgY2xhc3M9XCJtYXRlcmlhbC1zeW1ib2xzLW91dGxpbmVkXCJcbiAgICAgICAgICAgICAgKm5nSWY9XCJpc1NvcnRlZEJ5KCdjcmVhdGVEYXRlJywgJ2Rlc2MnKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIGV4cGFuZF9tb3JlPC9tYXQtaWNvblxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPG1hdC1pY29uXG4gICAgICAgICAgICAgIGNsYXNzPVwibWF0ZXJpYWwtc3ltYm9scy1vdXRsaW5lZFwiXG4gICAgICAgICAgICAgICpuZ0lmPVwiaXNTb3J0ZWRCeSgnY3JlYXRlRGF0ZScsICdhc2MnKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIGV4cGFuZF9sZXNzPC9tYXQtaWNvblxuICAgICAgICAgICAgPlxuICAgICAgICAgIDwvZ24tdWktYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cImNvbnRlbnRzIGhvdmVyOnRleHQtZ3JheS05MDAgdGV4dC1ncmF5LTgwMCBjdXJzb3ItcG9pbnRlclwiXG4gICAgICAgIChjbGljayk9XCJyZWNvcmRzU2VsZWN0LmVtaXQoW3JlY29yZF0pXCJcbiAgICAgICAgKm5nRm9yPVwibGV0IHJlY29yZCBvZiByZWNvcmRzXCJcbiAgICAgID5cbiAgICAgICAgPGRpdiBjbGFzcz1cInJlY29yZC10YWJsZS1jb2xcIj5cbiAgICAgICAgICA8Z24tdWktY2hlY2tib3hcbiAgICAgICAgICAgIFtjaGVja2VkXT1cImlzQ2hlY2tlZChyZWNvcmQpXCJcbiAgICAgICAgICAgIChjaGFuZ2VkKT1cImhhbmRsZVJlY29yZFNlbGVjdGVkQ2hhbmdlKCRldmVudCwgcmVjb3JkKVwiXG4gICAgICAgICAgICB0eXBlPVwiZGVmYXVsdFwiXG4gICAgICAgICAgPjwvZ24tdWktY2hlY2tib3g+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgW3RpdGxlXT1cInJlY29yZC50aXRsZVwiXG4gICAgICAgICAgY2xhc3M9XCJyZWNvcmQtdGFibGUtY29sIHRleHQtMTYgc2VsZi1jZW50ZXJcIlxuICAgICAgICA+XG4gICAgICAgICAge3sgcmVjb3JkLnRpdGxlIH19XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJyZWNvcmQtdGFibGUtY29sIGZsZXgganVzdGlmeS1zdGFydCBpdGVtcy1jZW50ZXIgZ2FwLTIgdGV4dC0xNlwiXG4gICAgICAgICAgW3RpdGxlXT1cImZvcm1hdHMuam9pbignLCAnKVwiXG4gICAgICAgICAgKm5nSWY9XCJnZXRSZWNvcmRGb3JtYXRzKHJlY29yZCkgYXMgZm9ybWF0c1wiXG4gICAgICAgID5cbiAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgY2xhc3M9XCJiYWRnZS1idG4gbWluLXctWzQ1cHhdIHRleHQtc20gdGV4dC13aGl0ZSBweC0yIGZsZXgtc2hyaW5rLTBcIlxuICAgICAgICAgICAgW3N0eWxlLmJhY2tncm91bmQtY29sb3JdPVwiZ2V0QmFkZ2VDb2xvcihmb3JtYXRzWzBdKVwiXG4gICAgICAgICAgICAqbmdJZj1cImZvcm1hdHNbMF1cIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIHt7IGZvcm1hdHNbMF0gfX1cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgIGNsYXNzPVwiYmFkZ2UtYnRuIG1pbi13LVs0NXB4XSB0ZXh0LXNtIHRleHQtd2hpdGUgcHgtMiBmbGV4LXNocmluay0wXCJcbiAgICAgICAgICAgIFtzdHlsZS5iYWNrZ3JvdW5kLWNvbG9yXT1cImdldEJhZGdlQ29sb3IoZm9ybWF0c1sxXSlcIlxuICAgICAgICAgICAgKm5nSWY9XCJmb3JtYXRzWzFdXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7eyBmb3JtYXRzWzFdIH19XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwiZmxleC1zaHJpbmstMFwiXG4gICAgICAgICAgICAqbmdJZj1cIiFyZWNvcmQubmFtZSAmJiBmb3JtYXRzLnNsaWNlKDIpLmxlbmd0aCA+IDBcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxzcGFuPit7eyBmb3JtYXRzLnNsaWNlKDIpLmxlbmd0aCB9fTwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJyZWNvcmQtdGFibGUtY29sIGZsZXggaXRlbXMtY2VudGVyIGdhcC0yIHRleHQtMTZcIj5cbiAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJtYXRlcmlhbC1zeW1ib2xzLW91dGxpbmVkXCI+IHBlcnNvbiA8L21hdC1pY29uPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiXCI+e3sgZm9ybWF0VXNlckluZm8ocmVjb3JkLmV4dHJhcz8ub3duZXJJbmZvKSB9fTwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJyZWNvcmQtdGFibGUtY29sIHRleHQtMTYgc2VsZi1jZW50ZXJcIj5cbiAgICAgICAgICB7eyBkYXRlVG9TdHJpbmcocmVjb3JkLnJlY29yZFVwZGF0ZWQpIH19XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwicmVjb3JkLXRhYmxlLWNvbCB0ZXh0LTE2IHNlbGYtY2VudGVyXCI+XG4gICAgICAgICAge3sgZGF0ZVRvU3RyaW5nKHJlY29yZC5yZWNvcmRDcmVhdGVkKSB9fVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -1,24 +0,0 @@
1
- import { TranslateLoader } from '@ngx-translate/core';
2
- import { of as observableOf } from 'rxjs';
3
- // IMPORTANT:
4
- // This was copy-pasted from https://github.com/mwootendev/ngx-translate-plugins/blob/7c6c73c7d16c9519a7bafff939d29fd8ea5e574a/projects/testing/src/lib/test-translate-loader.service.ts
5
- // because the original package was expecting rxjs 7+ as a peer dep and that was conflicting with many other dependencies
6
- // FIXME: when rxjs 7 can be used in the project, remove this and do `npm install ngx-translate-testing --save-dev`
7
- export class TestTranslateLoader extends TranslateLoader {
8
- constructor(_translations = {}) {
9
- super();
10
- this._translations = _translations;
11
- }
12
- /**
13
- * Returns an {Observable} of translations for the specified language. If the
14
- * language is not recognized, an empty translations object will be returned.
15
- *
16
- * @param language the language for which the translations should be retrieved.
17
- * @returns the translations for the specified
18
- * language or an empty set of translations if the language is not recognized.
19
- */
20
- getTranslation(language) {
21
- return observableOf(this._translations[language] || {});
22
- }
23
- }
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC50cmFuc2xhdGUubG9hZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91dGlsL2kxOG4vc3JjL2xpYi90ZXN0aW5nL3Rlc3QudHJhbnNsYXRlLmxvYWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUE7QUFDckQsT0FBTyxFQUFjLEVBQUUsSUFBSSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFHckQsYUFBYTtBQUNiLHdMQUF3TDtBQUN4TCx5SEFBeUg7QUFDekgsbUhBQW1IO0FBRW5ILE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxlQUFlO0lBQ3RELFlBQW9CLGdCQUE4QixFQUFFO1FBQ2xELEtBQUssRUFBRSxDQUFBO1FBRFcsa0JBQWEsR0FBYixhQUFhLENBQW1CO0lBRXBELENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0ksY0FBYyxDQUFDLFFBQWdCO1FBQ3BDLE9BQU8sWUFBWSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUE7SUFDekQsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVHJhbnNsYXRlTG9hZGVyIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSdcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mIGFzIG9ic2VydmFibGVPZiB9IGZyb20gJ3J4anMnXG5pbXBvcnQgeyBUcmFuc2xhdGlvbnMsIExhbmd1YWdlVHJhbnNsYXRpb25zIH0gZnJvbSAnLi90cmFuc2xhdGlvbnMubW9kZWwnXG5cbi8vIElNUE9SVEFOVDpcbi8vIFRoaXMgd2FzIGNvcHktcGFzdGVkIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL213b290ZW5kZXYvbmd4LXRyYW5zbGF0ZS1wbHVnaW5zL2Jsb2IvN2M2YzczYzdkMTZjOTUxOWE3YmFmZmY5MzlkMjlmZDhlYTVlNTc0YS9wcm9qZWN0cy90ZXN0aW5nL3NyYy9saWIvdGVzdC10cmFuc2xhdGUtbG9hZGVyLnNlcnZpY2UudHNcbi8vIGJlY2F1c2UgdGhlIG9yaWdpbmFsIHBhY2thZ2Ugd2FzIGV4cGVjdGluZyByeGpzIDcrIGFzIGEgcGVlciBkZXAgYW5kIHRoYXQgd2FzIGNvbmZsaWN0aW5nIHdpdGggbWFueSBvdGhlciBkZXBlbmRlbmNpZXNcbi8vIEZJWE1FOiB3aGVuIHJ4anMgNyBjYW4gYmUgdXNlZCBpbiB0aGUgcHJvamVjdCwgcmVtb3ZlIHRoaXMgYW5kIGRvIGBucG0gaW5zdGFsbCBuZ3gtdHJhbnNsYXRlLXRlc3RpbmcgLS1zYXZlLWRldmBcblxuZXhwb3J0IGNsYXNzIFRlc3RUcmFuc2xhdGVMb2FkZXIgZXh0ZW5kcyBUcmFuc2xhdGVMb2FkZXIge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF90cmFuc2xhdGlvbnM6IFRyYW5zbGF0aW9ucyA9IHt9KSB7XG4gICAgc3VwZXIoKVxuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYW4ge09ic2VydmFibGV9IG9mIHRyYW5zbGF0aW9ucyBmb3IgdGhlIHNwZWNpZmllZCBsYW5ndWFnZS4gSWYgdGhlXG4gICAqIGxhbmd1YWdlIGlzIG5vdCByZWNvZ25pemVkLCBhbiBlbXB0eSB0cmFuc2xhdGlvbnMgb2JqZWN0IHdpbGwgYmUgcmV0dXJuZWQuXG4gICAqXG4gICAqIEBwYXJhbSBsYW5ndWFnZSB0aGUgbGFuZ3VhZ2UgZm9yIHdoaWNoIHRoZSB0cmFuc2xhdGlvbnMgc2hvdWxkIGJlIHJldHJpZXZlZC5cbiAgICogQHJldHVybnMgdGhlIHRyYW5zbGF0aW9ucyBmb3IgdGhlIHNwZWNpZmllZFxuICAgKiAgICAgICAgICBsYW5ndWFnZSBvciBhbiBlbXB0eSBzZXQgb2YgdHJhbnNsYXRpb25zIGlmIHRoZSBsYW5ndWFnZSBpcyBub3QgcmVjb2duaXplZC5cbiAgICovXG4gIHB1YmxpYyBnZXRUcmFuc2xhdGlvbihsYW5ndWFnZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxMYW5ndWFnZVRyYW5zbGF0aW9ucz4ge1xuICAgIHJldHVybiBvYnNlcnZhYmxlT2YodGhpcy5fdHJhbnNsYXRpb25zW2xhbmd1YWdlXSB8fCB7fSlcbiAgfVxufVxuIl19