geonetwork-ui 2.3.0-dev.6e2b8bea → 2.3.0-dev.82249397

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 (450) hide show
  1. package/esm2022/index.mjs +2 -1
  2. package/esm2022/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.mjs +6 -2
  3. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/read-parts.mjs +2 -2
  4. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/write-parts.mjs +2 -2
  5. package/esm2022/libs/api/repository/src/lib/gn4/auth/avatar.service.interface.mjs +1 -1
  6. package/esm2022/libs/api/repository/src/lib/gn4/auth/gravatar.service.mjs +12 -1
  7. package/esm2022/libs/api/repository/src/lib/gn4/platform/gn4-platform.mapper.mjs +36 -3
  8. package/esm2022/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.mjs +19 -7
  9. package/esm2022/libs/common/domain/src/lib/model/record/index.mjs +2 -1
  10. package/esm2022/libs/common/domain/src/lib/model/record/user-feedbacks.model.mjs +2 -0
  11. package/esm2022/libs/common/domain/src/lib/model/user/index.mjs +2 -0
  12. package/esm2022/libs/common/domain/src/lib/platform.service.interface.mjs +1 -1
  13. package/esm2022/libs/data-access/gn4/src/openapi/api/records.api.service.mjs +35 -7
  14. package/esm2022/libs/data-access/gn4/src/openapi/model/models.mjs +1 -2
  15. package/esm2022/libs/feature/dataviz/src/lib/chart-view/chart-view.component.mjs +1 -1
  16. package/esm2022/libs/feature/dataviz/src/lib/service/data.service.mjs +36 -3
  17. package/esm2022/libs/feature/editor/src/index.mjs +2 -2
  18. package/esm2022/libs/feature/editor/src/lib/+state/editor.facade.mjs +6 -2
  19. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-array/form-field-array.component.mjs +11 -0
  20. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-file/form-field-file.component.mjs +28 -0
  21. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-license/form-field-license.component.mjs +64 -0
  22. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-object/form-field-object.component.mjs +11 -0
  23. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-resource-updated/form-field-resource-updated.component.mjs +15 -0
  24. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-rich/form-field-rich.component.mjs +45 -0
  25. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-simple/form-field-simple.component.mjs +50 -0
  26. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-spatial-extent/form-field-spatial-extent.component.mjs +11 -0
  27. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extent/form-field-temporal-extent.component.mjs +11 -0
  28. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-update-frequency/form-field-update-frequency.component.mjs +104 -0
  29. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.mjs +126 -0
  30. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field.model.mjs +2 -0
  31. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/index.mjs +10 -0
  32. package/esm2022/libs/feature/editor/src/lib/components/record-form/record-form.component.mjs +29 -0
  33. package/esm2022/libs/feature/editor/src/lib/components/wizard-field/wizard-field.component.mjs +1 -1
  34. package/esm2022/libs/feature/editor/src/lib/feature-editor.module.mjs +10 -10
  35. package/esm2022/libs/feature/editor/src/lib/fields.config.mjs +23 -1
  36. package/esm2022/libs/feature/editor/src/lib/models/fields.model.mjs +1 -1
  37. package/esm2022/libs/feature/map/src/lib/add-layer-from-file/add-layer-from-file.component.mjs +3 -3
  38. package/esm2022/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.mjs +73 -20
  39. package/esm2022/libs/feature/map/src/lib/add-layer-from-wfs/add-layer-from-wfs.component.mjs +1 -1
  40. package/esm2022/libs/feature/map/src/lib/add-layer-from-wms/add-layer-from-wms.component.mjs +1 -1
  41. package/esm2022/libs/feature/map/src/lib/map-context/map-context.model.mjs +1 -1
  42. package/esm2022/libs/feature/map/src/lib/map-context/map-context.service.mjs +29 -8
  43. package/esm2022/libs/feature/notifications/src/index.mjs +4 -0
  44. package/esm2022/libs/feature/notifications/src/lib/feature-notifications.module.mjs +18 -0
  45. package/esm2022/libs/feature/notifications/src/lib/notification.model.mjs +2 -0
  46. package/esm2022/libs/feature/notifications/src/lib/notifications-container/notifications-container.component.mjs +49 -0
  47. package/esm2022/libs/feature/notifications/src/lib/notifications.service.mjs +29 -0
  48. package/esm2022/libs/feature/record/src/lib/data-view/data-view.component.mjs +1 -1
  49. package/esm2022/libs/feature/record/src/lib/feature-record.module.mjs +4 -4
  50. package/esm2022/libs/feature/record/src/lib/map-view/map-view.component.mjs +4 -3
  51. package/esm2022/libs/feature/record/src/lib/state/mdview.actions.mjs +22 -4
  52. package/esm2022/libs/feature/record/src/lib/state/mdview.effects.mjs +37 -10
  53. package/esm2022/libs/feature/record/src/lib/state/mdview.facade.mjs +22 -7
  54. package/esm2022/libs/feature/record/src/lib/state/mdview.reducer.mjs +52 -17
  55. package/esm2022/libs/feature/record/src/lib/state/mdview.selectors.mjs +18 -3
  56. package/esm2022/libs/feature/router/src/lib/default/state/router.effects.mjs +2 -2
  57. package/esm2022/libs/feature/search/src/index.mjs +2 -1
  58. package/esm2022/libs/feature/search/src/lib/results-layout/results-layout.component.mjs +1 -1
  59. package/esm2022/libs/feature/search/src/lib/results-table/results-table.component.mjs +3 -3
  60. package/esm2022/libs/feature/search/src/lib/sort-by/sort-by.component.mjs +1 -1
  61. package/esm2022/libs/feature/search/src/lib/utils/service/fields.service.mjs +1 -1
  62. package/esm2022/libs/ui/catalog/src/lib/language-switcher/language-switcher.component.mjs +1 -1
  63. package/esm2022/libs/ui/catalog/src/lib/organisation-preview/organisation-preview.component.mjs +3 -3
  64. package/esm2022/libs/ui/catalog/src/lib/organisations-filter/organisations-filter.component.mjs +1 -1
  65. package/esm2022/libs/ui/elements/src/index.mjs +15 -15
  66. package/esm2022/libs/ui/elements/src/lib/api-card/api-card.component.mjs +3 -2
  67. package/esm2022/libs/ui/elements/src/lib/downloads-list/downloads-list.component.mjs +2 -2
  68. package/esm2022/libs/ui/elements/src/lib/image-overlay-preview/image-overlay-preview.component.mjs +5 -5
  69. package/esm2022/libs/ui/elements/src/lib/link-card/link-card.component.mjs +16 -3
  70. package/esm2022/libs/ui/elements/src/lib/markdown-editor/markdown-editor.component.mjs +45 -0
  71. package/esm2022/libs/ui/elements/src/lib/metadata-info/metadata-info.component.mjs +3 -3
  72. package/esm2022/libs/ui/elements/src/lib/notification/notification.component.mjs +34 -0
  73. package/esm2022/libs/ui/elements/src/lib/record-api-form/record-api-form.component.mjs +77 -15
  74. package/esm2022/libs/ui/elements/src/lib/thumbnail/thumbnail.component.mjs +4 -3
  75. package/esm2022/libs/ui/elements/src/lib/ui-elements.module.mjs +14 -10
  76. package/esm2022/libs/ui/elements/src/lib/user-feedback-item/time-since.pipe.mjs +59 -0
  77. package/esm2022/libs/ui/elements/src/lib/user-feedback-item/user-feedback-item.component.mjs +62 -0
  78. package/esm2022/libs/ui/inputs/src/index.mjs +16 -16
  79. package/esm2022/libs/ui/inputs/src/lib/button/button.component.mjs +2 -1
  80. package/esm2022/libs/ui/inputs/src/lib/check-toggle/check-toggle.component.mjs +4 -3
  81. package/esm2022/libs/ui/inputs/src/lib/date-picker/date-picker.component.mjs +22 -0
  82. package/esm2022/libs/ui/inputs/src/lib/date-range-picker/date-range-picker.component.mjs +7 -5
  83. package/esm2022/libs/ui/inputs/src/lib/dropdown-selector/dropdown-selector.component.mjs +19 -8
  84. package/esm2022/libs/ui/inputs/src/lib/files-drop/files-drop.directive.mjs +59 -0
  85. package/esm2022/libs/ui/inputs/src/lib/image-input/image-input.component.mjs +183 -0
  86. package/esm2022/libs/ui/inputs/src/lib/previous-next-buttons/previous-next-buttons.component.mjs +29 -0
  87. package/esm2022/libs/ui/inputs/src/lib/text-area/text-area.component.mjs +27 -4
  88. package/esm2022/libs/ui/inputs/src/lib/text-input/text-input.component.mjs +21 -3
  89. package/esm2022/libs/ui/inputs/src/lib/ui-inputs.module.mjs +21 -31
  90. package/esm2022/libs/ui/layout/src/index.mjs +7 -5
  91. package/esm2022/libs/ui/layout/src/lib/block-list/block-list.component.mjs +76 -0
  92. package/esm2022/libs/ui/layout/src/lib/carousel/carousel.component.mjs +42 -18
  93. package/esm2022/libs/ui/layout/src/lib/form-field-wrapper/form-field-wrapper.component.mjs +18 -0
  94. package/esm2022/libs/ui/layout/src/lib/ui-layout.module.mjs +3 -8
  95. package/esm2022/libs/util/shared/src/lib/links/link-classifier.service.mjs +2 -2
  96. package/esm2022/libs/util/shared/src/lib/links/link-utils.mjs +22 -1
  97. package/esm2022/libs/util/shared/src/lib/utils/bytes-convert.mjs +4 -0
  98. package/esm2022/libs/util/shared/src/lib/utils/image-resize.mjs +60 -0
  99. package/esm2022/libs/util/shared/src/lib/utils/index.mjs +8 -6
  100. package/esm2022/translations/de.json +41 -0
  101. package/esm2022/translations/en.json +41 -0
  102. package/esm2022/translations/es.json +41 -0
  103. package/esm2022/translations/fr.json +41 -0
  104. package/esm2022/translations/it.json +41 -0
  105. package/esm2022/translations/nl.json +41 -0
  106. package/esm2022/translations/pt.json +41 -0
  107. package/fesm2022/geonetwork-ui.mjs +3434 -1787
  108. package/fesm2022/geonetwork-ui.mjs.map +1 -1
  109. package/index.d.ts +1 -0
  110. package/index.d.ts.map +1 -1
  111. package/index.ts +1 -0
  112. package/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.d.ts.map +1 -1
  113. package/libs/api/metadata-converter/src/lib/iso19139/write-parts.d.ts.map +1 -1
  114. package/libs/api/repository/src/lib/gn4/auth/avatar.service.interface.d.ts +1 -0
  115. package/libs/api/repository/src/lib/gn4/auth/avatar.service.interface.d.ts.map +1 -1
  116. package/libs/api/repository/src/lib/gn4/auth/gravatar.service.d.ts +1 -0
  117. package/libs/api/repository/src/lib/gn4/auth/gravatar.service.d.ts.map +1 -1
  118. package/libs/api/repository/src/lib/gn4/platform/gn4-platform.mapper.d.ts +6 -2
  119. package/libs/api/repository/src/lib/gn4/platform/gn4-platform.mapper.d.ts.map +1 -1
  120. package/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.d.ts +9 -6
  121. package/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.d.ts.map +1 -1
  122. package/libs/common/domain/src/lib/model/record/index.d.ts +1 -0
  123. package/libs/common/domain/src/lib/model/record/index.d.ts.map +1 -1
  124. package/libs/common/domain/src/lib/model/record/user-feedbacks.model.d.ts +15 -0
  125. package/libs/common/domain/src/lib/model/record/user-feedbacks.model.d.ts.map +1 -0
  126. package/libs/common/domain/src/lib/model/user/index.d.ts +2 -0
  127. package/libs/common/domain/src/lib/model/user/index.d.ts.map +1 -0
  128. package/libs/common/domain/src/lib/platform.service.interface.d.ts +3 -0
  129. package/libs/common/domain/src/lib/platform.service.interface.d.ts.map +1 -1
  130. package/libs/data-access/gn4/src/openapi/api/records.api.service.d.ts +9 -5
  131. package/libs/data-access/gn4/src/openapi/api/records.api.service.d.ts.map +1 -1
  132. package/libs/data-access/gn4/src/openapi/model/models.d.ts +0 -1
  133. package/libs/data-access/gn4/src/openapi/model/models.d.ts.map +1 -1
  134. package/libs/feature/dataviz/src/lib/service/data.service.d.ts +3 -1
  135. package/libs/feature/dataviz/src/lib/service/data.service.d.ts.map +1 -1
  136. package/libs/feature/editor/src/index.d.ts +1 -1
  137. package/libs/feature/editor/src/index.d.ts.map +1 -1
  138. package/libs/feature/editor/src/lib/+state/editor.facade.d.ts +8 -5
  139. package/libs/feature/editor/src/lib/+state/editor.facade.d.ts.map +1 -1
  140. package/libs/{ui/inputs/src/lib → feature/editor/src/lib/components/record-form}/form-field/form-field-array/form-field-array.component.d.ts +1 -1
  141. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-array/form-field-array.component.d.ts.map +1 -0
  142. package/libs/{ui/inputs/src/lib → feature/editor/src/lib/components/record-form}/form-field/form-field-file/form-field-file.component.d.ts +1 -1
  143. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-file/form-field-file.component.d.ts.map +1 -0
  144. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-license/form-field-license.component.d.ts +39 -0
  145. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-license/form-field-license.component.d.ts.map +1 -0
  146. package/libs/{ui/inputs/src/lib → feature/editor/src/lib/components/record-form}/form-field/form-field-object/form-field-object.component.d.ts +1 -1
  147. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-object/form-field-object.component.d.ts.map +1 -0
  148. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-resource-updated/form-field-resource-updated.component.d.ts +8 -0
  149. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-resource-updated/form-field-resource-updated.component.d.ts.map +1 -0
  150. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-rich/form-field-rich.component.d.ts +16 -0
  151. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-rich/form-field-rich.component.d.ts.map +1 -0
  152. package/libs/{ui/inputs/src/lib → feature/editor/src/lib/components/record-form}/form-field/form-field-simple/form-field-simple.component.d.ts +2 -2
  153. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-simple/form-field-simple.component.d.ts.map +1 -0
  154. package/libs/{ui/inputs/src/lib → feature/editor/src/lib/components/record-form}/form-field/form-field-spatial-extent/form-field-spatial-extent.component.d.ts +1 -1
  155. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-spatial-extent/form-field-spatial-extent.component.d.ts.map +1 -0
  156. package/libs/{ui/inputs/src/lib → feature/editor/src/lib/components/record-form}/form-field/form-field-temporal-extent/form-field-temporal-extent.component.d.ts +1 -1
  157. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extent/form-field-temporal-extent.component.d.ts.map +1 -0
  158. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-update-frequency/form-field-update-frequency.component.d.ts +21 -0
  159. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-update-frequency/form-field-update-frequency.component.d.ts.map +1 -0
  160. package/libs/{ui/inputs/src/lib → feature/editor/src/lib/components/record-form}/form-field/form-field.component.d.ts +13 -4
  161. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.d.ts.map +1 -0
  162. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field.model.d.ts.map +1 -0
  163. package/libs/feature/editor/src/lib/components/record-form/form-field/index.d.ts.map +1 -0
  164. package/libs/feature/editor/src/lib/{record-form → components/record-form}/record-form.component.d.ts +3 -3
  165. package/libs/feature/editor/src/lib/components/record-form/record-form.component.d.ts.map +1 -0
  166. package/libs/feature/editor/src/lib/feature-editor.module.d.ts +1 -1
  167. package/libs/feature/editor/src/lib/feature-editor.module.d.ts.map +1 -1
  168. package/libs/feature/editor/src/lib/fields.config.d.ts.map +1 -1
  169. package/libs/feature/editor/src/lib/models/fields.model.d.ts +1 -1
  170. package/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.d.ts +10 -5
  171. package/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.d.ts.map +1 -1
  172. package/libs/feature/map/src/lib/map-context/map-context.model.d.ts +1 -0
  173. package/libs/feature/map/src/lib/map-context/map-context.model.d.ts.map +1 -1
  174. package/libs/feature/map/src/lib/map-context/map-context.service.d.ts.map +1 -1
  175. package/libs/feature/notifications/src/index.d.ts +4 -0
  176. package/libs/feature/notifications/src/index.d.ts.map +1 -0
  177. package/libs/feature/notifications/src/lib/feature-notifications.module.d.ts +7 -0
  178. package/libs/feature/notifications/src/lib/feature-notifications.module.d.ts.map +1 -0
  179. package/libs/feature/notifications/src/lib/notification.model.d.ts +7 -0
  180. package/libs/feature/notifications/src/lib/notification.model.d.ts.map +1 -0
  181. package/libs/feature/notifications/src/lib/notifications-container/notifications-container.component.d.ts +12 -0
  182. package/libs/feature/notifications/src/lib/notifications-container/notifications-container.component.d.ts.map +1 -0
  183. package/libs/feature/notifications/src/lib/notifications.service.d.ts +15 -0
  184. package/libs/feature/notifications/src/lib/notifications.service.d.ts.map +1 -0
  185. package/libs/feature/record/src/lib/feature-record.module.d.ts.map +1 -1
  186. package/libs/feature/record/src/lib/map-view/map-view.component.d.ts.map +1 -1
  187. package/libs/feature/record/src/lib/state/mdview.actions.d.ts +40 -6
  188. package/libs/feature/record/src/lib/state/mdview.actions.d.ts.map +1 -1
  189. package/libs/feature/record/src/lib/state/mdview.effects.d.ts +24 -4
  190. package/libs/feature/record/src/lib/state/mdview.effects.d.ts.map +1 -1
  191. package/libs/feature/record/src/lib/state/mdview.facade.d.ts +14 -4
  192. package/libs/feature/record/src/lib/state/mdview.facade.d.ts.map +1 -1
  193. package/libs/feature/record/src/lib/state/mdview.reducer.d.ts +8 -5
  194. package/libs/feature/record/src/lib/state/mdview.reducer.d.ts.map +1 -1
  195. package/libs/feature/record/src/lib/state/mdview.selectors.d.ts +12 -9
  196. package/libs/feature/record/src/lib/state/mdview.selectors.d.ts.map +1 -1
  197. package/libs/feature/search/src/index.d.ts +1 -0
  198. package/libs/feature/search/src/index.d.ts.map +1 -1
  199. package/libs/feature/search/src/lib/utils/service/fields.service.d.ts +3 -3
  200. package/libs/feature/search/src/lib/utils/service/fields.service.d.ts.map +1 -1
  201. package/libs/ui/elements/src/index.d.ts +14 -14
  202. package/libs/ui/elements/src/index.d.ts.map +1 -1
  203. package/libs/ui/elements/src/lib/api-card/api-card.component.d.ts.map +1 -1
  204. package/libs/ui/elements/src/lib/downloads-list/downloads-list.component.d.ts +1 -1
  205. package/libs/ui/elements/src/lib/link-card/link-card.component.d.ts +3 -1
  206. package/libs/ui/elements/src/lib/link-card/link-card.component.d.ts.map +1 -1
  207. package/libs/ui/elements/src/lib/markdown-editor/markdown-editor.component.d.ts +13 -0
  208. package/libs/ui/elements/src/lib/markdown-editor/markdown-editor.component.d.ts.map +1 -0
  209. package/libs/ui/elements/src/lib/notification/notification.component.d.ts +13 -0
  210. package/libs/ui/elements/src/lib/notification/notification.component.d.ts.map +1 -0
  211. package/libs/ui/elements/src/lib/record-api-form/record-api-form.component.d.ts +12 -3
  212. package/libs/ui/elements/src/lib/record-api-form/record-api-form.component.d.ts.map +1 -1
  213. package/libs/ui/elements/src/lib/thumbnail/thumbnail.component.d.ts +1 -1
  214. package/libs/ui/elements/src/lib/thumbnail/thumbnail.component.d.ts.map +1 -1
  215. package/libs/ui/elements/src/lib/ui-elements.module.d.ts +29 -28
  216. package/libs/ui/elements/src/lib/ui-elements.module.d.ts.map +1 -1
  217. package/libs/ui/elements/src/lib/user-feedback-item/time-since.pipe.d.ts +11 -0
  218. package/libs/ui/elements/src/lib/user-feedback-item/time-since.pipe.d.ts.map +1 -0
  219. package/libs/ui/elements/src/lib/user-feedback-item/user-feedback-item.component.d.ts +22 -0
  220. package/libs/ui/elements/src/lib/user-feedback-item/user-feedback-item.component.d.ts.map +1 -0
  221. package/libs/ui/inputs/src/index.d.ts +15 -15
  222. package/libs/ui/inputs/src/index.d.ts.map +1 -1
  223. package/libs/ui/inputs/src/lib/button/button.component.d.ts.map +1 -1
  224. package/libs/ui/inputs/src/lib/check-toggle/check-toggle.component.d.ts +1 -1
  225. package/libs/ui/inputs/src/lib/check-toggle/check-toggle.component.d.ts.map +1 -1
  226. package/libs/ui/inputs/src/lib/date-picker/date-picker.component.d.ts +9 -0
  227. package/libs/ui/inputs/src/lib/date-picker/date-picker.component.d.ts.map +1 -0
  228. package/libs/ui/inputs/src/lib/date-range-picker/date-range-picker.component.d.ts +1 -1
  229. package/libs/ui/inputs/src/lib/date-range-picker/date-range-picker.component.d.ts.map +1 -1
  230. package/libs/ui/inputs/src/lib/dropdown-selector/dropdown-selector.component.d.ts +2 -1
  231. package/libs/ui/inputs/src/lib/dropdown-selector/dropdown-selector.component.d.ts.map +1 -1
  232. package/libs/ui/inputs/src/lib/files-drop/files-drop.directive.d.ts +14 -0
  233. package/libs/ui/inputs/src/lib/files-drop/files-drop.directive.d.ts.map +1 -0
  234. package/libs/ui/inputs/src/lib/image-input/image-input.component.d.ts +44 -0
  235. package/libs/ui/inputs/src/lib/image-input/image-input.component.d.ts.map +1 -0
  236. package/libs/ui/inputs/src/lib/previous-next-buttons/previous-next-buttons.component.d.ts +12 -0
  237. package/libs/ui/inputs/src/lib/previous-next-buttons/previous-next-buttons.component.d.ts.map +1 -0
  238. package/libs/ui/inputs/src/lib/text-area/text-area.component.d.ts +7 -1
  239. package/libs/ui/inputs/src/lib/text-area/text-area.component.d.ts.map +1 -1
  240. package/libs/ui/inputs/src/lib/text-input/text-input.component.d.ts +5 -1
  241. package/libs/ui/inputs/src/lib/text-input/text-input.component.d.ts.map +1 -1
  242. package/libs/ui/inputs/src/lib/ui-inputs.module.d.ts +35 -42
  243. package/libs/ui/inputs/src/lib/ui-inputs.module.d.ts.map +1 -1
  244. package/libs/ui/layout/src/index.d.ts +6 -4
  245. package/libs/ui/layout/src/index.d.ts.map +1 -1
  246. package/libs/ui/layout/src/lib/block-list/block-list.component.d.ts +25 -0
  247. package/libs/ui/layout/src/lib/block-list/block-list.component.d.ts.map +1 -0
  248. package/libs/ui/layout/src/lib/carousel/carousel.component.d.ts +13 -6
  249. package/libs/ui/layout/src/lib/carousel/carousel.component.d.ts.map +1 -1
  250. package/libs/ui/layout/src/lib/form-field-wrapper/form-field-wrapper.component.d.ts +8 -0
  251. package/libs/ui/layout/src/lib/form-field-wrapper/form-field-wrapper.component.d.ts.map +1 -0
  252. package/libs/ui/layout/src/lib/ui-layout.module.d.ts +4 -5
  253. package/libs/ui/layout/src/lib/ui-layout.module.d.ts.map +1 -1
  254. package/libs/util/shared/src/lib/links/link-utils.d.ts +18 -0
  255. package/libs/util/shared/src/lib/links/link-utils.d.ts.map +1 -1
  256. package/libs/util/shared/src/lib/utils/bytes-convert.d.ts +2 -0
  257. package/libs/util/shared/src/lib/utils/bytes-convert.d.ts.map +1 -0
  258. package/libs/util/shared/src/lib/utils/image-resize.d.ts +3 -0
  259. package/libs/util/shared/src/lib/utils/image-resize.d.ts.map +1 -0
  260. package/libs/util/shared/src/lib/utils/index.d.ts +7 -5
  261. package/libs/util/shared/src/lib/utils/index.d.ts.map +1 -1
  262. package/package.json +1 -1
  263. package/src/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.ts +7 -1
  264. package/src/libs/api/metadata-converter/src/lib/iso19139/read-parts.ts +1 -1
  265. package/src/libs/api/metadata-converter/src/lib/iso19139/write-parts.ts +1 -4
  266. package/src/libs/api/repository/src/lib/gn4/auth/avatar.service.interface.ts +1 -0
  267. package/src/libs/api/repository/src/lib/gn4/auth/gravatar.service.ts +12 -1
  268. package/src/libs/api/repository/src/lib/gn4/platform/gn4-platform.mapper.ts +51 -1
  269. package/src/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.ts +34 -7
  270. package/src/libs/common/domain/src/lib/model/record/index.ts +1 -0
  271. package/src/libs/common/domain/src/lib/model/record/user-feedbacks.model.ts +15 -0
  272. package/src/libs/common/domain/src/lib/platform.service.interface.ts +3 -0
  273. package/src/libs/common/fixtures/src/index.ts +8 -6
  274. package/src/libs/common/fixtures/src/lib/link.fixtures.ts +8 -0
  275. package/src/libs/common/fixtures/src/lib/records.fixtures.ts +3 -3
  276. package/src/libs/common/fixtures/src/lib/user-feedbacks.fixtures.ts +83 -0
  277. package/src/libs/data-access/gn4/src/openapi/api/records.api.service.ts +43 -12
  278. package/src/libs/data-access/gn4/src/openapi/model/models.ts +0 -1
  279. package/src/libs/data-access/gn4/src/spec.yaml +1 -1
  280. package/src/libs/feature/dataviz/src/lib/service/data.service.ts +52 -2
  281. package/src/libs/feature/editor/src/index.ts +1 -1
  282. package/src/libs/feature/editor/src/lib/+state/editor.facade.ts +8 -1
  283. package/src/libs/feature/editor/src/lib/components/overview-upload/overview-upload.component.html +8 -0
  284. package/src/libs/feature/editor/src/lib/components/overview-upload/overview-upload.component.ts +70 -0
  285. package/src/libs/{ui/inputs/src/lib → feature/editor/src/lib/components/record-form}/form-field/form-field-array/form-field-array.component.ts +1 -0
  286. package/src/libs/{ui/inputs/src/lib → feature/editor/src/lib/components/record-form}/form-field/form-field-file/form-field-file.component.ts +4 -1
  287. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-license/form-field-license.component.html +8 -0
  288. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-license/form-field-license.component.ts +64 -0
  289. package/src/libs/{ui/inputs/src/lib → feature/editor/src/lib/components/record-form}/form-field/form-field-object/form-field-object.component.ts +1 -0
  290. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-resource-updated/form-field-resource-updated.component.html +4 -0
  291. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-resource-updated/form-field-resource-updated.component.ts +15 -0
  292. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-rich/form-field-rich.component.html +20 -0
  293. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-rich/form-field-rich.component.ts +44 -0
  294. package/src/libs/{ui/inputs/src/lib → feature/editor/src/lib/components/record-form}/form-field/form-field-simple/form-field-simple.component.ts +4 -1
  295. package/src/libs/{ui/inputs/src/lib → feature/editor/src/lib/components/record-form}/form-field/form-field-spatial-extent/form-field-spatial-extent.component.ts +1 -0
  296. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extent/form-field-temporal-extent.component.css +0 -0
  297. package/src/libs/{ui/inputs/src/lib → feature/editor/src/lib/components/record-form}/form-field/form-field-temporal-extent/form-field-temporal-extent.component.ts +1 -0
  298. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-update-frequency/form-field-update-frequency.component.css +0 -0
  299. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-update-frequency/form-field-update-frequency.component.html +14 -0
  300. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-update-frequency/form-field-update-frequency.component.ts +143 -0
  301. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.css +0 -0
  302. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.html +97 -0
  303. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.ts +142 -0
  304. package/src/libs/feature/editor/src/lib/components/record-form/record-form.component.css +0 -0
  305. package/src/libs/feature/editor/src/lib/{record-form → components/record-form}/record-form.component.html +1 -0
  306. package/src/libs/feature/editor/src/lib/{record-form → components/record-form}/record-form.component.ts +4 -4
  307. package/src/libs/feature/editor/src/lib/feature-editor.module.ts +9 -9
  308. package/src/libs/feature/editor/src/lib/fields.config.ts +22 -0
  309. package/src/libs/feature/editor/src/lib/models/fields.model.ts +1 -1
  310. package/src/libs/feature/map/src/lib/add-layer-from-file/add-layer-from-file.component.html +1 -1
  311. package/src/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.css +7 -0
  312. package/src/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.html +32 -18
  313. package/src/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.ts +72 -17
  314. package/src/libs/feature/map/src/lib/map-context/map-context.model.ts +1 -0
  315. package/src/libs/feature/map/src/lib/map-context/map-context.service.ts +26 -8
  316. package/src/libs/feature/notifications/src/index.ts +3 -0
  317. package/src/libs/feature/notifications/src/lib/feature-notifications.module.ts +10 -0
  318. package/src/libs/feature/notifications/src/lib/notification.model.ts +6 -0
  319. package/src/libs/feature/notifications/src/lib/notifications-container/notifications-container.component.css +0 -0
  320. package/src/libs/feature/notifications/src/lib/notifications-container/notifications-container.component.html +17 -0
  321. package/src/libs/feature/notifications/src/lib/notifications-container/notifications-container.component.ts +44 -0
  322. package/src/libs/feature/notifications/src/lib/notifications.service.ts +27 -0
  323. package/src/libs/feature/record/src/lib/feature-record.module.ts +5 -2
  324. package/src/libs/feature/record/src/lib/map-view/map-view.component.ts +2 -1
  325. package/src/libs/feature/record/src/lib/state/mdview.actions.ts +51 -6
  326. package/src/libs/feature/record/src/lib/state/mdview.effects.ts +82 -7
  327. package/src/libs/feature/record/src/lib/state/mdview.facade.ts +48 -8
  328. package/src/libs/feature/record/src/lib/state/mdview.reducer.ts +81 -24
  329. package/src/libs/feature/record/src/lib/state/mdview.selectors.ts +40 -10
  330. package/src/libs/feature/router/src/lib/default/state/router.effects.ts +2 -2
  331. package/src/libs/feature/search/src/index.ts +1 -0
  332. package/src/libs/feature/search/src/lib/results-table/results-table.component.html +3 -3
  333. package/src/libs/feature/search/src/lib/utils/service/fields.service.ts +2 -2
  334. package/src/libs/ui/catalog/src/lib/organisation-preview/organisation-preview.component.html +5 -5
  335. package/src/libs/ui/elements/src/index.ts +14 -14
  336. package/src/libs/ui/elements/src/lib/api-card/api-card.component.ts +2 -1
  337. package/src/libs/ui/elements/src/lib/downloads-list/downloads-list.component.ts +1 -1
  338. package/src/libs/ui/elements/src/lib/image-overlay-preview/image-overlay-preview.component.html +1 -1
  339. package/src/libs/ui/elements/src/lib/link-card/link-card.component.html +38 -20
  340. package/src/libs/ui/elements/src/lib/link-card/link-card.component.ts +12 -0
  341. package/src/libs/ui/elements/src/lib/markdown-editor/markdown-editor.component.css +0 -5
  342. package/src/libs/ui/elements/src/lib/markdown-editor/markdown-editor.component.html +0 -21
  343. package/src/libs/ui/elements/src/lib/markdown-editor/markdown-editor.component.ts +1 -14
  344. package/src/libs/ui/elements/src/lib/notification/notification.component.css +0 -0
  345. package/src/libs/ui/elements/src/lib/notification/notification.component.html +52 -0
  346. package/src/libs/ui/elements/src/lib/notification/notification.component.ts +31 -0
  347. package/src/libs/ui/elements/src/lib/record-api-form/record-api-form.component.html +27 -11
  348. package/src/libs/ui/elements/src/lib/record-api-form/record-api-form.component.ts +87 -8
  349. package/src/libs/ui/elements/src/lib/thumbnail/thumbnail.component.ts +5 -3
  350. package/src/libs/ui/elements/src/lib/ui-elements.module.ts +6 -3
  351. package/src/libs/ui/elements/src/lib/user-feedback-item/time-since.pipe.ts +54 -0
  352. package/src/libs/ui/elements/src/lib/user-feedback-item/user-feedback-item.component.css +0 -0
  353. package/src/libs/ui/elements/src/lib/user-feedback-item/user-feedback-item.component.html +75 -0
  354. package/src/libs/ui/elements/src/lib/user-feedback-item/user-feedback-item.component.ts +63 -0
  355. package/src/libs/ui/inputs/src/index.ts +15 -15
  356. package/src/libs/ui/inputs/src/lib/button/button.component.ts +1 -1
  357. package/src/libs/ui/inputs/src/lib/check-toggle/check-toggle.component.ts +3 -0
  358. package/src/libs/ui/inputs/src/lib/date-picker/date-picker.component.css +3 -0
  359. package/src/libs/ui/inputs/src/lib/date-picker/date-picker.component.html +11 -0
  360. package/src/libs/ui/inputs/src/lib/date-picker/date-picker.component.ts +16 -0
  361. package/src/libs/ui/inputs/src/lib/date-range-picker/date-range-picker.component.ts +8 -1
  362. package/src/libs/ui/inputs/src/lib/dropdown-selector/dropdown-selector.component.html +1 -0
  363. package/src/libs/ui/inputs/src/lib/dropdown-selector/dropdown-selector.component.ts +14 -0
  364. package/src/libs/ui/inputs/src/lib/files-drop/files-drop.directive.ts +45 -0
  365. package/src/libs/ui/inputs/src/lib/image-input/image-input.component.css +0 -0
  366. package/src/libs/ui/inputs/src/lib/image-input/image-input.component.html +146 -0
  367. package/src/libs/ui/inputs/src/lib/image-input/image-input.component.ts +193 -0
  368. package/src/libs/ui/inputs/src/lib/previous-next-buttons/previous-next-buttons.component.css +6 -0
  369. package/src/libs/ui/inputs/src/lib/previous-next-buttons/previous-next-buttons.component.html +26 -0
  370. package/src/libs/ui/inputs/src/lib/previous-next-buttons/previous-next-buttons.component.ts +32 -0
  371. package/src/libs/ui/inputs/src/lib/text-area/text-area.component.html +2 -1
  372. package/src/libs/ui/inputs/src/lib/text-area/text-area.component.ts +29 -0
  373. package/src/libs/ui/inputs/src/lib/text-input/text-input.component.html +2 -1
  374. package/src/libs/ui/inputs/src/lib/text-input/text-input.component.ts +17 -1
  375. package/src/libs/ui/inputs/src/lib/ui-inputs.module.ts +6 -22
  376. package/src/libs/ui/layout/src/index.ts +6 -4
  377. package/src/libs/ui/layout/src/lib/block-list/block-list.component.css +23 -0
  378. package/src/libs/ui/layout/src/lib/block-list/block-list.component.html +20 -0
  379. package/src/libs/ui/layout/src/lib/block-list/block-list.component.ts +84 -0
  380. package/src/libs/ui/layout/src/lib/carousel/carousel.component.css +8 -4
  381. package/src/libs/ui/layout/src/lib/carousel/carousel.component.html +4 -4
  382. package/src/libs/ui/layout/src/lib/carousel/carousel.component.ts +45 -15
  383. package/src/libs/ui/layout/src/lib/form-field-wrapper/form-field-wrapper.component.css +0 -0
  384. package/src/libs/ui/layout/src/lib/form-field-wrapper/form-field-wrapper.component.html +18 -0
  385. package/src/libs/ui/layout/src/lib/form-field-wrapper/form-field-wrapper.component.ts +16 -0
  386. package/src/libs/ui/layout/src/lib/ui-layout.module.ts +0 -2
  387. package/src/libs/util/shared/src/lib/links/link-classifier.service.ts +1 -1
  388. package/src/libs/util/shared/src/lib/links/link-utils.ts +21 -0
  389. package/src/libs/util/shared/src/lib/utils/bytes-convert.ts +3 -0
  390. package/src/libs/util/shared/src/lib/utils/image-resize.ts +72 -0
  391. package/src/libs/util/shared/src/lib/utils/index.ts +7 -5
  392. package/tailwind.base.css +36 -0
  393. package/translations/de.json +41 -0
  394. package/translations/en.json +41 -0
  395. package/translations/es.json +41 -0
  396. package/translations/fr.json +41 -0
  397. package/translations/it.json +41 -0
  398. package/translations/nl.json +41 -0
  399. package/translations/pt.json +41 -0
  400. package/translations/sk.json +41 -0
  401. package/esm2022/libs/data-access/gn4/src/openapi/model/inlineObject3.api.model.mjs +0 -13
  402. package/esm2022/libs/feature/editor/src/lib/record-form/record-form.component.mjs +0 -30
  403. package/esm2022/libs/ui/inputs/src/lib/form-field/form-field-array/form-field-array.component.mjs +0 -11
  404. package/esm2022/libs/ui/inputs/src/lib/form-field/form-field-file/form-field-file.component.mjs +0 -27
  405. package/esm2022/libs/ui/inputs/src/lib/form-field/form-field-object/form-field-object.component.mjs +0 -11
  406. package/esm2022/libs/ui/inputs/src/lib/form-field/form-field-rich/form-field-rich.component.mjs +0 -27
  407. package/esm2022/libs/ui/inputs/src/lib/form-field/form-field-simple/form-field-simple.component.mjs +0 -49
  408. package/esm2022/libs/ui/inputs/src/lib/form-field/form-field-spatial-extent/form-field-spatial-extent.component.mjs +0 -11
  409. package/esm2022/libs/ui/inputs/src/lib/form-field/form-field-temporal-extent/form-field-temporal-extent.component.mjs +0 -11
  410. package/esm2022/libs/ui/inputs/src/lib/form-field/form-field.component.mjs +0 -76
  411. package/esm2022/libs/ui/inputs/src/lib/form-field/form-field.model.mjs +0 -2
  412. package/esm2022/libs/ui/inputs/src/lib/form-field/index.mjs +0 -10
  413. package/libs/data-access/gn4/src/openapi/model/inlineObject3.api.model.d.ts +0 -18
  414. package/libs/data-access/gn4/src/openapi/model/inlineObject3.api.model.d.ts.map +0 -1
  415. package/libs/feature/editor/src/lib/record-form/record-form.component.d.ts.map +0 -1
  416. package/libs/ui/inputs/src/lib/form-field/form-field-array/form-field-array.component.d.ts.map +0 -1
  417. package/libs/ui/inputs/src/lib/form-field/form-field-file/form-field-file.component.d.ts.map +0 -1
  418. package/libs/ui/inputs/src/lib/form-field/form-field-object/form-field-object.component.d.ts.map +0 -1
  419. package/libs/ui/inputs/src/lib/form-field/form-field-rich/form-field-rich.component.d.ts +0 -11
  420. package/libs/ui/inputs/src/lib/form-field/form-field-rich/form-field-rich.component.d.ts.map +0 -1
  421. package/libs/ui/inputs/src/lib/form-field/form-field-simple/form-field-simple.component.d.ts.map +0 -1
  422. package/libs/ui/inputs/src/lib/form-field/form-field-spatial-extent/form-field-spatial-extent.component.d.ts.map +0 -1
  423. package/libs/ui/inputs/src/lib/form-field/form-field-temporal-extent/form-field-temporal-extent.component.d.ts.map +0 -1
  424. package/libs/ui/inputs/src/lib/form-field/form-field.component.d.ts.map +0 -1
  425. package/libs/ui/inputs/src/lib/form-field/form-field.model.d.ts.map +0 -1
  426. package/libs/ui/inputs/src/lib/form-field/index.d.ts.map +0 -1
  427. package/src/libs/data-access/gn4/src/openapi/model/inlineObject3.api.model.ts +0 -18
  428. package/src/libs/ui/inputs/src/lib/form-field/form-field-rich/form-field-rich.component.html +0 -11
  429. package/src/libs/ui/inputs/src/lib/form-field/form-field-rich/form-field-rich.component.ts +0 -15
  430. package/src/libs/ui/inputs/src/lib/form-field/form-field.component.html +0 -68
  431. package/src/libs/ui/inputs/src/lib/form-field/form-field.component.ts +0 -80
  432. /package/libs/{ui/inputs/src/lib → feature/editor/src/lib/components/record-form}/form-field/form-field.model.d.ts +0 -0
  433. /package/libs/{ui/inputs/src/lib → feature/editor/src/lib/components/record-form}/form-field/index.d.ts +0 -0
  434. /package/src/libs/feature/editor/src/lib/{record-form/record-form.component.css → components/overview-upload/overview-upload.component.css} +0 -0
  435. /package/src/libs/{ui/inputs/src/lib → feature/editor/src/lib/components/record-form}/form-field/form-field-array/form-field-array.component.css +0 -0
  436. /package/src/libs/{ui/inputs/src/lib → feature/editor/src/lib/components/record-form}/form-field/form-field-array/form-field-array.component.html +0 -0
  437. /package/src/libs/{ui/inputs/src/lib → feature/editor/src/lib/components/record-form}/form-field/form-field-file/form-field-file.component.css +0 -0
  438. /package/src/libs/{ui/inputs/src/lib → feature/editor/src/lib/components/record-form}/form-field/form-field-file/form-field-file.component.html +0 -0
  439. /package/src/libs/{ui/inputs/src/lib/form-field/form-field-object/form-field-object.component.css → feature/editor/src/lib/components/record-form/form-field/form-field-license/form-field-license.component.css} +0 -0
  440. /package/src/libs/{ui/inputs/src/lib/form-field/form-field-rich/form-field-rich.component.css → feature/editor/src/lib/components/record-form/form-field/form-field-object/form-field-object.component.css} +0 -0
  441. /package/src/libs/{ui/inputs/src/lib → feature/editor/src/lib/components/record-form}/form-field/form-field-object/form-field-object.component.html +0 -0
  442. /package/src/libs/{ui/inputs/src/lib/form-field/form-field-simple/form-field-simple.component.css → feature/editor/src/lib/components/record-form/form-field/form-field-resource-updated/form-field-resource-updated.component.css} +0 -0
  443. /package/src/libs/{ui/inputs/src/lib/form-field/form-field-spatial-extent/form-field-spatial-extent.component.css → feature/editor/src/lib/components/record-form/form-field/form-field-rich/form-field-rich.component.css} +0 -0
  444. /package/src/libs/{ui/inputs/src/lib/form-field/form-field-temporal-extent/form-field-temporal-extent.component.css → feature/editor/src/lib/components/record-form/form-field/form-field-simple/form-field-simple.component.css} +0 -0
  445. /package/src/libs/{ui/inputs/src/lib → feature/editor/src/lib/components/record-form}/form-field/form-field-simple/form-field-simple.component.html +0 -0
  446. /package/src/libs/{ui/inputs/src/lib/form-field/form-field.component.css → feature/editor/src/lib/components/record-form/form-field/form-field-spatial-extent/form-field-spatial-extent.component.css} +0 -0
  447. /package/src/libs/{ui/inputs/src/lib → feature/editor/src/lib/components/record-form}/form-field/form-field-spatial-extent/form-field-spatial-extent.component.html +0 -0
  448. /package/src/libs/{ui/inputs/src/lib → feature/editor/src/lib/components/record-form}/form-field/form-field-temporal-extent/form-field-temporal-extent.component.html +0 -0
  449. /package/src/libs/{ui/inputs/src/lib → feature/editor/src/lib/components/record-form}/form-field/form-field.model.ts +0 -0
  450. /package/src/libs/{ui/inputs/src/lib → feature/editor/src/lib/components/record-form}/form-field/index.ts +0 -0
@@ -1,11 +1,14 @@
1
1
  import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
2
- import { BehaviorSubject, combineLatest, map } from 'rxjs';
2
+ import { OgcApiEndpoint, WfsEndpoint } from '@camptocamp/ogc-client';
3
+ import { mimeTypeToFormat } from '../../../../../../libs/util/shared/src';
4
+ import { BehaviorSubject, combineLatest, map, switchMap } from 'rxjs';
3
5
  import * as i0 from "@angular/core";
4
- import * as i1 from "@ngx-translate/core";
5
- import * as i2 from "../../../../inputs/src/lib/dropdown-selector/dropdown-selector.component";
6
- import * as i3 from "../../../../inputs/src/lib/text-input/text-input.component";
7
- import * as i4 from "../../../../inputs/src/lib/copy-text-button/copy-text-button.component";
8
- import * as i5 from "@angular/common";
6
+ import * as i1 from "@angular/common";
7
+ import * as i2 from "@angular/material/tooltip";
8
+ import * as i3 from "@ngx-translate/core";
9
+ import * as i4 from "../../../../inputs/src/lib/dropdown-selector/dropdown-selector.component";
10
+ import * as i5 from "../../../../inputs/src/lib/text-input/text-input.component";
11
+ import * as i6 from "../../../../inputs/src/lib/copy-text-button/copy-text-button.component";
9
12
  const DEFAULT_PARAMS = {
10
13
  OFFSET: '',
11
14
  LIMIT: '-1',
@@ -16,11 +19,9 @@ export class RecordApiFormComponent {
16
19
  this.offset$ = new BehaviorSubject('');
17
20
  this.limit$ = new BehaviorSubject('');
18
21
  this.format$ = new BehaviorSubject('');
19
- this.formatsList = [
20
- { label: 'JSON', value: 'json' },
21
- { label: 'CSV', value: 'csv' },
22
- ];
23
- this.apiQueryUrl$ = combineLatest([this.offset$, this.limit$, this.format$]).pipe(map(([offset, limit, format]) => {
22
+ this.supportOffset = true;
23
+ this.outputFormats = [{ value: 'json', label: 'JSON' }];
24
+ this.apiQueryUrl$ = combineLatest([this.offset$, this.limit$, this.format$]).pipe(switchMap(async ([offset, limit, format]) => {
24
25
  let outputUrl;
25
26
  if (this.apiBaseUrl) {
26
27
  const url = new URL(this.apiBaseUrl);
@@ -35,13 +36,32 @@ export class RecordApiFormComponent {
35
36
  }
36
37
  outputUrl = url.toString();
37
38
  }
39
+ if (this.accessServiceProtocol === 'wfs') {
40
+ const wfsEndpoint = new WfsEndpoint(this.apiBaseUrl);
41
+ if (await wfsEndpoint.isReady()) {
42
+ const options = {
43
+ outputFormat: format,
44
+ startIndex: Number(offset),
45
+ };
46
+ if (limit !== '-1') {
47
+ options['maxFeatures'] = Number(limit);
48
+ }
49
+ outputUrl = wfsEndpoint.getFeatureUrl(this.apiFeatureType, options);
50
+ }
51
+ }
38
52
  return outputUrl;
39
53
  }));
40
54
  this.noLimitChecked$ = this.limit$.pipe(map((limit) => limit === '-1' || limit === ''));
41
55
  this.displayLimit$ = this.limit$.pipe(map((limit) => (limit !== '-1' ? limit : '')));
42
56
  }
43
57
  set apiLink(value) {
44
- this.apiBaseUrl = value ? value.url.href : undefined;
58
+ this.outputFormats = [{ value: 'json', label: 'JSON' }];
59
+ this.accessServiceProtocol = value ? value.accessServiceProtocol : undefined;
60
+ this.apiFeatureType = value ? value.name : undefined;
61
+ if (value) {
62
+ this.apiBaseUrl = value.url.href;
63
+ this.parseOutputFormats();
64
+ }
45
65
  this.resetUrl();
46
66
  }
47
67
  setOffset(value) {
@@ -59,13 +79,55 @@ export class RecordApiFormComponent {
59
79
  this.limit$.next(DEFAULT_PARAMS.LIMIT);
60
80
  this.format$.next(DEFAULT_PARAMS.FORMAT);
61
81
  }
82
+ parseOutputFormats() {
83
+ const apiUrl = this.apiBaseUrl.slice(-1) === '?'
84
+ ? this.apiBaseUrl.slice(0, -1)
85
+ : this.apiBaseUrl;
86
+ this.getOutputFormats(apiUrl, this.accessServiceProtocol).then((outputFormats) => {
87
+ let formatsList = [];
88
+ if ('itemFormats' in outputFormats) {
89
+ formatsList = this.mapFormats(outputFormats.itemFormats);
90
+ }
91
+ else if ('outputFormats' in outputFormats) {
92
+ formatsList = this.mapFormats(outputFormats.outputFormats);
93
+ }
94
+ this.outputFormats = this.outputFormats.concat(formatsList.filter(Boolean));
95
+ this.outputFormats = this.outputFormats
96
+ .filter((format, index, self) => index === self.findIndex((t) => t.value === format.value))
97
+ .sort((a, b) => a.label.localeCompare(b.label));
98
+ });
99
+ }
100
+ mapFormats(formats) {
101
+ return formats.map((format) => {
102
+ const normalizedFormat = mimeTypeToFormat(format);
103
+ if (normalizedFormat) {
104
+ return {
105
+ label: normalizedFormat.toUpperCase(),
106
+ value: normalizedFormat,
107
+ };
108
+ }
109
+ return null;
110
+ });
111
+ }
112
+ async getOutputFormats(url, accessServiceProtocol) {
113
+ if (accessServiceProtocol === 'wfs') {
114
+ const endpoint = await new WfsEndpoint(url).isReady();
115
+ this.supportOffset = endpoint.supportsStartIndex();
116
+ return endpoint.getServiceInfo();
117
+ }
118
+ else {
119
+ const endpoint = await new OgcApiEndpoint(url);
120
+ const firstCollection = (await endpoint.featureCollections)[0];
121
+ return endpoint.getCollectionInfo(firstCollection);
122
+ }
123
+ }
62
124
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: RecordApiFormComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
63
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: RecordApiFormComponent, selector: "gn-ui-record-api-form", inputs: { apiLink: "apiLink" }, ngImport: i0, template: "<div class=\"flex flex-col gap-8\">\n <div class=\"flex flex-col bg-white p-8 ng-star-inserted shadow-xl gap-8\">\n <div class=\"flex flex-row\">\n <div class=\"text-[16px] text-black truncate font-title w-11/12\" translate>\n record.metadata.api.form.create\n </div>\n <button\n (click)=\"resetUrl()\"\n class=\"bg-primary-opacity-50 inline-flex items-center justify-center px-2 py-1 text-13 font-medium leading-none text-white rounded capitalize text-primary-lightest hover:bg-primary transition-colors\"\n >\n <p class=\"text-[13px] uppercase\" translate>\n record.metadata.api.form.reset\n </p>\n </button>\n </div>\n <div class=\"flex flex-row flex-wrap justify-between flex-grow gap-5\">\n <div class=\"flex flex-col gap-3\">\n <p class=\"text-[14px]\" translate>record.metadata.api.form.limit</p>\n <div class=\"flex flex-row items-center gap-2\">\n <gn-ui-text-input\n class=\"mr-2 w-20\"\n (valueChange)=\"setLimit($event)\"\n [value]=\"displayLimit$ | async\"\n hint=\"\"\n >\n </gn-ui-text-input>\n <div class=\"flex items-center\">\n <input\n class=\"mr-2 cursor-pointer\"\n type=\"checkbox\"\n [checked]=\"noLimitChecked$ | async\"\n (change)=\"setLimit('-1')\"\n />\n <span class=\"text-sm\" translate\n >record.metadata.api.form.limit.all</span\n >\n </div>\n </div>\n </div>\n <div class=\"flex flex-col gap-3\">\n <p class=\"text-sm\" translate>record.metadata.api.form.offset</p>\n <gn-ui-text-input\n class=\"w-20\"\n [value]=\"offset$ | async\"\n (valueChange)=\"setOffset($event)\"\n hint=\"\"\n >\n </gn-ui-text-input>\n </div>\n <div class=\"flex flex-col gap-3\">\n <p class=\"text-sm\" translate>record.metadata.api.form.type</p>\n <gn-ui-dropdown-selector\n #dropdown\n [title]=\"''\"\n extraBtnClass=\"secondary min-w-full !w-40 !text-black\"\n [showTitle]=\"false\"\n class=\"text-black\"\n [choices]=\"formatsList\"\n (selectValue)=\"setFormat($event)\"\n [selected]=\"format$ | async\"\n ></gn-ui-dropdown-selector>\n </div>\n </div>\n </div>\n <div class=\"flex flex-col gap-3 mb-3\">\n <div class=\"text-sm text-black truncate font-title w-11/12\" translate>\n record.metadata.api.form.customUrl\n </div>\n <div class=\"bg-white rounded-lg\">\n <gn-ui-copy-text-button\n [text]=\"apiQueryUrl$ | async\"\n ></gn-ui-copy-text-button>\n </div>\n </div>\n</div>\n", styles: [":host ::ng-deep input{color:#000;opacity:1}:host ::ng-deep gn-ui-copy-text-button input[type=text]{color:#000;background-color:#fff}:host ::ng-deep gn-ui-copy-text-button button,host ::ng-deep gn-ui-copy-text-button button:hover{background-color:var(--color-secondary)!important}:host ::ng-deep gn-ui-copy-text-button button mat-icon{color:#fff!important;opacity:1!important}:host ::ng-deep gn-ui-copy-text-button button:hover mat-icon{color:#d3d3d3!important}\n"], dependencies: [{ kind: "directive", type: i1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i2.DropdownSelectorComponent, selector: "gn-ui-dropdown-selector", inputs: ["title", "showTitle", "ariaName", "choices", "selected", "maxRows", "extraBtnClass", "minWidth"], outputs: ["selectValue"] }, { kind: "component", type: i3.TextInputComponent, selector: "gn-ui-text-input", inputs: ["value", "hint", "required"], outputs: ["valueChange"] }, { kind: "component", type: i4.CopyTextButtonComponent, selector: "gn-ui-copy-text-button", inputs: ["text", "tooltipText", "displayText", "rows"] }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
125
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: RecordApiFormComponent, selector: "gn-ui-record-api-form", inputs: { apiLink: "apiLink" }, ngImport: i0, template: "<div class=\"flex flex-col gap-8\">\n <div class=\"flex flex-col bg-white p-8 ng-star-inserted shadow-xl gap-8\">\n <div class=\"flex flex-row\">\n <div class=\"text-[16px] text-black truncate font-title w-11/12\" translate>\n record.metadata.api.form.create\n </div>\n <button\n (click)=\"resetUrl()\"\n class=\"bg-primary-opacity-50 inline-flex items-center justify-center px-2 py-1 text-13 font-medium leading-none text-white rounded capitalize text-primary-lightest hover:bg-primary transition-colors\"\n >\n <p class=\"text-[13px] uppercase\" translate>\n record.metadata.api.form.reset\n </p>\n </button>\n </div>\n <div class=\"flex flex-row flex-wrap justify-between grow gap-5\">\n <div class=\"flex flex-col gap-3\">\n <p class=\"text-[14px]\" translate>record.metadata.api.form.limit</p>\n <div class=\"flex flex-row items-center gap-2\">\n <gn-ui-text-input\n class=\"mr-2 w-20\"\n (valueChange)=\"setLimit($event)\"\n [value]=\"displayLimit$ | async\"\n hint=\"\"\n >\n </gn-ui-text-input>\n <div class=\"flex items-center\">\n <input\n class=\"mr-2 cursor-pointer\"\n type=\"checkbox\"\n [checked]=\"noLimitChecked$ | async\"\n (change)=\"setLimit('-1')\"\n />\n <span class=\"text-sm\" translate\n >record.metadata.api.form.limit.all</span\n >\n </div>\n </div>\n </div>\n <div class=\"flex flex-col gap-3 relative\">\n <p class=\"text-sm\" [class.text-gray-600]=\"!supportOffset\" translate>\n record.metadata.api.form.offset\n </p>\n <div class=\"flex items-center\">\n <gn-ui-text-input\n class=\"w-20\"\n [value]=\"offset$ | async\"\n [disabled]=\"!supportOffset\"\n (valueChange)=\"supportOffset ? setOffset($event) : null\"\n hint=\"\"\n >\n </gn-ui-text-input>\n <div\n *ngIf=\"!supportOffset\"\n class=\"flex items-center gap-2 text-orange-500 z-10 ml-3\"\n >\n <span\n class=\"material-symbols-outlined\"\n matTooltip=\"Not supported on this service\"\n >\n warning\n </span>\n </div>\n </div>\n </div>\n <div class=\"flex flex-col gap-3\">\n <p class=\"text-sm\" translate>record.metadata.api.form.type</p>\n <gn-ui-dropdown-selector\n #dropdown\n [title]=\"''\"\n extraBtnClass=\"secondary min-w-full !w-40 !text-black\"\n [showTitle]=\"false\"\n class=\"text-black\"\n [choices]=\"outputFormats\"\n (selectValue)=\"setFormat($event)\"\n [selected]=\"format$ | async\"\n ></gn-ui-dropdown-selector>\n </div>\n </div>\n </div>\n <div class=\"flex flex-col gap-3 mb-3\">\n <div class=\"text-sm text-black truncate font-title w-11/12\" translate>\n record.metadata.api.form.customUrl\n </div>\n <div class=\"bg-white rounded-lg\">\n <gn-ui-copy-text-button\n [text]=\"apiQueryUrl$ | async\"\n ></gn-ui-copy-text-button>\n </div>\n </div>\n</div>\n", styles: [":host ::ng-deep input{color:#000;opacity:1}:host ::ng-deep gn-ui-copy-text-button input[type=text]{color:#000;background-color:#fff}:host ::ng-deep gn-ui-copy-text-button button,host ::ng-deep gn-ui-copy-text-button button:hover{background-color:var(--color-secondary)!important}:host ::ng-deep gn-ui-copy-text-button button mat-icon{color:#fff!important;opacity:1!important}:host ::ng-deep gn-ui-copy-text-button button:hover mat-icon{color:#d3d3d3!important}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "directive", type: i3.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i4.DropdownSelectorComponent, selector: "gn-ui-dropdown-selector", inputs: ["title", "showTitle", "ariaName", "choices", "selected", "maxRows", "extraBtnClass", "minWidth", "disabled"], outputs: ["selectValue"] }, { kind: "component", type: i5.TextInputComponent, selector: "gn-ui-text-input", inputs: ["value", "extraClass", "hint", "required", "disabled"], outputs: ["valueChange"] }, { kind: "component", type: i6.CopyTextButtonComponent, selector: "gn-ui-copy-text-button", inputs: ["text", "tooltipText", "displayText", "rows"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
64
126
  }
65
127
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: RecordApiFormComponent, decorators: [{
66
128
  type: Component,
67
- args: [{ selector: 'gn-ui-record-api-form', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"flex flex-col gap-8\">\n <div class=\"flex flex-col bg-white p-8 ng-star-inserted shadow-xl gap-8\">\n <div class=\"flex flex-row\">\n <div class=\"text-[16px] text-black truncate font-title w-11/12\" translate>\n record.metadata.api.form.create\n </div>\n <button\n (click)=\"resetUrl()\"\n class=\"bg-primary-opacity-50 inline-flex items-center justify-center px-2 py-1 text-13 font-medium leading-none text-white rounded capitalize text-primary-lightest hover:bg-primary transition-colors\"\n >\n <p class=\"text-[13px] uppercase\" translate>\n record.metadata.api.form.reset\n </p>\n </button>\n </div>\n <div class=\"flex flex-row flex-wrap justify-between flex-grow gap-5\">\n <div class=\"flex flex-col gap-3\">\n <p class=\"text-[14px]\" translate>record.metadata.api.form.limit</p>\n <div class=\"flex flex-row items-center gap-2\">\n <gn-ui-text-input\n class=\"mr-2 w-20\"\n (valueChange)=\"setLimit($event)\"\n [value]=\"displayLimit$ | async\"\n hint=\"\"\n >\n </gn-ui-text-input>\n <div class=\"flex items-center\">\n <input\n class=\"mr-2 cursor-pointer\"\n type=\"checkbox\"\n [checked]=\"noLimitChecked$ | async\"\n (change)=\"setLimit('-1')\"\n />\n <span class=\"text-sm\" translate\n >record.metadata.api.form.limit.all</span\n >\n </div>\n </div>\n </div>\n <div class=\"flex flex-col gap-3\">\n <p class=\"text-sm\" translate>record.metadata.api.form.offset</p>\n <gn-ui-text-input\n class=\"w-20\"\n [value]=\"offset$ | async\"\n (valueChange)=\"setOffset($event)\"\n hint=\"\"\n >\n </gn-ui-text-input>\n </div>\n <div class=\"flex flex-col gap-3\">\n <p class=\"text-sm\" translate>record.metadata.api.form.type</p>\n <gn-ui-dropdown-selector\n #dropdown\n [title]=\"''\"\n extraBtnClass=\"secondary min-w-full !w-40 !text-black\"\n [showTitle]=\"false\"\n class=\"text-black\"\n [choices]=\"formatsList\"\n (selectValue)=\"setFormat($event)\"\n [selected]=\"format$ | async\"\n ></gn-ui-dropdown-selector>\n </div>\n </div>\n </div>\n <div class=\"flex flex-col gap-3 mb-3\">\n <div class=\"text-sm text-black truncate font-title w-11/12\" translate>\n record.metadata.api.form.customUrl\n </div>\n <div class=\"bg-white rounded-lg\">\n <gn-ui-copy-text-button\n [text]=\"apiQueryUrl$ | async\"\n ></gn-ui-copy-text-button>\n </div>\n </div>\n</div>\n", styles: [":host ::ng-deep input{color:#000;opacity:1}:host ::ng-deep gn-ui-copy-text-button input[type=text]{color:#000;background-color:#fff}:host ::ng-deep gn-ui-copy-text-button button,host ::ng-deep gn-ui-copy-text-button button:hover{background-color:var(--color-secondary)!important}:host ::ng-deep gn-ui-copy-text-button button mat-icon{color:#fff!important;opacity:1!important}:host ::ng-deep gn-ui-copy-text-button button:hover mat-icon{color:#d3d3d3!important}\n"] }]
129
+ args: [{ selector: 'gn-ui-record-api-form', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"flex flex-col gap-8\">\n <div class=\"flex flex-col bg-white p-8 ng-star-inserted shadow-xl gap-8\">\n <div class=\"flex flex-row\">\n <div class=\"text-[16px] text-black truncate font-title w-11/12\" translate>\n record.metadata.api.form.create\n </div>\n <button\n (click)=\"resetUrl()\"\n class=\"bg-primary-opacity-50 inline-flex items-center justify-center px-2 py-1 text-13 font-medium leading-none text-white rounded capitalize text-primary-lightest hover:bg-primary transition-colors\"\n >\n <p class=\"text-[13px] uppercase\" translate>\n record.metadata.api.form.reset\n </p>\n </button>\n </div>\n <div class=\"flex flex-row flex-wrap justify-between grow gap-5\">\n <div class=\"flex flex-col gap-3\">\n <p class=\"text-[14px]\" translate>record.metadata.api.form.limit</p>\n <div class=\"flex flex-row items-center gap-2\">\n <gn-ui-text-input\n class=\"mr-2 w-20\"\n (valueChange)=\"setLimit($event)\"\n [value]=\"displayLimit$ | async\"\n hint=\"\"\n >\n </gn-ui-text-input>\n <div class=\"flex items-center\">\n <input\n class=\"mr-2 cursor-pointer\"\n type=\"checkbox\"\n [checked]=\"noLimitChecked$ | async\"\n (change)=\"setLimit('-1')\"\n />\n <span class=\"text-sm\" translate\n >record.metadata.api.form.limit.all</span\n >\n </div>\n </div>\n </div>\n <div class=\"flex flex-col gap-3 relative\">\n <p class=\"text-sm\" [class.text-gray-600]=\"!supportOffset\" translate>\n record.metadata.api.form.offset\n </p>\n <div class=\"flex items-center\">\n <gn-ui-text-input\n class=\"w-20\"\n [value]=\"offset$ | async\"\n [disabled]=\"!supportOffset\"\n (valueChange)=\"supportOffset ? setOffset($event) : null\"\n hint=\"\"\n >\n </gn-ui-text-input>\n <div\n *ngIf=\"!supportOffset\"\n class=\"flex items-center gap-2 text-orange-500 z-10 ml-3\"\n >\n <span\n class=\"material-symbols-outlined\"\n matTooltip=\"Not supported on this service\"\n >\n warning\n </span>\n </div>\n </div>\n </div>\n <div class=\"flex flex-col gap-3\">\n <p class=\"text-sm\" translate>record.metadata.api.form.type</p>\n <gn-ui-dropdown-selector\n #dropdown\n [title]=\"''\"\n extraBtnClass=\"secondary min-w-full !w-40 !text-black\"\n [showTitle]=\"false\"\n class=\"text-black\"\n [choices]=\"outputFormats\"\n (selectValue)=\"setFormat($event)\"\n [selected]=\"format$ | async\"\n ></gn-ui-dropdown-selector>\n </div>\n </div>\n </div>\n <div class=\"flex flex-col gap-3 mb-3\">\n <div class=\"text-sm text-black truncate font-title w-11/12\" translate>\n record.metadata.api.form.customUrl\n </div>\n <div class=\"bg-white rounded-lg\">\n <gn-ui-copy-text-button\n [text]=\"apiQueryUrl$ | async\"\n ></gn-ui-copy-text-button>\n </div>\n </div>\n</div>\n", styles: [":host ::ng-deep input{color:#000;opacity:1}:host ::ng-deep gn-ui-copy-text-button input[type=text]{color:#000;background-color:#fff}:host ::ng-deep gn-ui-copy-text-button button,host ::ng-deep gn-ui-copy-text-button button:hover{background-color:var(--color-secondary)!important}:host ::ng-deep gn-ui-copy-text-button button mat-icon{color:#fff!important;opacity:1!important}:host ::ng-deep gn-ui-copy-text-button button:hover mat-icon{color:#d3d3d3!important}\n"] }]
68
130
  }], propDecorators: { apiLink: [{
69
131
  type: Input
70
132
  }] } });
71
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjb3JkLWFwaS1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvZWxlbWVudHMvc3JjL2xpYi9yZWNvcmQtYXBpLWZvcm0vcmVjb3JkLWFwaS1mb3JtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvZWxlbWVudHMvc3JjL2xpYi9yZWNvcmQtYXBpLWZvcm0vcmVjb3JkLWFwaS1mb3JtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBRXpFLE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQTs7Ozs7OztBQUUxRCxNQUFNLGNBQWMsR0FBRztJQUNyQixNQUFNLEVBQUUsRUFBRTtJQUNWLEtBQUssRUFBRSxJQUFJO0lBQ1gsTUFBTSxFQUFFLE1BQU07Q0FDZixDQUFBO0FBT0QsTUFBTSxPQUFPLHNCQUFzQjtJQU5uQztRQVdFLFlBQU8sR0FBRyxJQUFJLGVBQWUsQ0FBQyxFQUFFLENBQUMsQ0FBQTtRQUNqQyxXQUFNLEdBQUcsSUFBSSxlQUFlLENBQUMsRUFBRSxDQUFDLENBQUE7UUFDaEMsWUFBTyxHQUFHLElBQUksZUFBZSxDQUFDLEVBQUUsQ0FBQyxDQUFBO1FBRWpDLGdCQUFXLEdBQUc7WUFDWixFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtZQUNoQyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRTtTQUMvQixDQUFBO1FBQ0QsaUJBQVksR0FBRyxhQUFhLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FB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bnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgRGF0YXNldFNlcnZpY2VEaXN0cmlidXRpb24gfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9tb2RlbC9yZWNvcmQnXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIG1hcCB9IGZyb20gJ3J4anMnXG5cbmNvbnN0IERFRkFVTFRfUEFSQU1TID0ge1xuICBPRkZTRVQ6ICcnLFxuICBMSU1JVDogJy0xJyxcbiAgRk9STUFUOiAnanNvbicsXG59XG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdnbi11aS1yZWNvcmQtYXBpLWZvcm0nLFxuICB0ZW1wbGF0ZVVybDogJy4vcmVjb3JkLWFwaS1mb3JtLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcmVjb3JkLWFwaS1mb3JtLmNvbXBvbmVudC5jc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFJlY29yZEFwaUZvcm1Db21wb25lbnQge1xuICBASW5wdXQoKSBzZXQgYXBpTGluayh2YWx1ZTogRGF0YXNldFNlcnZpY2VEaXN0cmlidXRpb24pIHtcbiAgICB0aGlzLmFwaUJhc2VVcmwgPSB2YWx1ZSA/IHZhbHVlLnVybC5ocmVmIDogdW5kZWZpbmVkXG4gICAgdGhpcy5yZXNldFVybCgpXG4gIH1cbiAgb2Zmc2V0JCA9IG5ldyBCZWhhdmlvclN1YmplY3QoJycpXG4gIGxpbWl0JCA9IG5ldyBCZWhhdmlvclN1YmplY3QoJycpXG4gIGZvcm1hdCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KCcnKVxuICBhcGlCYXNlVXJsOiBzdHJpbmdcbiAgZm9ybWF0c0xpc3QgPSBbXG4gICAgeyBsYWJlbDogJ0pTT04nLCB2YWx1ZTogJ2pzb24nIH0sXG4gICAgeyBsYWJlbDogJ0NTVicsIHZhbHVlOiAnY3N2JyB9LFxuICBdXG4gIGFwaVF1ZXJ5VXJsJCA9IGNvbWJpbmVMYXRlc3QoW3RoaXMub2Zmc2V0JCwgdGhpcy5saW1pdCQsIHRoaXMuZm9ybWF0JF0pLnBpcGUoXG4gICAgbWFwKChbb2Zmc2V0LCBsaW1pdCwgZm9ybWF0XSkgPT4ge1xuICAgICAgbGV0IG91dHB1dFVybFxuICAgICAgaWYgKHRoaXMuYXBpQmFzZVVybCkge1xuICAgICAgICBjb25zdCB1cmwgPSBuZXcgVVJMKHRoaXMuYXBpQmFzZVVybClcbiAgICAgICAgY29uc3QgcGFyYW1zID0geyBvZmZzZXQ6IG9mZnNldCwgbGltaXQ6IGxpbWl0LCBmOiBmb3JtYXQgfVxuICAgICAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhwYXJhbXMpKSB7XG4gICAgICAgICAgaWYgKHZhbHVlICYmIHZhbHVlICE9PSAnMCcpIHtcbiAgICAgICAgICAgIHVybC5zZWFyY2hQYXJhbXMuc2V0KGtleSwgdmFsdWUpXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHVybC5zZWFyY2hQYXJhbXMuZGVsZXRlKGtleSlcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgb3V0cHV0VXJsID0gdXJsLnRvU3RyaW5nKClcbiAgICAgIH1cbiAgICAgIHJldHVybiBvdXRwdXRVcmxcbiAgICB9KVxuICApXG4gIG5vTGltaXRDaGVja2VkJCA9IHRoaXMubGltaXQkLnBpcGUoXG4gICAgbWFwKChsaW1pdCkgPT4gbGltaXQgPT09ICctMScgfHwgbGltaXQgPT09ICcnKVxuICApXG5cbiAgZGlzcGxheUxpbWl0JCA9IHRoaXMubGltaXQkLnBpcGUoXG4gICAgbWFwKChsaW1pdCkgPT4gKGxpbWl0ICE9PSAnLTEnID8gbGltaXQgOiAnJykpXG4gIClcblxuICBzZXRPZmZzZXQodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMub2Zmc2V0JC5uZXh0KHZhbHVlKVxuICB9XG5cbiAgc2V0TGltaXQodmFsdWU6IHN0cmluZykge1xuICAgIGNvbnN0IG5ld0xpbWl0ID0gdmFsdWUgPT09ICcnID8gJy0xJyA6IHZhbHVlXG4gICAgdGhpcy5saW1pdCQubmV4dChuZXdMaW1pdClcbiAgfVxuXG4gIHNldEZvcm1hdCh2YWx1ZTogc3RyaW5nIHwgdW5rbm93bikge1xuICAgIHRoaXMuZm9ybWF0JC5uZXh0KFN0cmluZyh2YWx1ZSkpXG4gIH1cblxuICByZXNldFVybCgpIHtcbiAgICB0aGlzLm9mZnNldCQubmV4dChERUZBVUxUX1BBUkFNUy5PRkZTRVQpXG4gICAgdGhpcy5saW1pdCQubmV4dChERUZBVUxUX1BBUkFNUy5MSU1JVClcbiAgICB0aGlzLmZvcm1hdCQubmV4dChERUZBVUxUX1BBUkFNUy5GT1JNQVQpXG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGdhcC04XCI+XG4gIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGJnLXdoaXRlIHAtOCBuZy1zdGFyLWluc2VydGVkIHNoYWRvdy14bCBnYXAtOFwiPlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwidGV4dC1bMTZweF0gdGV4dC1ibGFjayB0cnVuY2F0ZSBmb250LXRpdGxlIHctMTEvMTJcIiB0cmFuc2xhdGU+XG4gICAgICAgIHJlY29yZC5tZXRhZGF0YS5hcGkuZm9ybS5jcmVhdGVcbiAgICAgIDwvZGl2PlxuICAgICAgPGJ1dHRvblxuICAgICAgICAoY2xpY2spPVwicmVzZXRVcmwoKVwiXG4gICAgICAgIGNsYXNzPVwiYmctcHJpbWFyeS1vcGFjaXR5LTUwIGlubGluZS1mbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBweC0yIHB5LTEgdGV4dC0xMyBmb250LW1lZGl1bSBsZWFkaW5nLW5vbmUgdGV4dC13aGl0ZSByb3VuZGVkIGNhcGl0YWxpemUgdGV4dC1wcmltYXJ5LWxpZ2h0ZXN0IGhvdmVyOmJnLXByaW1hcnkgdHJhbnNpdGlvbi1jb2xvcnNcIlxuICAgICAgPlxuICAgICAgICA8cCBjbGFzcz1cInRleHQtWzEzcHhdIHVwcGVyY2FzZVwiIHRyYW5zbGF0ZT5cbiAgICAgICAgICByZWNvcmQubWV0YWRhdGEuYXBpLmZvcm0ucmVzZXRcbiAgICAgICAgPC9wPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1yb3cgZmxleC13cmFwIGp1c3RpZnktYmV0d2VlbiBmbGV4LWdyb3cgZ2FwLTVcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGdhcC0zXCI+XG4gICAgICAgIDxwIGNsYXNzPVwidGV4dC1bMTRweF1cIiB0cmFuc2xhdGU+cmVjb3JkLm1ldGFkYXRhLmFwaS5mb3JtLmxpbWl0PC9wPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvdyBpdGVtcy1jZW50ZXIgZ2FwLTJcIj5cbiAgICAgICAgICA8Z24tdWktdGV4dC1pbnB1dFxuICAgICAgICAgICAgY2xhc3M9XCJtci0yIHctMjBcIlxuICAgICAgICAgICAgKHZhbHVlQ2hhbmdlKT1cInNldExpbWl0KCRldmVudClcIlxuICAgICAgICAgICAgW3ZhbHVlXT1cImRpc3BsYXlMaW1pdCQgfCBhc3luY1wiXG4gICAgICAgICAgICBoaW50PVwiXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgPC9nbi11aS10ZXh0LWlucHV0PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgIGNsYXNzPVwibXItMiBjdXJzb3ItcG9pbnRlclwiXG4gICAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICAgICAgICAgIFtjaGVja2VkXT1cIm5vTGltaXRDaGVja2VkJCB8IGFzeW5jXCJcbiAgICAgICAgICAgICAgKGNoYW5nZSk9XCJzZXRMaW1pdCgnLTEnKVwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXNtXCIgdHJhbnNsYXRlXG4gICAgICAgICAgICAgID5yZWNvcmQubWV0YWRhdGEuYXBpLmZvcm0ubGltaXQuYWxsPC9zcGFuXG4gICAgICAgICAgICA+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBnYXAtM1wiPlxuICAgICAgICA8cCBjbGFzcz1cInRleHQtc21cIiB0cmFuc2xhdGU+cmVjb3JkLm1ldGFkYXRhLmFwaS5mb3JtLm9mZnNldDwvcD5cbiAgICAgICAgPGduLXVpLXRleHQtaW5wdXRcbiAgICAgICAgICBjbGFzcz1cInctMjBcIlxuICAgICAgICAgIFt2YWx1ZV09XCJvZmZzZXQkIHwgYXN5bmNcIlxuICAgICAgICAgICh2YWx1ZUNoYW5nZSk9XCJzZXRPZmZzZXQoJGV2ZW50KVwiXG4gICAgICAgICAgaGludD1cIlwiXG4gICAgICAgID5cbiAgICAgICAgPC9nbi11aS10ZXh0LWlucHV0PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBnYXAtM1wiPlxuICAgICAgICA8cCBjbGFzcz1cInRleHQtc21cIiB0cmFuc2xhdGU+cmVjb3JkLm1ldGFkYXRhLmFwaS5mb3JtLnR5cGU8L3A+XG4gICAgICAgIDxnbi11aS1kcm9wZG93bi1zZWxlY3RvclxuICAgICAgICAgICNkcm9wZG93blxuICAgICAgICAgIFt0aXRsZV09XCInJ1wiXG4gICAgICAgICAgZXh0cmFCdG5DbGFzcz1cInNlY29uZGFyeSBtaW4tdy1mdWxsICF3LTQwICF0ZXh0LWJsYWNrXCJcbiAgICAgICAgICBbc2hvd1RpdGxlXT1cImZhbHNlXCJcbiAgICAgICAgICBjbGFzcz1cInRleHQtYmxhY2tcIlxuICAgICAgICAgIFtjaG9pY2VzXT1cImZvcm1hdHNMaXN0XCJcbiAgICAgICAgICAoc2VsZWN0VmFsdWUpPVwic2V0Rm9ybWF0KCRldmVudClcIlxuICAgICAgICAgIFtzZWxlY3RlZF09XCJmb3JtYXQkIHwgYXN5bmNcIlxuICAgICAgICA+PC9nbi11aS1kcm9wZG93bi1zZWxlY3Rvcj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgZ2FwLTMgbWItM1wiPlxuICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXNtIHRleHQtYmxhY2sgdHJ1bmNhdGUgZm9udC10aXRsZSB3LTExLzEyXCIgdHJhbnNsYXRlPlxuICAgICAgcmVjb3JkLm1ldGFkYXRhLmFwaS5mb3JtLmN1c3RvbVVybFxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJiZy13aGl0ZSByb3VuZGVkLWxnXCI+XG4gICAgICA8Z24tdWktY29weS10ZXh0LWJ1dHRvblxuICAgICAgICBbdGV4dF09XCJhcGlRdWVyeVVybCQgfCBhc3luY1wiXG4gICAgICA+PC9nbi11aS1jb3B5LXRleHQtYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
133
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjb3JkLWFwaS1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvZWxlbWVudHMvc3JjL2xpYi9yZWNvcmQtYXBpLWZvcm0vcmVjb3JkLWFwaS1mb3JtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvZWxlbWVudHMvc3JjL2xpYi9yZWNvcmQtYXBpLWZvcm0vcmVjb3JkLWFwaS1mb3JtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ3pFLE9BQU8sRUFBRSxjQUFjLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUE7QUFLcEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0NBQXdDLENBQUE7QUFDekUsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQTs7Ozs7Ozs7QUFFckUsTUFBTSxjQUFjLEdBQUc7SUFDckIsTUFBTSxFQUFFLEVBQUU7SUFDVixLQUFLLEVBQUUsSUFBSTtJQUNYLE1BQU0sRUFBRSxNQUFNO0NBQ2YsQ0FBQTtBQU9ELE1BQU0sT0FBTyxzQkFBc0I7SUFObkM7UUFrQkUsWUFBTyxHQUFHLElBQUksZUFBZSxDQUFDLEVBQUUsQ0FBQyxDQUFBO1FBQ2pDLFdBQU0sR0FBRyxJQUFJLGVBQWUsQ0FBQyxFQUFFLENBQUMsQ0FBQTtRQUNoQyxZQUFPLEdBQUcsSUFBSSxlQUFlLENBQUMsRUFBRSxDQUFDLENBQUE7UUFHakMsa0JBQWEsR0FBRyxJQUFJLENBQUE7UUFFcEIsa0JBQWEsR0FBRyxDQUFDLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQTtRQUVs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RTtvQkFDckMsS0FBSyxFQUFFLGdCQUFnQjtpQkFDeEIsQ0FBQTthQUNGO1lBQ0QsT0FBTyxJQUFJLENBQUE7UUFDYixDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFRCxLQUFLLENBQUMsZ0JBQWdCLENBQUMsR0FBVyxFQUFFLHFCQUE2QjtRQUMvRCxJQUFJLHFCQUFxQixLQUFLLEtBQUssRUFBRTtZQUNuQyxNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUksV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFBO1lBQ3JELElBQUksQ0FBQyxhQUFhLEdBQUcsUUFBUSxDQUFDLGtCQUFrQixFQUFFLENBQUE7WUFDbEQsT0FBTyxRQUFRLENBQUMsY0FBYyxFQUFFLENBQUE7U0FDakM7YUFBTTtZQUNMLE1BQU0sUUFBUSxHQUFHLE1BQU0sSUFBSSxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUE7WUFDOUMsTUFBTSxlQUFlLEdBQUcsQ0FBQyxNQUFNLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO1lBQzlELE9BQU8sUUFBUSxDQUFDLGlCQUFpQixDQUFDLGVBQWUsQ0FBQyxDQUFBO1NBQ25EO0lBQ0gsQ0FBQzs4R0FsSVUsc0JBQXNCO2tHQUF0QixzQkFBc0IsNkZDcEJuQyw2eUdBMkZBOzsyRkR2RWEsc0JBQXNCO2tCQU5sQyxTQUFTOytCQUNFLHVCQUF1QixtQkFHaEIsdUJBQXVCLENBQUMsTUFBTTs4QkFHbEMsT0FBTztzQkFBbkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IE9nY0FwaUVuZHBvaW50LCBXZnNFbmRwb2ludCB9IGZyb20gJ0BjYW1wdG9jYW1wL29nYy1jbGllbnQnXG5pbXBvcnQge1xuICBEYXRhc2V0U2VydmljZURpc3RyaWJ1dGlvbixcbiAgU2VydmljZVByb3RvY29sLFxufSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9tb2RlbC9yZWNvcmQnXG5pbXBvcnQgeyBtaW1lVHlwZVRvRm9ybWF0IH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91dGlsL3NoYXJlZC9zcmMnXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIG1hcCwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcydcblxuY29uc3QgREVGQVVMVF9QQVJBTVMgPSB7XG4gIE9GRlNFVDogJycsXG4gIExJTUlUOiAnLTEnLFxuICBGT1JNQVQ6ICdqc29uJyxcbn1cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2duLXVpLXJlY29yZC1hcGktZm9ybScsXG4gIHRlbXBsYXRlVXJsOiAnLi9yZWNvcmQtYXBpLWZvcm0uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9yZWNvcmQtYXBpLWZvcm0uY29tcG9uZW50LmNzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgUmVjb3JkQXBpRm9ybUNvbXBvbmVudCB7XG4gIEBJbnB1dCgpIHNldCBhcGlMaW5rKHZhbHVlOiBEYXRhc2V0U2VydmljZURpc3RyaWJ1dGlvbikge1xuICAgIHRoaXMub3V0cHV0Rm9ybWF0cyA9IFt7IHZhbHVlOiAnanNvbicsIGxhYmVsOiAnSlNPTicgfV1cbiAgICB0aGlzLmFjY2Vzc1NlcnZpY2VQcm90b2NvbCA9IHZhbHVlID8gdmFsdWUuYWNjZXNzU2VydmljZVByb3RvY29sIDogdW5kZWZpbmVkXG4gICAgdGhpcy5hcGlGZWF0dXJlVHlwZSA9IHZhbHVlID8gdmFsdWUubmFtZSA6IHVuZGVmaW5lZFxuICAgIGlmICh2YWx1ZSkge1xuICAgICAgdGhpcy5hcGlCYXNlVXJsID0gdmFsdWUudXJsLmhyZWZcbiAgICAgIHRoaXMucGFyc2VPdXRwdXRGb3JtYXRzKClcbiAgICB9XG4gICAgdGhpcy5yZXNldFVybCgpXG4gIH1cblxuICBvZmZzZXQkID0gbmV3IEJlaGF2aW9yU3ViamVjdCgnJylcbiAgbGltaXQkID0gbmV3IEJlaGF2aW9yU3ViamVjdCgnJylcbiAgZm9ybWF0JCA9IG5ldyBCZWhhdmlvclN1YmplY3QoJycpXG4gIGFwaUJhc2VVcmw6IHN0cmluZ1xuICBhcGlGZWF0dXJlVHlwZTogc3RyaW5nXG4gIHN1cHBvcnRPZmZzZXQgPSB0cnVlXG4gIGFjY2Vzc1NlcnZpY2VQcm90b2NvbDogU2VydmljZVByb3RvY29sIHwgdW5kZWZpbmVkXG4gIG91dHB1dEZvcm1hdHMgPSBbeyB2YWx1ZTogJ2pzb24nLCBsYWJlbDogJ0pTT04nIH1dXG5cbiAgYXBpUXVlcnlVcmwkID0gY29tYmluZUxhdGVzdChbdGhpcy5vZmZzZXQkLCB0aGlzLmxpbWl0JCwgdGhpcy5mb3JtYXQkXSkucGlwZShcbiAgICBzd2l0Y2hNYXAoYXN5bmMgKFtvZmZzZXQsIGxpbWl0LCBmb3JtYXRdKSA9PiB7XG4gICAgICBsZXQgb3V0cHV0VXJsXG4gICAgICBpZiAodGhpcy5hcGlCYXNlVXJsKSB7XG4gICAgICAgIGNvbnN0IHVybCA9IG5ldyBVUkwodGhpcy5hcGlCYXNlVXJsKVxuICAgICAgICBjb25zdCBwYXJhbXMgPSB7IG9mZnNldDogb2Zmc2V0LCBsaW1pdDogbGltaXQsIGY6IGZvcm1hdCB9XG4gICAgICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHBhcmFtcykpIHtcbiAgICAgICAgICBpZiAodmFsdWUgJiYgdmFsdWUgIT09ICcwJykge1xuICAgICAgICAgICAgdXJsLnNlYXJjaFBhcmFtcy5zZXQoa2V5LCB2YWx1ZSlcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdXJsLnNlYXJjaFBhcmFtcy5kZWxldGUoa2V5KVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBvdXRwdXRVcmwgPSB1cmwudG9TdHJpbmcoKVxuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy5hY2Nlc3NTZXJ2aWNlUHJvdG9jb2wgPT09ICd3ZnMnKSB7XG4gICAgICAgIGNvbnN0IHdmc0VuZHBvaW50ID0gbmV3IFdmc0VuZHBvaW50KHRoaXMuYXBpQmFzZVVybClcbiAgICAgICAgaWYgKGF3YWl0IHdmc0VuZHBvaW50LmlzUmVhZHkoKSkge1xuICAgICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgICAgICAgICBvdXRwdXRGb3JtYXQ6IGZvcm1hdCxcbiAgICAgICAgICAgIHN0YXJ0SW5kZXg6IE51bWJlcihvZmZzZXQpLFxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAobGltaXQgIT09ICctMScpIHtcbiAgICAgICAgICAgIG9wdGlvbnNbJ21heEZlYXR1cmVzJ10gPSBOdW1iZXIobGltaXQpXG4gICAgICAgICAgfVxuICAgICAgICAgIG91dHB1dFVybCA9IHdmc0VuZHBvaW50LmdldEZlYXR1cmVVcmwodGhpcy5hcGlGZWF0dXJlVHlwZSwgb3B0aW9ucylcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIG91dHB1dFVybFxuICAgIH0pXG4gIClcbiAgbm9MaW1pdENoZWNrZWQkID0gdGhpcy5saW1pdCQucGlwZShcbiAgICBtYXAoKGxpbWl0KSA9PiBsaW1pdCA9PT0gJy0xJyB8fCBsaW1pdCA9PT0gJycpXG4gIClcblxuICBkaXNwbGF5TGltaXQkID0gdGhpcy5saW1pdCQucGlwZShcbiAgICBtYXAoKGxpbWl0KSA9PiAobGltaXQgIT09ICctMScgPyBsaW1pdCA6ICcnKSlcbiAgKVxuXG4gIHNldE9mZnNldCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5vZmZzZXQkLm5leHQodmFsdWUpXG4gIH1cblxuICBzZXRMaW1pdCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgY29uc3QgbmV3TGltaXQgPSB2YWx1ZSA9PT0gJycgPyAnLTEnIDogdmFsdWVcbiAgICB0aGlzLmxpbWl0JC5uZXh0KG5ld0xpbWl0KVxuICB9XG5cbiAgc2V0Rm9ybWF0KHZhbHVlOiBzdHJpbmcgfCB1bmtub3duKSB7XG4gICAgdGhpcy5mb3JtYXQkLm5leHQoU3RyaW5nKHZhbHVlKSlcbiAgfVxuXG4gIHJlc2V0VXJsKCkge1xuICAgIHRoaXMub2Zmc2V0JC5uZXh0KERFRkFVTFRfUEFSQU1TLk9GRlNFVClcbiAgICB0aGlzLmxpbWl0JC5uZXh0KERFRkFVTFRfUEFSQU1TLkxJTUlUKVxuICAgIHRoaXMuZm9ybWF0JC5uZXh0KERFRkFVTFRfUEFSQU1TLkZPUk1BVClcbiAgfVxuXG4gIHBhcnNlT3V0cHV0Rm9ybWF0cygpIHtcbiAgICBjb25zdCBhcGlVcmwgPVxuICAgICAgdGhpcy5hcGlCYXNlVXJsLnNsaWNlKC0xKSA9PT0gJz8nXG4gICAgICAgID8gdGhpcy5hcGlCYXNlVXJsLnNsaWNlKDAsIC0xKVxuICAgICAgICA6IHRoaXMuYXBpQmFzZVVybFxuXG4gICAgdGhpcy5nZXRPdXRwdXRGb3JtYXRzKGFwaVVybCwgdGhpcy5hY2Nlc3NTZXJ2aWNlUHJvdG9jb2wpLnRoZW4oXG4gICAgICAob3V0cHV0Rm9ybWF0cykgPT4ge1xuICAgICAgICBsZXQgZm9ybWF0c0xpc3QgPSBbXVxuICAgICAgICBpZiAoJ2l0ZW1Gb3JtYXRzJyBpbiBvdXRwdXRGb3JtYXRzKSB7XG4gICAgICAgICAgZm9ybWF0c0xpc3QgPSB0aGlzLm1hcEZvcm1hdHMob3V0cHV0Rm9ybWF0cy5pdGVtRm9ybWF0cylcbiAgICAgICAgfSBlbHNlIGlmICgnb3V0cHV0Rm9ybWF0cycgaW4gb3V0cHV0Rm9ybWF0cykge1xuICAgICAgICAgIGZvcm1hdHNMaXN0ID0gdGhpcy5tYXBGb3JtYXRzKG91dHB1dEZvcm1hdHMub3V0cHV0Rm9ybWF0cylcbiAgICAgICAgfVxuICAgICAgICB0aGlzLm91dHB1dEZvcm1hdHMgPSB0aGlzLm91dHB1dEZvcm1hdHMuY29uY2F0KFxuICAgICAgICAgIGZvcm1hdHNMaXN0LmZpbHRlcihCb29sZWFuKVxuICAgICAgICApXG4gICAgICAgIHRoaXMub3V0cHV0Rm9ybWF0cyA9IHRoaXMub3V0cHV0Rm9ybWF0c1xuICAgICAgICAgIC5maWx0ZXIoXG4gICAgICAgICAgICAoZm9ybWF0LCBpbmRleCwgc2VsZikgPT5cbiAgICAgICAgICAgICAgaW5kZXggPT09IHNlbGYuZmluZEluZGV4KCh0KSA9PiB0LnZhbHVlID09PSBmb3JtYXQudmFsdWUpXG4gICAgICAgICAgKVxuICAgICAgICAgIC5zb3J0KChhLCBiKSA9PiBhLmxhYmVsLmxvY2FsZUNvbXBhcmUoYi5sYWJlbCkpXG4gICAgICB9XG4gICAgKVxuICB9XG5cbiAgbWFwRm9ybWF0cyhmb3JtYXRzOiBhbnlbXSkge1xuICAgIHJldHVybiBmb3JtYXRzLm1hcCgoZm9ybWF0KSA9PiB7XG4gICAgICBjb25zdCBub3JtYWxpemVkRm9ybWF0ID0gbWltZVR5cGVUb0Zvcm1hdChmb3JtYXQpXG4gICAgICBpZiAobm9ybWFsaXplZEZvcm1hdCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGxhYmVsOiBub3JtYWxpemVkRm9ybWF0LnRvVXBwZXJDYXNlKCksXG4gICAgICAgICAgdmFsdWU6IG5vcm1hbGl6ZWRGb3JtYXQsXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBudWxsXG4gICAgfSlcbiAgfVxuXG4gIGFzeW5jIGdldE91dHB1dEZvcm1hdHModXJsOiBzdHJpbmcsIGFjY2Vzc1NlcnZpY2VQcm90b2NvbDogc3RyaW5nKSB7XG4gICAgaWYgKGFjY2Vzc1NlcnZpY2VQcm90b2NvbCA9PT0gJ3dmcycpIHtcbiAgICAgIGNvbnN0IGVuZHBvaW50ID0gYXdhaXQgbmV3IFdmc0VuZHBvaW50KHVybCkuaXNSZWFkeSgpXG4gICAgICB0aGlzLnN1cHBvcnRPZmZzZXQgPSBlbmRwb2ludC5zdXBwb3J0c1N0YXJ0SW5kZXgoKVxuICAgICAgcmV0dXJuIGVuZHBvaW50LmdldFNlcnZpY2VJbmZvKClcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgZW5kcG9pbnQgPSBhd2FpdCBuZXcgT2djQXBpRW5kcG9pbnQodXJsKVxuICAgICAgY29uc3QgZmlyc3RDb2xsZWN0aW9uID0gKGF3YWl0IGVuZHBvaW50LmZlYXR1cmVDb2xsZWN0aW9ucylbMF1cbiAgICAgIHJldHVybiBlbmRwb2ludC5nZXRDb2xsZWN0aW9uSW5mbyhmaXJzdENvbGxlY3Rpb24pXG4gICAgfVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBnYXAtOFwiPlxuICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBiZy13aGl0ZSBwLTggbmctc3Rhci1pbnNlcnRlZCBzaGFkb3cteGwgZ2FwLThcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvd1wiPlxuICAgICAgPGRpdiBjbGFzcz1cInRleHQtWzE2cHhdIHRleHQtYmxhY2sgdHJ1bmNhdGUgZm9udC10aXRsZSB3LTExLzEyXCIgdHJhbnNsYXRlPlxuICAgICAgICByZWNvcmQubWV0YWRhdGEuYXBpLmZvcm0uY3JlYXRlXG4gICAgICA8L2Rpdj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgKGNsaWNrKT1cInJlc2V0VXJsKClcIlxuICAgICAgICBjbGFzcz1cImJnLXByaW1hcnktb3BhY2l0eS01MCBpbmxpbmUtZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgcHgtMiBweS0xIHRleHQtMTMgZm9udC1tZWRpdW0gbGVhZGluZy1ub25lIHRleHQtd2hpdGUgcm91bmRlZCBjYXBpdGFsaXplIHRleHQtcHJpbWFyeS1saWdodGVzdCBob3ZlcjpiZy1wcmltYXJ5IHRyYW5zaXRpb24tY29sb3JzXCJcbiAgICAgID5cbiAgICAgICAgPHAgY2xhc3M9XCJ0ZXh0LVsxM3B4XSB1cHBlcmNhc2VcIiB0cmFuc2xhdGU+XG4gICAgICAgICAgcmVjb3JkLm1ldGFkYXRhLmFwaS5mb3JtLnJlc2V0XG4gICAgICAgIDwvcD5cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93IGZsZXgtd3JhcCBqdXN0aWZ5LWJldHdlZW4gZ3JvdyBnYXAtNVwiPlxuICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgZ2FwLTNcIj5cbiAgICAgICAgPHAgY2xhc3M9XCJ0ZXh0LVsxNHB4XVwiIHRyYW5zbGF0ZT5yZWNvcmQubWV0YWRhdGEuYXBpLmZvcm0ubGltaXQ8L3A+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93IGl0ZW1zLWNlbnRlciBnYXAtMlwiPlxuICAgICAgICAgIDxnbi11aS10ZXh0LWlucHV0XG4gICAgICAgICAgICBjbGFzcz1cIm1yLTIgdy0yMFwiXG4gICAgICAgICAgICAodmFsdWVDaGFuZ2UpPVwic2V0TGltaXQoJGV2ZW50KVwiXG4gICAgICAgICAgICBbdmFsdWVdPVwiZGlzcGxheUxpbWl0JCB8IGFzeW5jXCJcbiAgICAgICAgICAgIGhpbnQ9XCJcIlxuICAgICAgICAgID5cbiAgICAgICAgICA8L2duLXVpLXRleHQtaW5wdXQ+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgY2xhc3M9XCJtci0yIGN1cnNvci1wb2ludGVyXCJcbiAgICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgICAgICAgICAgW2NoZWNrZWRdPVwibm9MaW1pdENoZWNrZWQkIHwgYXN5bmNcIlxuICAgICAgICAgICAgICAoY2hhbmdlKT1cInNldExpbWl0KCctMScpXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtc21cIiB0cmFuc2xhdGVcbiAgICAgICAgICAgICAgPnJlY29yZC5tZXRhZGF0YS5hcGkuZm9ybS5saW1pdC5hbGw8L3NwYW5cbiAgICAgICAgICAgID5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGdhcC0zIHJlbGF0aXZlXCI+XG4gICAgICAgIDxwIGNsYXNzPVwidGV4dC1zbVwiIFtjbGFzcy50ZXh0LWdyYXktNjAwXT1cIiFzdXBwb3J0T2Zmc2V0XCIgdHJhbnNsYXRlPlxuICAgICAgICAgIHJlY29yZC5tZXRhZGF0YS5hcGkuZm9ybS5vZmZzZXRcbiAgICAgICAgPC9wPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICA8Z24tdWktdGV4dC1pbnB1dFxuICAgICAgICAgICAgY2xhc3M9XCJ3LTIwXCJcbiAgICAgICAgICAgIFt2YWx1ZV09XCJvZmZzZXQkIHwgYXN5bmNcIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiFzdXBwb3J0T2Zmc2V0XCJcbiAgICAgICAgICAgICh2YWx1ZUNoYW5nZSk9XCJzdXBwb3J0T2Zmc2V0ID8gc2V0T2Zmc2V0KCRldmVudCkgOiBudWxsXCJcbiAgICAgICAgICAgIGhpbnQ9XCJcIlxuICAgICAgICAgID5cbiAgICAgICAgICA8L2duLXVpLXRleHQtaW5wdXQ+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgKm5nSWY9XCIhc3VwcG9ydE9mZnNldFwiXG4gICAgICAgICAgICBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGdhcC0yIHRleHQtb3JhbmdlLTUwMCB6LTEwIG1sLTNcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgIGNsYXNzPVwibWF0ZXJpYWwtc3ltYm9scy1vdXRsaW5lZFwiXG4gICAgICAgICAgICAgIG1hdFRvb2x0aXA9XCJOb3Qgc3VwcG9ydGVkIG9uIHRoaXMgc2VydmljZVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHdhcm5pbmdcbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGdhcC0zXCI+XG4gICAgICAgIDxwIGNsYXNzPVwidGV4dC1zbVwiIHRyYW5zbGF0ZT5yZWNvcmQubWV0YWRhdGEuYXBpLmZvcm0udHlwZTwvcD5cbiAgICAgICAgPGduLXVpLWRyb3Bkb3duLXNlbGVjdG9yXG4gICAgICAgICAgI2Ryb3Bkb3duXG4gICAgICAgICAgW3RpdGxlXT1cIicnXCJcbiAgICAgICAgICBleHRyYUJ0bkNsYXNzPVwic2Vjb25kYXJ5IG1pbi13LWZ1bGwgIXctNDAgIXRleHQtYmxhY2tcIlxuICAgICAgICAgIFtzaG93VGl0bGVdPVwiZmFsc2VcIlxuICAgICAgICAgIGNsYXNzPVwidGV4dC1ibGFja1wiXG4gICAgICAgICAgW2Nob2ljZXNdPVwib3V0cHV0Rm9ybWF0c1wiXG4gICAgICAgICAgKHNlbGVjdFZhbHVlKT1cInNldEZvcm1hdCgkZXZlbnQpXCJcbiAgICAgICAgICBbc2VsZWN0ZWRdPVwiZm9ybWF0JCB8IGFzeW5jXCJcbiAgICAgICAgPjwvZ24tdWktZHJvcGRvd24tc2VsZWN0b3I+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGdhcC0zIG1iLTNcIj5cbiAgICA8ZGl2IGNsYXNzPVwidGV4dC1zbSB0ZXh0LWJsYWNrIHRydW5jYXRlIGZvbnQtdGl0bGUgdy0xMS8xMlwiIHRyYW5zbGF0ZT5cbiAgICAgIHJlY29yZC5tZXRhZGF0YS5hcGkuZm9ybS5jdXN0b21VcmxcbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiYmctd2hpdGUgcm91bmRlZC1sZ1wiPlxuICAgICAgPGduLXVpLWNvcHktdGV4dC1idXR0b25cbiAgICAgICAgW3RleHRdPVwiYXBpUXVlcnlVcmwkIHwgYXN5bmNcIlxuICAgICAgPjwvZ24tdWktY29weS10ZXh0LWJ1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -1,3 +1,4 @@
1
+ import { CommonModule } from '@angular/common';
1
2
  import { ChangeDetectionStrategy, Component, ElementRef, Inject, InjectionToken, Input, Optional, ViewChild, Output, EventEmitter, } from '@angular/core';
2
3
  import * as i0 from "@angular/core";
3
4
  import * as i1 from "@angular/common";
@@ -69,11 +70,11 @@ export class ThumbnailComponent {
69
70
  }
70
71
  }
71
72
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: ThumbnailComponent, deps: [{ token: THUMBNAIL_PLACEHOLDER, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
72
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: ThumbnailComponent, selector: "gn-ui-thumbnail", inputs: { thumbnailUrl: "thumbnailUrl", fit: "fit" }, outputs: { placeholderShown: "placeholderShown" }, viewQueries: [{ propertyName: "imgElement", first: true, predicate: ["imageElement"], descendants: true }, { propertyName: "containerElement", first: true, predicate: ["containerElement"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div\n #containerElement\n class=\"h-full w-full relative shrink-0 overflow-hidden flex items-center justify-center\"\n [ngClass]=\"isPlaceholder ? 'bg-gray-100' : 'bg-white'\"\n [attr.data-cy-is-placeholder]=\"isPlaceholder.toString()\"\n>\n <img\n #imageElement\n class=\"relative w-full object-center\"\n [ngClass]=\"imgFit === 'contain' ? 'h-4/5 w-4/5' : 'h-full'\"\n [ngStyle]=\"{ objectFit: imgFit }\"\n alt=\"thumbnail\"\n loading=\"lazy\"\n (load)=\"setObjectFit()\"\n [src]=\"imgUrl\"\n (error)=\"useFallback()\"\n />\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
73
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: ThumbnailComponent, isStandalone: true, selector: "gn-ui-thumbnail", inputs: { thumbnailUrl: "thumbnailUrl", fit: "fit" }, outputs: { placeholderShown: "placeholderShown" }, viewQueries: [{ propertyName: "imgElement", first: true, predicate: ["imageElement"], descendants: true }, { propertyName: "containerElement", first: true, predicate: ["containerElement"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div\n #containerElement\n class=\"h-full w-full relative shrink-0 overflow-hidden flex items-center justify-center\"\n [ngClass]=\"isPlaceholder ? 'bg-gray-100' : 'bg-white'\"\n [attr.data-cy-is-placeholder]=\"isPlaceholder.toString()\"\n>\n <img\n #imageElement\n class=\"relative w-full object-center\"\n [ngClass]=\"imgFit === 'contain' ? 'h-4/5 w-4/5' : 'h-full'\"\n [ngStyle]=\"{ objectFit: imgFit }\"\n alt=\"thumbnail\"\n loading=\"lazy\"\n (load)=\"setObjectFit()\"\n [src]=\"imgUrl\"\n (error)=\"useFallback()\"\n />\n</div>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
73
74
  }
74
75
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: ThumbnailComponent, decorators: [{
75
76
  type: Component,
76
- args: [{ selector: 'gn-ui-thumbnail', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n #containerElement\n class=\"h-full w-full relative shrink-0 overflow-hidden flex items-center justify-center\"\n [ngClass]=\"isPlaceholder ? 'bg-gray-100' : 'bg-white'\"\n [attr.data-cy-is-placeholder]=\"isPlaceholder.toString()\"\n>\n <img\n #imageElement\n class=\"relative w-full object-center\"\n [ngClass]=\"imgFit === 'contain' ? 'h-4/5 w-4/5' : 'h-full'\"\n [ngStyle]=\"{ objectFit: imgFit }\"\n alt=\"thumbnail\"\n loading=\"lazy\"\n (load)=\"setObjectFit()\"\n [src]=\"imgUrl\"\n (error)=\"useFallback()\"\n />\n</div>\n" }]
77
+ args: [{ selector: 'gn-ui-thumbnail', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CommonModule], template: "<div\n #containerElement\n class=\"h-full w-full relative shrink-0 overflow-hidden flex items-center justify-center\"\n [ngClass]=\"isPlaceholder ? 'bg-gray-100' : 'bg-white'\"\n [attr.data-cy-is-placeholder]=\"isPlaceholder.toString()\"\n>\n <img\n #imageElement\n class=\"relative w-full object-center\"\n [ngClass]=\"imgFit === 'contain' ? 'h-4/5 w-4/5' : 'h-full'\"\n [ngStyle]=\"{ objectFit: imgFit }\"\n alt=\"thumbnail\"\n loading=\"lazy\"\n (load)=\"setObjectFit()\"\n [src]=\"imgUrl\"\n (error)=\"useFallback()\"\n />\n</div>\n" }]
77
78
  }], ctorParameters: function () { return [{ type: undefined, decorators: [{
78
79
  type: Optional
79
80
  }, {
@@ -92,4 +93,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
92
93
  }], placeholderShown: [{
93
94
  type: Output
94
95
  }] } });
95
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGh1bWJuYWlsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvZWxlbWVudHMvc3JjL2xpYi90aHVtYm5haWwvdGh1bWJuYWlsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvZWxlbWVudHMvc3JjL2xpYi90aHVtYm5haWwvdGh1bWJuYWlsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFVBQVUsRUFDVixNQUFNLEVBQ04sY0FBYyxFQUNkLEtBQUssRUFHTCxRQUFRLEVBRVIsU0FBUyxFQUNULE1BQU0sRUFDTixZQUFZLEdBQ2IsTUFBTSxlQUFlLENBQUE7OztBQUV0QixNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLGNBQWMsQ0FDckQsdUJBQXVCLENBQ3hCLENBQUE7QUFPRCxNQUFNLG1CQUFtQixHQUN2Qiw0eUNBQTR5QyxDQUFBO0FBUzl5QyxNQUFNLE9BQU8sa0JBQWtCO0lBUzdCLElBQUksYUFBYTtRQUNmLE9BQU8sSUFBSSxDQUFDLE1BQU0sS0FBSyxJQUFJLENBQUMsY0FBYyxDQUFBO0lBQzVDLENBQUM7SUFHRCxZQUdVLHNCQUE4QjtRQUE5QiwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQVE7UUFmL0IsUUFBRyxHQUE4QixPQUFPLENBQUE7UUFHdkMscUJBQWdCLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQTtRQUd4RCxtQkFBYyxHQUFHLElBQUksQ0FBQyxzQkFBc0IsSUFBSSxtQkFBbUIsQ0FBQTtRQUkzRCxXQUFNLEdBQTJCLEVBQUUsQ0FBQTtJQU14QyxDQUFDO0lBRUosUUFBUTtRQUNOLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQTtJQUN4QixDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksQ0FBQyxDQUFD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OzBCQWlCNUMsUUFBUTs7MEJBQ1IsTUFBTTsyQkFBQyxxQkFBcUI7NENBZnRCLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csR0FBRztzQkFBWCxLQUFLO2dCQUNxQixVQUFVO3NCQUFwQyxTQUFTO3VCQUFDLGNBQWM7Z0JBQ00sZ0JBQWdCO3NCQUE5QyxTQUFTO3VCQUFDLGtCQUFrQjtnQkFDbkIsZ0JBQWdCO3NCQUF6QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSW5qZWN0LFxuICBJbmplY3Rpb25Ub2tlbixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25Jbml0LFxuICBPcHRpb25hbCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVmlld0NoaWxkLFxuICBPdXRwdXQsXG4gIEV2ZW50RW1pdHRlcixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcblxuZXhwb3J0IGNvbnN0IFRIVU1CTkFJTF9QTEFDRUhPTERFUiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxzdHJpbmc+KFxuICAndGh1bWJuYWlsLXBsYWNlaG9sZGVyJ1xuKVxuXG50eXBlIFRodW1ibmFpbEltYWdlT2JqZWN0ID0ge1xuICB1cmw6IHN0cmluZ1xuICBmaXQ/OiAnY292ZXInIHwgJ2NvbnRhaW4nIHwgJ3NjYWxlLWRvd24nXG59XG5cbmNvbnN0IERFRkFVTFRfUExBQ0VIT0xERVIgPVxuICAnZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFHQUFBQUJnQ0FZQUFBRGltSGM0QUFBQUJtSkxSMFFBL3dEL0FQK2d2YWVUQUFBQUNYQklXWE1BQUEzWEFBQU4xd0ZDS0p0NEFBQUFCM1JKVFVVSDVna05EQ1VGWWpBMW53QUFBMXBKUkVGVWVOcnRuVzJUbWpBVVJoOENMbFRkcm11bi8vLzN0WjIyK3pMdVlsZWhIN2pzTUdvZ3dSaWllYzRNTTQ0SzZEM3gzaEF3QUlRUVFnZ2hoSkRZU001Y1B3TlFBTWdCcEFDVWcyMkdUZzJnQXJBRDhBOUFLWSs5Q3NnQUxBRjhZUnNHQUx3RGVBV3c5eUdnQUxDS29LV1ArV1U4aXd4alVzdWRMQmo4M3NaY2lJaVBTd2hvV3o3cEo1ZFVaRlFYbEVYT1ovRE5lVEJ0M0puaEJwYzlhYWNHc09uMEJ1b0lVazNiKzV0ckduRUM0QjdBazRzVWxJblJVK3dCL0piZ1Z4RzE4S3JUQmMwMUVtWW1jVEZKUVVWUHkvOXpUaC80QnRoTERPcWVlbkIyRGRCdFpCTjU4THNTTnBjVW9FdFRKV00vR0l2TWhRRGRlOWo2aDJPaFhBam82LzJRL2xna0xnU1FDMElCRkVBQlpFS3lpYVF2NUFBdjdmU2xTK2xQVnhSd09YVG5FdG9UUEFzMDR5ZlJIR01vejhGL0hPaWFKZktlZ2dMYzc4ZG1PSHNWUzMzeTlTVVhzRHVMbHNnNkZPQXcvZmhZaHdJMHBKN1dvUUFTcG9DOXAzVW9RRVBwYVIwSzBMQ0IzZkIxZTZLZkFoeFJ3ZUFLZ1E1UHNReEorQ3pDSllDL0E3K0VXdDRUelZDRTc3R2dFc0JQSEEvRzdRQnN3Y0U0Yitub1ZSWjJReGtDQ3FBQVFnRVVRQ2lBQWdnRlVBQ2hBQW9nRkVBQmhBSmNmVDlGQWRPeFF1Qi9NTDlsQWZkby9xV1l5Mk1LOEVpTzVtcnJsaVVDdmRJdWRBRXpXV3pReld1eHdqUm5BSzlXd0F6QVdoWlRDZTNsN2NyeU5RclFCTC90eFpoS0dHcmx3YzM2b2dJUGZ2ZHpmaHVRc0RETTgwRVZaWFVGd2UrbUVKMkVPd0JmTGZZVFRGRldWeEw4UXdsM25lZFN5ZTFqamhFeUNqQVBmbGZDV2lTY1UxaURLTXJxeW9KL0tPRnhSRGYxc0NnL3hDeGdUUEM3RW5JSG42R1lzaWlyS3cyK2F5WXJ5b3JCbjdZb0t3Yi9xQ2dudHl3ZzFPQlBkcVNzR1B5VFJYbnAwN2d2UGdEOEFBbDZLSUlDQ0FWUUFBbEx3T2c1TVNOaTlOeXFKZ0txQUhwUW9aTlp4czVLZ0c3U0RON0FaemdXT3hjQ3Rwcm41L3dWZkxiK3VXWHNyQVNVUFhsdkhibUVUR0tRakJWZ01pdFZKVHVhYVFTMnQvR29FTWVFM29uRW9yMmpsSzRSdndONEcxdTlUNG42enA2UE1UV0FYekNZZENxMTJPQ09oZGVZWnpUM21JRXJBVzFGcitIbU5PQXQ4MktTZXNZSUFKb1J6UjJhSVZ1bW8rTXM4V3dUL0hPT1psTTBZK1p6eHYyenAvZ0NUemZ6UE95R3RkZmdwN0xFY0R2YnZTeGJXWGcvSFVJSUlZUVFRb2d4L3dITG9YN05vQ01GUHdBQUFBQkpSVTVFcmtKZ2dnPT0nXG5cbnR5cGUgRml0T3B0aW9ucyA9ICdjb3ZlcicgfCAnY29udGFpbicgfCAnc2NhbGUtZG93bidcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ24tdWktdGh1bWJuYWlsJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RodW1ibmFpbC5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBUaHVtYm5haWxDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpIHRodW1ibmFpbFVybDogc3RyaW5nIHwgc3RyaW5nW11cbiAgQElucHV0KCkgZml0OiBGaXRPcHRpb25zIHwgRml0T3B0aW9uc1tdID0gJ2NvdmVyJ1xuICBAVmlld0NoaWxkKCdpbWFnZUVsZW1lbnQnKSBpbWdFbGVtZW50OiBFbGVtZW50UmVmPEhUTUxJbWFnZUVsZW1lbnQ+XG4gIEBWaWV3Q2hpbGQoJ2NvbnRhaW5lckVsZW1lbnQnKSBjb250YWluZXJFbGVtZW50OiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PlxuICBAT3V0cHV0KCkgcGxhY2Vob2xkZXJTaG93biA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKVxuICBpbWdVcmw6IHN0cmluZ1xuICBpbWdGaXQ6IEZpdE9wdGlvbnNcbiAgcGxhY2Vob2xkZXJVcmwgPSB0aGlzLm9wdGlvbmFsUGxhY2Vob2xkZXJVcmwgfHwgREVGQVVMVF9QTEFDRUhPTERFUlxuICBnZXQgaXNQbGFjZWhvbGRlcigpIHtcbiAgICByZXR1cm4gdGhpcy5pbWdVcmwgPT09IHRoaXMucGxhY2Vob2xkZXJVcmxcbiAgfVxuICBwcml2YXRlIGltYWdlczogVGh1bWJuYWlsSW1hZ2VPYmplY3RbXSA9IFtdXG5cbiAgY29uc3RydWN0b3IoXG4gICAgQE9wdGlvbmFsKClcbiAgICBASW5qZWN0KFRIVU1CTkFJTF9QTEFDRUhPTERFUilcbiAgICBwcml2YXRlIG9wdGlvbmFsUGxhY2Vob2xkZXJVcmw6IHN0cmluZ1xuICApIHt9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy51cGRhdGVJbWFnZUxpc3QoKVxuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmICghKCd0aHVtYm5haWxVcmwnIGluIGNoYW5nZXMpICYmICEoJ2ZpdCcgaW4gY2hhbmdlcykpIHtcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICB0aGlzLnVwZGF0ZUltYWdlTGlzdCgpXG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZUltYWdlTGlzdCgpIHtcbiAgICBpZiAoIXRoaXMudGh1bWJuYWlsVXJsKSB7XG4gICAgICB0aGlzLnNldFBsYWNlaG9sZGVyKClcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICBjb25zdCB1cmxzID0gQXJyYXkuaXNBcnJheSh0aGlzLnRodW1ibmFpbFVybClcbiAgICAgID8gdGhpcy50aHVtYm5haWxVcmxcbiAgICAgIDogW3RoaXMudGh1bWJuYWlsVXJsXVxuICAgIHRoaXMuaW1hZ2VzID0gdXJsc1xuICAgICAgLm1hcCgodXJsLCBpbmRleCkgPT4gKHtcbiAgICAgICAgdXJsLFxuICAgICAgICBmaXQ6IChBcnJheS5pc0FycmF5KHRoaXMuZml0KSA/IHRoaXMuZml0W2luZGV4XSA6IHRoaXMuZml0KSB8fCAnY292ZXInLFxuICAgICAgfSkpXG4gICAgICAuZmlsdGVyKChpbWcpID0+ICEhaW1nLnVybClcbiAgICBpZiAoIXRoaXMuaW1hZ2VzLmxlbmd0aCkge1xuICAgICAgdGhpcy5zZXRQbGFjZWhvbGRlcigpXG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgdGhpcy5zZXROZXdTcmNJbWFnZSh0aGlzLmltYWdlc1swXSlcbiAgfVxuXG4gIHByaXZhdGUgc2V0TmV3U3JjSW1hZ2UoaW1hZ2U6IFRodW1ibmFpbEltYWdlT2JqZWN0KSB7XG4gICAgdGhpcy5pbWdGaXQgPSBpbWFnZS5maXRcbiAgICB0aGlzLmltZ1VybCA9IGltYWdlLnVybFxuICAgIHRoaXMucGxhY2Vob2xkZXJTaG93bi5lbWl0KHRoaXMuaXNQbGFjZWhvbGRlcilcbiAgfVxuXG4gIHByaXZhdGUgc2V0UGxhY2Vob2xkZXIoKTogdm9pZCB7XG4gICAgdGhpcy5zZXROZXdTcmNJbWFnZSh7IHVybDogdGhpcy5wbGFjZWhvbGRlclVybCwgZml0OiAnc2NhbGUtZG93bicgfSlcbiAgfVxuXG4gIHVzZUZhbGxiYWNrKCkge1xuICAgIGlmICh0aGlzLmltYWdlcy5sZW5ndGggPiAxKSB7XG4gICAgICB0aGlzLmltYWdlcy5zaGlmdCgpXG4gICAgICB0aGlzLnNldE5ld1NyY0ltYWdlKHRoaXMuaW1hZ2VzWzBdKVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNldFBsYWNlaG9sZGVyKClcbiAgICB9XG4gIH1cblxuICBzZXRPYmplY3RGaXQoKSB7XG4gICAgY29uc3QgY3cgPSB0aGlzLmNvbnRhaW5lckVsZW1lbnQ/Lm5hdGl2ZUVsZW1lbnQ/LmNsaWVudFdpZHRoXG4gICAgY29uc3QgY2ggPSB0aGlzLmNvbnRhaW5lckVsZW1lbnQ/Lm5hdGl2ZUVsZW1lbnQ/LmNsaWVudEhlaWdodFxuICAgIGlmIChcbiAgICAgIHRoaXMuaW1nRWxlbWVudC5uYXRpdmVFbGVtZW50Lm5hdHVyYWxXaWR0aCA8IGN3ICYmXG4gICAgICB0aGlzLmltZ0VsZW1lbnQubmF0aXZlRWxlbWVudC5uYXR1cmFsSGVpZ2h0IDwgY2hcbiAgICApIHtcbiAgICAgIHRoaXMuaW1nRml0ID0gJ3NjYWxlLWRvd24nXG4gICAgfVxuICB9XG59XG4iLCI8ZGl2XG4gICNjb250YWluZXJFbGVtZW50XG4gIGNsYXNzPVwiaC1mdWxsIHctZnVsbCByZWxhdGl2ZSBzaHJpbmstMCBvdmVyZmxvdy1oaWRkZW4gZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXJcIlxuICBbbmdDbGFzc109XCJpc1BsYWNlaG9sZGVyID8gJ2JnLWdyYXktMTAwJyA6ICdiZy13aGl0ZSdcIlxuICBbYXR0ci5kYXRhLWN5LWlzLXBsYWNlaG9sZGVyXT1cImlzUGxhY2Vob2xkZXIudG9TdHJpbmcoKVwiXG4+XG4gIDxpbWdcbiAgICAjaW1hZ2VFbGVtZW50XG4gICAgY2xhc3M9XCJyZWxhdGl2ZSB3LWZ1bGwgb2JqZWN0LWNlbnRlclwiXG4gICAgW25nQ2xhc3NdPVwiaW1nRml0ID09PSAnY29udGFpbicgPyAnaC00LzUgdy00LzUnIDogJ2gtZnVsbCdcIlxuICAgIFtuZ1N0eWxlXT1cInsgb2JqZWN0Rml0OiBpbWdGaXQgfVwiXG4gICAgYWx0PVwidGh1bWJuYWlsXCJcbiAgICBsb2FkaW5nPVwibGF6eVwiXG4gICAgKGxvYWQpPVwic2V0T2JqZWN0Rml0KClcIlxuICAgIFtzcmNdPVwiaW1nVXJsXCJcbiAgICAoZXJyb3IpPVwidXNlRmFsbGJhY2soKVwiXG4gIC8+XG48L2Rpdj5cbiJdfQ==
96
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGh1bWJuYWlsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvZWxlbWVudHMvc3JjL2xpYi90aHVtYm5haWwvdGh1bWJuYWlsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvZWxlbWVudHMvc3JjL2xpYi90aHVtYm5haWwvdGh1bWJuYWlsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUM5QyxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsTUFBTSxFQUNOLGNBQWMsRUFDZCxLQUFLLEVBR0wsUUFBUSxFQUVSLFNBQVMsRUFDVCxNQUFNLEVBQ04sWUFBWSxHQUNiLE1BQU0sZUFBZSxDQUFBOzs7QUFFdEIsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsSUFBSSxjQUFjLENBQ3JELHVCQUF1QixDQUN4QixDQUFBO0FBUUQsTUFBTSxtQkFBbUIsR0FDdkIsNHlDQUE0eUMsQ0FBQTtBQVM5eUMsTUFBTSxPQUFPLGtCQUFrQjtJQVM3QixJQUFJLGFBQWE7UUFDZixPQUFPLElBQUksQ0FBQyxNQUFNLEtBQUssSUFBSSxDQUFDLGNBQWMsQ0FBQTtJQUM1QyxDQUFDO0lBR0QsWUFHVSxzQkFBOEI7UUFBOUIsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUFRO1FBZi9CLFFBQUcsR0FBOEIsT0FBTyxDQUFBO1FBR3ZDLHFCQUFnQixHQUFHLElBQUksWUFBWSxFQUFXLENBQUE7UUFHeEQsbUJBQWMsR0FBRyxJQUFJLENBQUMsc0JBQXNCLElBQUksbUJBQW1CLENBQUE7UUFJM0QsV0FBTSxHQUEyQixFQUFFLENBQUE7SUFNeEMsQ0FBQztJQUVKLFFBQVE7UUFDTixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUE7SUFDeEIsQ0FB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QkFBa0I7a0JBUDlCLFNBQVM7K0JBQ0UsaUJBQWlCLG1CQUVWLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQLENBQUMsWUFBWSxDQUFDOzswQkFpQnBCLFFBQVE7OzBCQUNSLE1BQU07MkJBQUMscUJBQXFCOzRDQWZ0QixZQUFZO3NCQUFwQixLQUFLO2dCQUNHLEdBQUc7c0JBQVgsS0FBSztnQkFDcUIsVUFBVTtzQkFBcEMsU0FBUzt1QkFBQyxjQUFjO2dCQUNNLGdCQUFnQjtzQkFBOUMsU0FBUzt1QkFBQyxrQkFBa0I7Z0JBQ25CLGdCQUFnQjtzQkFBekIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbidcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEluamVjdCxcbiAgSW5qZWN0aW9uVG9rZW4sXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uSW5pdCxcbiAgT3B0aW9uYWwsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFZpZXdDaGlsZCxcbiAgT3V0cHV0LFxuICBFdmVudEVtaXR0ZXIsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5cbmV4cG9ydCBjb25zdCBUSFVNQk5BSUxfUExBQ0VIT0xERVIgPSBuZXcgSW5qZWN0aW9uVG9rZW48c3RyaW5nPihcbiAgJ3RodW1ibmFpbC1wbGFjZWhvbGRlcidcbilcblxudHlwZSBGaXRPcHRpb25zID0gJ2NvdmVyJyB8ICdjb250YWluJyB8ICdzY2FsZS1kb3duJ1xudHlwZSBUaHVtYm5haWxJbWFnZU9iamVjdCA9IHtcbiAgdXJsOiBzdHJpbmdcbiAgZml0PzogRml0T3B0aW9uc1xufVxuXG5jb25zdCBERUZBVUxUX1BMQUNFSE9MREVSID1cbiAgJ2RhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBR0FBQUFCZ0NBWUFBQURpbUhjNEFBQUFCbUpMUjBRQS93RC9BUCtndmFlVEFBQUFDWEJJV1hNQUFBM1hBQUFOMXdGQ0tKdDRBQUFBQjNSSlRVVUg1Z2tORENVRllqQTFud0FBQTFwSlJFRlVlTnJ0blcyVG1qQVVSaDhDTGxUZHJtdW4vLy8zdFoyMit6THVZbGVoSDdqc01Hb2d3UmlpZWM0TU00NEs2RDN4M2hBd0FJUVFRZ2doaEpEWVNNNWNQd05RQU1nQnBBQ1VnMjJHVGcyZ0FyQUQ4QTlBS1krOUNzZ0FMQUY4WVJzR0FMd0RlQVd3OXlHZ0FMQ0tvS1dQK1dVOGl3eGpVc3VkTEJqODNzWmNpSWlQU3dob1d6N3BKNWRVWkZRWGxFWE9aL0ROZVRCdDNKbmhCcGM5YWFjR3NPbjBCdW9JVWszYis1dHJHbkVDNEI3QWs0c1VsSW5SVSt3Qi9KYmdWeEcxOEtyVEJjMDFFbVltY1RGSlFVVlB5Lzl6VGgvNEJ0aExET3FlZW5CMkRkQnRaQk41OExzU05wY1VvRXRUSldNL0dJdk1oUURkZTlqNmgyT2hYQWpvNi8yUS9sZ2tMZ1NRQzBJQkZFQUJaRUt5aWFRdjVBQXY3ZlNsUytsUFZ4UndPWFRuRXRvVFBBczA0eWZSSEdNb3o4Ri9IT2lhSmZLZWdnTGM3OGRtT0hzVlMzM3k5U1VYc0R1TGxzZzZGT0F3L2ZoWWh3STBwSjdXb1FBU3BvQzlwM1VvUUVQcGFSMEswTENCM2ZCMWU2S2ZBaHhSd2VBS2dRNVBzUXhKK0N6Q0pZQy9BNytFV3Q0VHpWQ0U3N0dnRXNCUEhBL0c3UUJzd2NFNGIrbm9WUloyUXhrQ0NxQUFRZ0VVUUNpQUFnZ0ZVQUNoQUFvZ0ZFQUJoQUpjZlQ5RkFkT3hRdUIvTUw5bEFmZG8vcVdZeTJNSzhFaU81bXJybGlVQ3ZkSXVkQUV6V1d6UXpXdXh3alJuQUs5V3dBekFXaFpUQ2UzbDdjcnlOUXJRQkwvdHhaaEtHR3Jsd2MzNm9nSVBmdmR6Zmh1UXNERE04MEVWWlhVRndlK21FSjJFT3dCZkxmWVRURkZXVnhMOFF3bDNuZWRTeWUxampoRXlDakFQZmxmQ1dpU2NVMWlES01ycXlvSi9LT0Z4UkRmMXNDZy94Q3hnVFBDN0VuSUhuNkdZc2lpckt3MitheVlyeW9yQm43WW9Ld2IvcUNnbnR5d2cxT0JQZHFTc0dQeVRSWG5wMDdndlBnRDhBQWw2S0lJQ0NBVlFBQWxMd09nNU1TTmk5TnlxSmdLcUFIcFFvWk5aeHM1S2dHN1NETjdBWnpnV094Y0N0cHJuNS93VmZMYit1V1hzckFTVVBYbHZIYm1FVEdLUWpCVmdNaXRWSlR1YWFRUzJ0L0dvRU1lRTNvbkVvcjJqbEs0UnZ3TjRHMXU5VDRuNnpwNlBNVFdBWHpDWWRDcTEyT0NPaGRlWVp6VDNtSUVyQVcxRnIrSG1OT0F0ODJLU2VzWUlBSm9SelIyYUlWdW1vK01zOFd3VC9IT09abE0wWStaenh2MnpwL2dDVHpmelBPeUd0ZGZncDdMRWNEdmJ2U3hiV1hnL0hVSUlJWVFRUW9neC93SExvWDdOb0NNRlB3QUFBQUJKUlU1RXJrSmdnZz09J1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdnbi11aS10aHVtYm5haWwnLFxuICB0ZW1wbGF0ZVVybDogJy4vdGh1bWJuYWlsLmNvbXBvbmVudC5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxufSlcbmV4cG9ydCBjbGFzcyBUaHVtYm5haWxDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpIHRodW1ibmFpbFVybDogc3RyaW5nIHwgc3RyaW5nW11cbiAgQElucHV0KCkgZml0OiBGaXRPcHRpb25zIHwgRml0T3B0aW9uc1tdID0gJ2NvdmVyJ1xuICBAVmlld0NoaWxkKCdpbWFnZUVsZW1lbnQnKSBpbWdFbGVtZW50OiBFbGVtZW50UmVmPEhUTUxJbWFnZUVsZW1lbnQ+XG4gIEBWaWV3Q2hpbGQoJ2NvbnRhaW5lckVsZW1lbnQnKSBjb250YWluZXJFbGVtZW50OiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PlxuICBAT3V0cHV0KCkgcGxhY2Vob2xkZXJTaG93biA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKVxuICBpbWdVcmw6IHN0cmluZ1xuICBpbWdGaXQ6IEZpdE9wdGlvbnNcbiAgcGxhY2Vob2xkZXJVcmwgPSB0aGlzLm9wdGlvbmFsUGxhY2Vob2xkZXJVcmwgfHwgREVGQVVMVF9QTEFDRUhPTERFUlxuICBnZXQgaXNQbGFjZWhvbGRlcigpIHtcbiAgICByZXR1cm4gdGhpcy5pbWdVcmwgPT09IHRoaXMucGxhY2Vob2xkZXJVcmxcbiAgfVxuICBwcml2YXRlIGltYWdlczogVGh1bWJuYWlsSW1hZ2VPYmplY3RbXSA9IFtdXG5cbiAgY29uc3RydWN0b3IoXG4gICAgQE9wdGlvbmFsKClcbiAgICBASW5qZWN0KFRIVU1CTkFJTF9QTEFDRUhPTERFUilcbiAgICBwcml2YXRlIG9wdGlvbmFsUGxhY2Vob2xkZXJVcmw6IHN0cmluZ1xuICApIHt9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy51cGRhdGVJbWFnZUxpc3QoKVxuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmICghKCd0aHVtYm5haWxVcmwnIGluIGNoYW5nZXMpICYmICEoJ2ZpdCcgaW4gY2hhbmdlcykpIHtcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICB0aGlzLnVwZGF0ZUltYWdlTGlzdCgpXG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZUltYWdlTGlzdCgpIHtcbiAgICBpZiAoIXRoaXMudGh1bWJuYWlsVXJsKSB7XG4gICAgICB0aGlzLnNldFBsYWNlaG9sZGVyKClcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICBjb25zdCB1cmxzID0gQXJyYXkuaXNBcnJheSh0aGlzLnRodW1ibmFpbFVybClcbiAgICAgID8gdGhpcy50aHVtYm5haWxVcmxcbiAgICAgIDogW3RoaXMudGh1bWJuYWlsVXJsXVxuICAgIHRoaXMuaW1hZ2VzID0gdXJsc1xuICAgICAgLm1hcCgodXJsLCBpbmRleCkgPT4gKHtcbiAgICAgICAgdXJsLFxuICAgICAgICBmaXQ6IChBcnJheS5pc0FycmF5KHRoaXMuZml0KSA/IHRoaXMuZml0W2luZGV4XSA6IHRoaXMuZml0KSB8fCAnY292ZXInLFxuICAgICAgfSkpXG4gICAgICAuZmlsdGVyKChpbWcpID0+ICEhaW1nLnVybClcbiAgICBpZiAoIXRoaXMuaW1hZ2VzLmxlbmd0aCkge1xuICAgICAgdGhpcy5zZXRQbGFjZWhvbGRlcigpXG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgdGhpcy5zZXROZXdTcmNJbWFnZSh0aGlzLmltYWdlc1swXSlcbiAgfVxuXG4gIHByaXZhdGUgc2V0TmV3U3JjSW1hZ2UoaW1hZ2U6IFRodW1ibmFpbEltYWdlT2JqZWN0KSB7XG4gICAgdGhpcy5pbWdGaXQgPSBpbWFnZS5maXRcbiAgICB0aGlzLmltZ1VybCA9IGltYWdlLnVybFxuICAgIHRoaXMucGxhY2Vob2xkZXJTaG93bi5lbWl0KHRoaXMuaXNQbGFjZWhvbGRlcilcbiAgfVxuXG4gIHByaXZhdGUgc2V0UGxhY2Vob2xkZXIoKTogdm9pZCB7XG4gICAgdGhpcy5zZXROZXdTcmNJbWFnZSh7IHVybDogdGhpcy5wbGFjZWhvbGRlclVybCwgZml0OiAnc2NhbGUtZG93bicgfSlcbiAgfVxuXG4gIHVzZUZhbGxiYWNrKCkge1xuICAgIGlmICh0aGlzLmltYWdlcy5sZW5ndGggPiAxKSB7XG4gICAgICB0aGlzLmltYWdlcy5zaGlmdCgpXG4gICAgICB0aGlzLnNldE5ld1NyY0ltYWdlKHRoaXMuaW1hZ2VzWzBdKVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNldFBsYWNlaG9sZGVyKClcbiAgICB9XG4gIH1cblxuICBzZXRPYmplY3RGaXQoKSB7XG4gICAgY29uc3QgY3cgPSB0aGlzLmNvbnRhaW5lckVsZW1lbnQ/Lm5hdGl2ZUVsZW1lbnQ/LmNsaWVudFdpZHRoXG4gICAgY29uc3QgY2ggPSB0aGlzLmNvbnRhaW5lckVsZW1lbnQ/Lm5hdGl2ZUVsZW1lbnQ/LmNsaWVudEhlaWdodFxuICAgIGlmIChcbiAgICAgIHRoaXMuaW1nRWxlbWVudC5uYXRpdmVFbGVtZW50Lm5hdHVyYWxXaWR0aCA8IGN3ICYmXG4gICAgICB0aGlzLmltZ0VsZW1lbnQubmF0aXZlRWxlbWVudC5uYXR1cmFsSGVpZ2h0IDwgY2hcbiAgICApIHtcbiAgICAgIHRoaXMuaW1nRml0ID0gJ3NjYWxlLWRvd24nXG4gICAgfVxuICB9XG59XG4iLCI8ZGl2XG4gICNjb250YWluZXJFbGVtZW50XG4gIGNsYXNzPVwiaC1mdWxsIHctZnVsbCByZWxhdGl2ZSBzaHJpbmstMCBvdmVyZmxvdy1oaWRkZW4gZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXJcIlxuICBbbmdDbGFzc109XCJpc1BsYWNlaG9sZGVyID8gJ2JnLWdyYXktMTAwJyA6ICdiZy13aGl0ZSdcIlxuICBbYXR0ci5kYXRhLWN5LWlzLXBsYWNlaG9sZGVyXT1cImlzUGxhY2Vob2xkZXIudG9TdHJpbmcoKVwiXG4+XG4gIDxpbWdcbiAgICAjaW1hZ2VFbGVtZW50XG4gICAgY2xhc3M9XCJyZWxhdGl2ZSB3LWZ1bGwgb2JqZWN0LWNlbnRlclwiXG4gICAgW25nQ2xhc3NdPVwiaW1nRml0ID09PSAnY29udGFpbicgPyAnaC00LzUgdy00LzUnIDogJ2gtZnVsbCdcIlxuICAgIFtuZ1N0eWxlXT1cInsgb2JqZWN0Rml0OiBpbWdGaXQgfVwiXG4gICAgYWx0PVwidGh1bWJuYWlsXCJcbiAgICBsb2FkaW5nPVwibGF6eVwiXG4gICAgKGxvYWQpPVwic2V0T2JqZWN0Rml0KClcIlxuICAgIFtzcmNdPVwiaW1nVXJsXCJcbiAgICAoZXJyb3IpPVwidXNlRmFsbGJhY2soKVwiXG4gIC8+XG48L2Rpdj5cbiJdfQ==
@@ -12,7 +12,6 @@ import { ApiCardComponent } from './api-card/api-card.component';
12
12
  import { UiWidgetsModule } from '../../../../../libs/ui/widgets/src';
13
13
  import { UiLayoutModule } from '../../../../../libs/ui/layout/src';
14
14
  import { TranslateModule } from '@ngx-translate/core';
15
- import { LinkCardComponent } from './link-card/link-card.component';
16
15
  import { RelatedRecordCardComponent } from './related-record-card/related-record-card.component';
17
16
  import { MetadataContactComponent } from './metadata-contact/metadata-contact.component';
18
17
  import { MetadataCatalogComponent } from './metadata-catalog/metadata-catalog.component';
@@ -31,6 +30,8 @@ import { MaxLinesComponent } from './max-lines/max-lines.component';
31
30
  import { RecordApiFormComponent } from './record-api-form/record-api-form.component';
32
31
  import { MarkdownParserComponent } from './markdown-parser/markdown-parser.component';
33
32
  import { ImageOverlayPreviewComponent } from './image-overlay-preview/image-overlay-preview.component';
33
+ import { UserFeedbackItemComponent } from './user-feedback-item/user-feedback-item.component';
34
+ import { TimeSincePipe } from './user-feedback-item/time-since.pipe';
34
35
  import * as i0 from "@angular/core";
35
36
  import * as i1 from "@ngx-translate/core";
36
37
  export class UiElementsModule {
@@ -40,7 +41,6 @@ export class UiElementsModule {
40
41
  DownloadItemComponent,
41
42
  DownloadsListComponent,
42
43
  ApiCardComponent,
43
- LinkCardComponent,
44
44
  RelatedRecordCardComponent,
45
45
  MetadataContactComponent,
46
46
  MetadataCatalogComponent,
@@ -48,13 +48,13 @@ export class UiElementsModule {
48
48
  MetadataQualityItemComponent,
49
49
  SearchResultsErrorComponent,
50
50
  PaginationComponent,
51
- ThumbnailComponent,
52
51
  AvatarComponent,
53
52
  UserPreviewComponent,
54
53
  GnUiLinkifyDirective,
55
54
  PaginationButtonsComponent,
56
55
  MaxLinesComponent,
57
56
  RecordApiFormComponent,
57
+ UserFeedbackItemComponent,
58
58
  ImageOverlayPreviewComponent], imports: [CommonModule,
59
59
  MatIconModule,
60
60
  MatTooltipModule,
@@ -64,12 +64,13 @@ export class UiElementsModule {
64
64
  UiInputsModule,
65
65
  FormsModule,
66
66
  NgOptimizedImage,
67
- MarkdownParserComponent], exports: [MetadataInfoComponent,
67
+ MarkdownParserComponent,
68
+ ThumbnailComponent,
69
+ TimeSincePipe], exports: [MetadataInfoComponent,
68
70
  ContentGhostComponent,
69
71
  DownloadItemComponent,
70
72
  DownloadsListComponent,
71
73
  ApiCardComponent,
72
- LinkCardComponent,
73
74
  RelatedRecordCardComponent,
74
75
  MetadataContactComponent,
75
76
  MetadataCatalogComponent,
@@ -84,6 +85,7 @@ export class UiElementsModule {
84
85
  MaxLinesComponent,
85
86
  RecordApiFormComponent,
86
87
  MarkdownParserComponent,
88
+ UserFeedbackItemComponent,
87
89
  ImageOverlayPreviewComponent] }); }
88
90
  static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: UiElementsModule, imports: [CommonModule,
89
91
  MatIconModule,
@@ -94,7 +96,8 @@ export class UiElementsModule {
94
96
  UtilSharedModule,
95
97
  RouterModule,
96
98
  UiInputsModule,
97
- FormsModule] }); }
99
+ FormsModule,
100
+ ThumbnailComponent] }); }
98
101
  }
99
102
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: UiElementsModule, decorators: [{
100
103
  type: NgModule,
@@ -112,6 +115,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
112
115
  FormsModule,
113
116
  NgOptimizedImage,
114
117
  MarkdownParserComponent,
118
+ ThumbnailComponent,
119
+ TimeSincePipe,
115
120
  ],
116
121
  declarations: [
117
122
  MetadataInfoComponent,
@@ -119,7 +124,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
119
124
  DownloadItemComponent,
120
125
  DownloadsListComponent,
121
126
  ApiCardComponent,
122
- LinkCardComponent,
123
127
  RelatedRecordCardComponent,
124
128
  MetadataContactComponent,
125
129
  MetadataCatalogComponent,
@@ -127,13 +131,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
127
131
  MetadataQualityItemComponent,
128
132
  SearchResultsErrorComponent,
129
133
  PaginationComponent,
130
- ThumbnailComponent,
131
134
  AvatarComponent,
132
135
  UserPreviewComponent,
133
136
  GnUiLinkifyDirective,
134
137
  PaginationButtonsComponent,
135
138
  MaxLinesComponent,
136
139
  RecordApiFormComponent,
140
+ UserFeedbackItemComponent,
137
141
  ImageOverlayPreviewComponent,
138
142
  ],
139
143
  exports: [
@@ -142,7 +146,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
142
146
  DownloadItemComponent,
143
147
  DownloadsListComponent,
144
148
  ApiCardComponent,
145
- LinkCardComponent,
146
149
  RelatedRecordCardComponent,
147
150
  MetadataContactComponent,
148
151
  MetadataCatalogComponent,
@@ -157,8 +160,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
157
160
  MaxLinesComponent,
158
161
  RecordApiFormComponent,
159
162
  MarkdownParserComponent,
163
+ UserFeedbackItemComponent,
160
164
  ImageOverlayPreviewComponent,
161
165
  ],
162
166
  }]
163
167
  }] });
164
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktZWxlbWVudHMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS9lbGVtZW50cy9zcmMvbGliL3VpLWVsZW1lbnRzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ3hDLE9BQU8sRUFBRSxZQUFZLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUNoRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDOUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFBO0FBQ3RELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFBO0FBQzVELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFBO0FBQ3RFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFBO0FBQy9FLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFBO0FBQy9FLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFBO0FBQy9FLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFBO0FBQ2xGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLCtCQUErQixDQUFBO0FBQ2hFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQTtBQUNwRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUNBQW1DLENBQUE7QUFDbEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBQ3JELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFBO0FBQ25FLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHFEQUFxRCxDQUFBO0FBQ2hHLE9BQU8sRUFBRSx3QkFB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dUJBQXVCO3FCQUN4QjtvQkFDRCxZQUFZLEVBQUU7d0JBQ1oscUJBQXFCO3dCQUNyQixxQkFBcUI7d0JBQ3JCLHFCQUFxQjt3QkFDckIsc0JBQXNCO3dCQUN0QixnQkFBZ0I7d0JBQ2hCLGlCQUFpQjt3QkFDakIsMEJBQTBCO3dCQUMxQix3QkFBd0I7d0JBQ3hCLHdCQUF3Qjt3QkFDeEIsd0JBQXdCO3dCQUN4Qiw0QkFBNEI7d0JBQzVCLDJCQUEyQjt3QkFDM0IsbUJBQW1CO3dCQUNuQixrQkFBa0I7d0JBQ2xCLGVBQWU7d0JBQ2Ysb0JBQW9CO3dCQUNwQixvQkFBb0I7d0JBQ3BCLDBCQUEwQjt3QkFDMUIsaUJBQWlCO3dCQUNqQixzQkFBc0I7d0JBQ3RCLDRCQUE0QjtxQkFDN0I7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLHFCQUFxQjt3QkFDckIscUJBQXFCO3dCQUNyQixxQkFBcUI7d0JBQ3JCLHNCQUFzQjt3QkFDdEIsZ0JBQWdCO3dCQUNoQixpQkFBaUI7d0JBQ2pCLDBCQUEwQjt3QkFDMUIsd0JBQXdCO3dCQUN4Qix3QkFBd0I7d0JBQ3hCLHdCQUF3Qjt3QkFDeEIsNEJBQTRCO3dCQUM1QiwyQkFBMkI7d0JBQzNCLG1CQUFtQjt3QkFDbkIsa0JBQWtCO3dCQUNsQixlQUFlO3dCQUNmLG9CQUFvQjt3QkFDcEIsMEJBQTBCO3dCQUMxQixpQkFBaUI7d0JBQ2pCLHNCQUFzQjt3QkFDdEIsdUJBQXVCO3dCQUN2Qiw0QkFBNEI7cUJBQzdCO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlLCBOZ09wdGltaXplZEltYWdlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xuaW1wb3J0IHsgUm91dGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJ1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nXG5pbXBvcnQgeyBNYXRUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCdcbmltcG9ydCB7IFV0aWxTaGFyZWRNb2R1bGUgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9saWJzL3V0aWwvc2hhcmVkL3NyYydcbmltcG9ydCB7IE1ldGFkYXRhSW5mb0NvbXBvbmVudCB9IGZyb20gJy4vbWV0YWRhdGEtaW5mby9tZXRhZGF0YS1pbmZvLmNvbXBvbmVudCdcbmltcG9ydCB7IENvbnRlbnRHaG9zdENvbXBvbmVudCB9IGZyb20gJy4vY29udGVudC1naG9zdC9jb250ZW50LWdob3N0LmNvbXBvbmVudCdcbmltcG9ydCB7IERvd25sb2FkSXRlbUNvbXBvbmVudCB9IGZyb20gJy4vZG93bmxvYWQtaXRlbS9kb3dubG9hZC1pdGVtLmNvbXBvbmVudCdcbmltcG9ydCB7IERvd25sb2Fkc0xpc3RDb21wb25lbnQgfSBmcm9tICcuL2Rvd25sb2Fkcy1saXN0L2Rvd25sb2Fkcy1saXN0LmNvbXBvbmVudCdcbmltcG9ydCB7IEFwaUNhcmRDb21wb25lbnQgfSBmcm9tICcuL2FwaS1jYXJkL2FwaS1jYXJkLmNvbXBvbmVudCdcbmltcG9ydCB7IFVpV2lkZ2V0c01vZHVsZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvd2lkZ2V0cy9zcmMnXG5pbXBvcnQgeyBVaUxheW91dE1vZHVsZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvbGF5b3V0L3NyYydcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnXG5pbXBvcnQgeyBMaW5rQ2FyZENvbXBvbmVudCB9IGZyb20gJy4vbGluay1jYXJkL2xpbmstY2FyZC5jb21wb25lbnQnXG5pbXBvcnQgeyBSZWxhdGVkUmVjb3JkQ2FyZENvbXBvbmVudCB9IGZyb20gJy4vcmVsYXRlZC1yZWNvcmQtY2FyZC9yZWxhdGVkLXJlY29yZC1jYXJkLmNvbXBvbmVudCdcbmltcG9ydCB7IE1ldGFkYXRhQ29udGFjdENvbXBvbmVudCB9IGZyb20gJy4vbWV0YWRhdGEtY29udGFjdC9tZXRhZGF0YS1jb250YWN0LmNvbXBvbmVudCdcbmltcG9ydCB7IE1ldGFkYXRhQ2F0YWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vbWV0YWRhdGEtY2F0YWxvZy9tZXRhZGF0YS1jYXRhbG9nLmNvbXBvbmVudCdcbmltcG9ydCB7IE1ldGFkYXRhUXVhbGl0eUNvbXBvbmVudCB9IGZyb20gJy4vbWV0YWRhdGEtcXVhbGl0eS9tZXRhZGF0YS1xdWFsaXR5LmNvbXBvbmVudCdcbmltcG9ydCB7IE1ldGFkYXRhUXVhbGl0eUl0ZW1Db21wb25lbnQgfSBmcm9tICcuL21ldGFkYXRhLXF1YWxpdHktaXRlbS9tZXRhZGF0YS1xdWFsaXR5LWl0ZW0uY29tcG9uZW50J1xuaW1wb3J0IHsgU2VhcmNoUmVzdWx0c0Vycm9yQ29tcG9uZW50IH0gZnJvbSAnLi9zZWFyY2gtcmVzdWx0cy1lcnJvci9zZWFyY2gtcmVzdWx0cy1lcnJvci5jb21wb25lbnQnXG5pbXBvcnQgeyBQYWdpbmF0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9wYWdpbmF0aW9uL3BhZ2luYXRpb24uY29tcG9uZW50J1xuaW1wb3J0IHsgVGh1bWJuYWlsQ29tcG9uZW50IH0gZnJvbSAnLi90aHVtYm5haWwvdGh1bWJuYWlsLmNvbXBvbmVudCdcbmltcG9ydCB7IFVpSW5wdXRzTW9kdWxlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vbGlicy91aS9pbnB1dHMvc3JjJ1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3JtcydcbmltcG9ydCB7IEF2YXRhckNvbXBvbmVudCB9IGZyb20gJy4vYXZhdGFyL2F2YXRhci5jb21wb25lbnQnXG5pbXBvcnQgeyBVc2VyUHJldmlld0NvbXBvbmVudCB9IGZyb20gJy4vdXNlci1wcmV2aWV3L3VzZXItcHJldmlldy5jb21wb25lbnQnXG5pbXBvcnQgeyBHblVpTGlua2lmeURpcmVjdGl2ZSB9IGZyb20gJy4vbWV0YWRhdGEtaW5mby9saW5raWZ5LmRpcmVjdGl2ZSdcbmltcG9ydCB7IFBhZ2luYXRpb25CdXR0b25zQ29tcG9uZW50IH0gZnJvbSAnLi9wYWdpbmF0aW9uLWJ1dHRvbnMvcGFnaW5hdGlvbi1idXR0b25zLmNvbXBvbmVudCdcbmltcG9ydCB7IE1heExpbmVzQ29tcG9uZW50IH0gZnJvbSAnLi9tYXgtbGluZXMvbWF4LWxpbmVzLmNvbXBvbmVudCdcbmltcG9ydCB7IFJlY29yZEFwaUZvcm1Db21wb25lbnQgfSBmcm9tICcuL3JlY29yZC1hcGktZm9ybS9yZWNvcmQtYXBpLWZvcm0uY29tcG9uZW50J1xuaW1wb3J0IHsgTWFya2Rvd25QYXJzZXJDb21wb25lbnQgfSBmcm9tICcuL21hcmtkb3duLXBhcnNlci9tYXJrZG93bi1wYXJzZXIuY29tcG9uZW50J1xuaW1wb3J0IHsgSW1hZ2VPdmVybGF5UHJldmlld0NvbXBvbmVudCB9IGZyb20gJy4vaW1hZ2Utb3ZlcmxheS1wcmV2aWV3L2ltYWdlLW92ZXJsYXktcHJldmlldy5jb21wb25lbnQnXG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgTWF0SWNvbk1vZHVsZSxcbiAgICBNYXRUb29sdGlwTW9kdWxlLFxuICAgIFVpV2lkZ2V0c01vZHVsZSxcbiAgICBVaUxheW91dE1vZHVsZSxcbiAgICBUcmFuc2xhdGVNb2R1bGUuZm9yQ2hpbGQoKSxcbiAgICBVdGlsU2hhcmVkTW9kdWxlLFxuICAgIFJvdXRlck1vZHVsZSxcbiAgICBVaUlucHV0c01vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBOZ09wdGltaXplZEltYWdlLFxuICAgIE1hcmtkb3duUGFyc2VyQ29tcG9uZW50LFxuICBdLFxuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBNZXRhZGF0YUluZm9Db21wb25lbnQsXG4gICAgQ29udGVudEdob3N0Q29tcG9uZW50LFxuICAgIERvd25sb2FkSXRlbUNvbXBvbmVudCxcbiAgICBEb3dubG9hZHNMaXN0Q29tcG9uZW50LFxuICAgIEFwaUNhcmRDb21wb25lbnQsXG4gICAgTGlua0NhcmRDb21wb25lbnQsXG4gICAgUmVsYXRlZFJlY29yZENhcmRDb21wb25lbnQsXG4gICAgTWV0YWRhdGFDb250YWN0Q29tcG9uZW50LFxuICAgIE1ldGFkYXRhQ2F0YWxvZ0NvbXBvbmVudCxcbiAgICBNZXRhZGF0YVF1YWxpdHlDb21wb25lbnQsXG4gICAgTWV0YWRhdGFRdWFsaXR5SXRlbUNvbXBvbmVudCxcbiAgICBTZWFyY2hSZXN1bHRzRXJyb3JDb21wb25lbnQsXG4gICAgUGFnaW5hdGlvbkNvbXBvbmVudCxcbiAgICBUaHVtYm5haWxDb21wb25lbnQsXG4gICAgQXZhdGFyQ29tcG9uZW50LFxuICAgIFVzZXJQcmV2aWV3Q29tcG9uZW50LFxuICAgIEduVWlMaW5raWZ5RGlyZWN0aXZlLFxuICAgIFBhZ2luYXRpb25CdXR0b25zQ29tcG9uZW50LFxuICAgIE1heExpbmVzQ29tcG9uZW50LFxuICAgIFJlY29yZEFwaUZvcm1Db21wb25lbnQsXG4gICAgSW1hZ2VPdmVybGF5UHJldmlld0NvbXBvbmVudCxcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIE1ldGFkYXRhSW5mb0NvbXBvbmVudCxcbiAgICBDb250ZW50R2hvc3RDb21wb25lbnQsXG4gICAgRG93bmxvYWRJdGVtQ29tcG9uZW50LFxuICAgIERvd25sb2Fkc0xpc3RDb21wb25lbnQsXG4gICAgQXBpQ2FyZENvbXBvbmVudCxcbiAgICBMaW5rQ2FyZENvbXBvbmVudCxcbiAgICBSZWxhdGVkUmVjb3JkQ2FyZENvbXBvbmVudCxcbiAgICBNZXRhZGF0YUNvbnRhY3RDb21wb25lbnQsXG4gICAgTWV0YWRhdGFDYXRhbG9nQ29tcG9uZW50LFxuICAgIE1ldGFkYXRhUXVhbGl0eUNvbXBvbmVudCxcbiAgICBNZXRhZGF0YVF1YWxpdHlJdGVtQ29tcG9uZW50LFxuICAgIFNlYXJjaFJlc3VsdHNFcnJvckNvbXBvbmVudCxcbiAgICBQYWdpbmF0aW9uQ29tcG9uZW50LFxuICAgIFRodW1ibmFpbENvbXBvbmVudCxcbiAgICBBdmF0YXJDb21wb25lbnQsXG4gICAgVXNlclByZXZpZXdDb21wb25lbnQsXG4gICAgUGFnaW5hdGlvbkJ1dHRvbnNDb21wb25lbnQsXG4gICAgTWF4TGluZXNDb21wb25lbnQsXG4gICAgUmVjb3JkQXBpRm9ybUNvbXBvbmVudCxcbiAgICBNYXJrZG93blBhcnNlckNvbXBvbmVudCxcbiAgICBJbWFnZU92ZXJsYXlQcmV2aWV3Q29tcG9uZW50LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBVaUVsZW1lbnRzTW9kdWxlIHt9XG4iXX0=
168
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktZWxlbWVudHMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS9lbGVtZW50cy9zcmMvbGliL3VpLWVsZW1lbnRzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ3hDLE9BQU8sRUFBRSxZQUFZLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUNoRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDOUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFBO0FBQ3RELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFBO0FBQzVELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFBO0FBQ3RFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFBO0FBQy9FLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFBO0FBQy9FLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFBO0FBQy9FLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFBO0FBQ2xGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLCtCQUErQixDQUFBO0FBQ2hFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQTtBQUNwRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUNBQW1DLENBQUE7QUFDbEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBRXJELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHFEQUFxRCxDQUFBO0FBQ2hHLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLCtDQUErQyxDQUFBO0FBQ3hGLE9BQU8sRUFBRSx3QkFB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QzFCLGdCQUFnQjt3QkFDaEIsWUFBWTt3QkFDWixjQUFjO3dCQUNkLFdBQVc7d0JBQ1gsZ0JBQWdCO3dCQUNoQix1QkFBdUI7d0JBQ3ZCLGtCQUFrQjt3QkFDbEIsYUFBYTtxQkFDZDtvQkFDRCxZQUFZLEVBQUU7d0JBQ1oscUJBQXFCO3dCQUNyQixxQkFBcUI7d0JBQ3JCLHFCQUFxQjt3QkFDckIsc0JBQXNCO3dCQUN0QixnQkFBZ0I7d0JBQ2hCLDBCQUEwQjt3QkFDMUIsd0JBQXdCO3dCQUN4Qix3QkFBd0I7d0JBQ3hCLHdCQUF3Qjt3QkFDeEIsNEJBQTRCO3dCQUM1QiwyQkFBMkI7d0JBQzNCLG1CQUFtQjt3QkFDbkIsZUFBZTt3QkFDZixvQkFBb0I7d0JBQ3BCLG9CQUFvQjt3QkFDcEIsMEJBQTBCO3dCQUMxQixpQkFBaUI7d0JBQ2pCLHNCQUFzQjt3QkFDdEIseUJBQXlCO3dCQUN6Qiw0QkFBNEI7cUJBQzdCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxxQkFBcUI7d0JBQ3JCLHFCQUFxQjt3QkFDckIscUJBQXFCO3dCQUNyQixzQkFBc0I7d0JBQ3RCLGdCQUFnQjt3QkFDaEIsMEJBQTBCO3dCQUMxQix3QkFBd0I7d0JBQ3hCLHdCQUF3Qjt3QkFDeEIsd0JBQXdCO3dCQUN4Qiw0QkFBNEI7d0JBQzVCLDJCQUEyQjt3QkFDM0IsbUJBQW1CO3dCQUNuQixrQkFBa0I7d0JBQ2xCLGVBQWU7d0JBQ2Ysb0JBQW9CO3dCQUNwQiwwQkFBMEI7d0JBQzFCLGlCQUFpQjt3QkFDakIsc0JBQXNCO3dCQUN0Qix1QkFBdUI7d0JBQ3ZCLHlCQUF5Qjt3QkFDekIsNEJBQTRCO3FCQUM3QjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IENvbW1vbk1vZHVsZSwgTmdPcHRpbWl6ZWRJbWFnZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbidcbmltcG9ydCB7IFJvdXRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcidcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJ1xuaW1wb3J0IHsgTWF0VG9vbHRpcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnXG5pbXBvcnQgeyBVdGlsU2hhcmVkTW9kdWxlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vbGlicy91dGlsL3NoYXJlZC9zcmMnXG5pbXBvcnQgeyBNZXRhZGF0YUluZm9Db21wb25lbnQgfSBmcm9tICcuL21ldGFkYXRhLWluZm8vbWV0YWRhdGEtaW5mby5jb21wb25lbnQnXG5pbXBvcnQgeyBDb250ZW50R2hvc3RDb21wb25lbnQgfSBmcm9tICcuL2NvbnRlbnQtZ2hvc3QvY29udGVudC1naG9zdC5jb21wb25lbnQnXG5pbXBvcnQgeyBEb3dubG9hZEl0ZW1Db21wb25lbnQgfSBmcm9tICcuL2Rvd25sb2FkLWl0ZW0vZG93bmxvYWQtaXRlbS5jb21wb25lbnQnXG5pbXBvcnQgeyBEb3dubG9hZHNMaXN0Q29tcG9uZW50IH0gZnJvbSAnLi9kb3dubG9hZHMtbGlzdC9kb3dubG9hZHMtbGlzdC5jb21wb25lbnQnXG5pbXBvcnQgeyBBcGlDYXJkQ29tcG9uZW50IH0gZnJvbSAnLi9hcGktY2FyZC9hcGktY2FyZC5jb21wb25lbnQnXG5pbXBvcnQgeyBVaVdpZGdldHNNb2R1bGUgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9saWJzL3VpL3dpZGdldHMvc3JjJ1xuaW1wb3J0IHsgVWlMYXlvdXRNb2R1bGUgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9saWJzL3VpL2xheW91dC9zcmMnXG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJ1xuaW1wb3J0IHsgTGlua0NhcmRDb21wb25lbnQgfSBmcm9tICcuL2xpbmstY2FyZC9saW5rLWNhcmQuY29tcG9uZW50J1xuaW1wb3J0IHsgUmVsYXRlZFJlY29yZENhcmRDb21wb25lbnQgfSBmcm9tICcuL3JlbGF0ZWQtcmVjb3JkLWNhcmQvcmVsYXRlZC1yZWNvcmQtY2FyZC5jb21wb25lbnQnXG5pbXBvcnQgeyBNZXRhZGF0YUNvbnRhY3RDb21wb25lbnQgfSBmcm9tICcuL21ldGFkYXRhLWNvbnRhY3QvbWV0YWRhdGEtY29udGFjdC5jb21wb25lbnQnXG5pbXBvcnQgeyBNZXRhZGF0YUNhdGFsb2dDb21wb25lbnQgfSBmcm9tICcuL21ldGFkYXRhLWNhdGFsb2cvbWV0YWRhdGEtY2F0YWxvZy5jb21wb25lbnQnXG5pbXBvcnQgeyBNZXRhZGF0YVF1YWxpdHlDb21wb25lbnQgfSBmcm9tICcuL21ldGFkYXRhLXF1YWxpdHkvbWV0YWRhdGEtcXVhbGl0eS5jb21wb25lbnQnXG5pbXBvcnQgeyBNZXRhZGF0YVF1YWxpdHlJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9tZXRhZGF0YS1xdWFsaXR5LWl0ZW0vbWV0YWRhdGEtcXVhbGl0eS1pdGVtLmNvbXBvbmVudCdcbmltcG9ydCB7IFNlYXJjaFJlc3VsdHNFcnJvckNvbXBvbmVudCB9IGZyb20gJy4vc2VhcmNoLXJlc3VsdHMtZXJyb3Ivc2VhcmNoLXJlc3VsdHMtZXJyb3IuY29tcG9uZW50J1xuaW1wb3J0IHsgUGFnaW5hdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vcGFnaW5hdGlvbi9wYWdpbmF0aW9uLmNvbXBvbmVudCdcbmltcG9ydCB7IFRodW1ibmFpbENvbXBvbmVudCB9IGZyb20gJy4vdGh1bWJuYWlsL3RodW1ibmFpbC5jb21wb25lbnQnXG5pbXBvcnQgeyBVaUlucHV0c01vZHVsZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvaW5wdXRzL3NyYydcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnXG5pbXBvcnQgeyBBdmF0YXJDb21wb25lbnQgfSBmcm9tICcuL2F2YXRhci9hdmF0YXIuY29tcG9uZW50J1xuaW1wb3J0IHsgVXNlclByZXZpZXdDb21wb25lbnQgfSBmcm9tICcuL3VzZXItcHJldmlldy91c2VyLXByZXZpZXcuY29tcG9uZW50J1xuaW1wb3J0IHsgR25VaUxpbmtpZnlEaXJlY3RpdmUgfSBmcm9tICcuL21ldGFkYXRhLWluZm8vbGlua2lmeS5kaXJlY3RpdmUnXG5pbXBvcnQgeyBQYWdpbmF0aW9uQnV0dG9uc0NvbXBvbmVudCB9IGZyb20gJy4vcGFnaW5hdGlvbi1idXR0b25zL3BhZ2luYXRpb24tYnV0dG9ucy5jb21wb25lbnQnXG5pbXBvcnQgeyBNYXhMaW5lc0NvbXBvbmVudCB9IGZyb20gJy4vbWF4LWxpbmVzL21heC1saW5lcy5jb21wb25lbnQnXG5pbXBvcnQgeyBSZWNvcmRBcGlGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi9yZWNvcmQtYXBpLWZvcm0vcmVjb3JkLWFwaS1mb3JtLmNvbXBvbmVudCdcbmltcG9ydCB7IE1hcmtkb3duUGFyc2VyQ29tcG9uZW50IH0gZnJvbSAnLi9tYXJrZG93bi1wYXJzZXIvbWFya2Rvd24tcGFyc2VyLmNvbXBvbmVudCdcbmltcG9ydCB7IEltYWdlT3ZlcmxheVByZXZpZXdDb21wb25lbnQgfSBmcm9tICcuL2ltYWdlLW92ZXJsYXktcHJldmlldy9pbWFnZS1vdmVybGF5LXByZXZpZXcuY29tcG9uZW50J1xuaW1wb3J0IHsgVXNlckZlZWRiYWNrSXRlbUNvbXBvbmVudCB9IGZyb20gJy4vdXNlci1mZWVkYmFjay1pdGVtL3VzZXItZmVlZGJhY2staXRlbS5jb21wb25lbnQnXG5pbXBvcnQgeyBUaW1lU2luY2VQaXBlIH0gZnJvbSAnLi91c2VyLWZlZWRiYWNrLWl0ZW0vdGltZS1zaW5jZS5waXBlJ1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIE1hdEljb25Nb2R1bGUsXG4gICAgTWF0VG9vbHRpcE1vZHVsZSxcbiAgICBVaVdpZGdldHNNb2R1bGUsXG4gICAgVWlMYXlvdXRNb2R1bGUsXG4gICAgVHJhbnNsYXRlTW9kdWxlLmZvckNoaWxkKCksXG4gICAgVXRpbFNoYXJlZE1vZHVsZSxcbiAgICBSb3V0ZXJNb2R1bGUsXG4gICAgVWlJbnB1dHNNb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgTmdPcHRpbWl6ZWRJbWFnZSxcbiAgICBNYXJrZG93blBhcnNlckNvbXBvbmVudCxcbiAgICBUaHVtYm5haWxDb21wb25lbnQsXG4gICAgVGltZVNpbmNlUGlwZSxcbiAgXSxcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgTWV0YWRhdGFJbmZvQ29tcG9uZW50LFxuICAgIENvbnRlbnRHaG9zdENvbXBvbmVudCxcbiAgICBEb3dubG9hZEl0ZW1Db21wb25lbnQsXG4gICAgRG93bmxvYWRzTGlzdENvbXBvbmVudCxcbiAgICBBcGlDYXJkQ29tcG9uZW50LFxuICAgIFJlbGF0ZWRSZWNvcmRDYXJkQ29tcG9uZW50LFxuICAgIE1ldGFkYXRhQ29udGFjdENvbXBvbmVudCxcbiAgICBNZXRhZGF0YUNhdGFsb2dDb21wb25lbnQsXG4gICAgTWV0YWRhdGFRdWFsaXR5Q29tcG9uZW50LFxuICAgIE1ldGFkYXRhUXVhbGl0eUl0ZW1Db21wb25lbnQsXG4gICAgU2VhcmNoUmVzdWx0c0Vycm9yQ29tcG9uZW50LFxuICAgIFBhZ2luYXRpb25Db21wb25lbnQsXG4gICAgQXZhdGFyQ29tcG9uZW50LFxuICAgIFVzZXJQcmV2aWV3Q29tcG9uZW50LFxuICAgIEduVWlMaW5raWZ5RGlyZWN0aXZlLFxuICAgIFBhZ2luYXRpb25CdXR0b25zQ29tcG9uZW50LFxuICAgIE1heExpbmVzQ29tcG9uZW50LFxuICAgIFJlY29yZEFwaUZvcm1Db21wb25lbnQsXG4gICAgVXNlckZlZWRiYWNrSXRlbUNvbXBvbmVudCxcbiAgICBJbWFnZU92ZXJsYXlQcmV2aWV3Q29tcG9uZW50LFxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgTWV0YWRhdGFJbmZvQ29tcG9uZW50LFxuICAgIENvbnRlbnRHaG9zdENvbXBvbmVudCxcbiAgICBEb3dubG9hZEl0ZW1Db21wb25lbnQsXG4gICAgRG93bmxvYWRzTGlzdENvbXBvbmVudCxcbiAgICBBcGlDYXJkQ29tcG9uZW50LFxuICAgIFJlbGF0ZWRSZWNvcmRDYXJkQ29tcG9uZW50LFxuICAgIE1ldGFkYXRhQ29udGFjdENvbXBvbmVudCxcbiAgICBNZXRhZGF0YUNhdGFsb2dDb21wb25lbnQsXG4gICAgTWV0YWRhdGFRdWFsaXR5Q29tcG9uZW50LFxuICAgIE1ldGFkYXRhUXVhbGl0eUl0ZW1Db21wb25lbnQsXG4gICAgU2VhcmNoUmVzdWx0c0Vycm9yQ29tcG9uZW50LFxuICAgIFBhZ2luYXRpb25Db21wb25lbnQsXG4gICAgVGh1bWJuYWlsQ29tcG9uZW50LFxuICAgIEF2YXRhckNvbXBvbmVudCxcbiAgICBVc2VyUHJldmlld0NvbXBvbmVudCxcbiAgICBQYWdpbmF0aW9uQnV0dG9uc0NvbXBvbmVudCxcbiAgICBNYXhMaW5lc0NvbXBvbmVudCxcbiAgICBSZWNvcmRBcGlGb3JtQ29tcG9uZW50LFxuICAgIE1hcmtkb3duUGFyc2VyQ29tcG9uZW50LFxuICAgIFVzZXJGZWVkYmFja0l0ZW1Db21wb25lbnQsXG4gICAgSW1hZ2VPdmVybGF5UHJldmlld0NvbXBvbmVudCxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgVWlFbGVtZW50c01vZHVsZSB7fVxuIl19
@@ -0,0 +1,59 @@
1
+ import { Pipe } from '@angular/core';
2
+ import { TranslateService } from '@ngx-translate/core';
3
+ import { formatDistance } from 'date-fns';
4
+ import { de, enUS, es, fr, it, nl, pt, sk } from 'date-fns/locale';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@ngx-translate/core";
7
+ export class TimeSincePipe {
8
+ constructor(translate) {
9
+ this.translate = translate;
10
+ }
11
+ transform(value) {
12
+ if (isNaN(value.getTime())) {
13
+ throw new Error('Invalid Date');
14
+ }
15
+ const maintenant = new Date();
16
+ let locale;
17
+ switch (this.translate.currentLang) {
18
+ case 'fr':
19
+ locale = fr;
20
+ break;
21
+ case 'de':
22
+ locale = de;
23
+ break;
24
+ case 'es':
25
+ locale = es;
26
+ break;
27
+ case 'it':
28
+ locale = it;
29
+ break;
30
+ case 'nl':
31
+ locale = nl;
32
+ break;
33
+ case 'pt':
34
+ locale = pt;
35
+ break;
36
+ case 'sk':
37
+ locale = sk;
38
+ break;
39
+ case 'en':
40
+ default:
41
+ locale = enUS;
42
+ break;
43
+ }
44
+ return formatDistance(value, maintenant, {
45
+ addSuffix: true,
46
+ locale: locale,
47
+ });
48
+ }
49
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: TimeSincePipe, deps: [{ token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Pipe }); }
50
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.1.7", ngImport: i0, type: TimeSincePipe, isStandalone: true, name: "timeSince" }); }
51
+ }
52
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: TimeSincePipe, decorators: [{
53
+ type: Pipe,
54
+ args: [{
55
+ name: 'timeSince',
56
+ standalone: true,
57
+ }]
58
+ }], ctorParameters: function () { return [{ type: i1.TranslateService }]; } });
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS1zaW5jZS5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS9lbGVtZW50cy9zcmMvbGliL3VzZXItZmVlZGJhY2staXRlbS90aW1lLXNpbmNlLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUE7QUFDbkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUE7QUFDdEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLFVBQVUsQ0FBQTtBQUN6QyxPQUFPLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxNQUFNLGlCQUFpQixDQUFBOzs7QUFNbEUsTUFBTSxPQUFPLGFBQWE7SUFDeEIsWUFBb0IsU0FBMkI7UUFBM0IsY0FBUyxHQUFULFNBQVMsQ0FBa0I7SUFBRyxDQUFDO0lBRW5ELFNBQVMsQ0FBQyxLQUFXO1FBQ25CLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQyxFQUFFO1lBQzFCLE1BQU0sSUFBSSxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUE7U0FDaEM7UUFFRCxNQUFNLFVBQVUsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFBO1FBQzdCLElBQUksTUFBYyxDQUFBO1FBRWxCLFFBQVEsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLEVBQUU7WUFDbEMsS0FBSyxJQUFJO2dCQUNQLE1BQU0sR0FBRyxFQUFFLENBQUE7Z0JBQ1gsTUFBSztZQUNQLEtBQUssSUFBSTtnQkFDUCxNQUFNLEdBQUcsRUFBRSxDQUFBO2dCQUNYLE1BQUs7WUFDUCxLQUFLLElBQUk7Z0JBQ1AsTUFBTSxHQUFHLEVBQUUsQ0FBQTtnQkFDWCxNQUFLO1lBQ1AsS0FBSyxJQUFJO2dCQUNQLE1BQU0sR0FBRyxFQUFFLENBQUE7Z0JBQ1gsTUFBSztZQUNQLEtBQUssSUFBSTtnQkFDUCxNQUFNLEdBQUcsRUFBRSxDQUFBO2dCQUNYLE1BQUs7WUFDUCxLQUFLLElBQUk7Z0JBQ1AsTUFBTSxHQUFHLEVBQUUsQ0FBQTtnQkFDWCxNQUFLO1lBQ1AsS0FBSyxJQUFJO2dCQUNQLE1BQU0sR0FBRyxFQUFFLENBQUE7Z0JBQ1gsTUFBSztZQUNQLEtBQUssSUFBSSxDQUFDO1lBQ1Y7Z0JBQ0UsTUFBTSxHQUFHLElBQUksQ0FBQTtnQkFDYixNQUFLO1NBQ1I7UUFFRCxPQUFPLGNBQWMsQ0FBQyxLQUFLLEVBQUUsVUFBVSxFQUFFO1lBQ3ZDLFNBQVMsRUFBRSxJQUFJO1lBQ2YsTUFBTSxFQUFFLE1BQU07U0FDZixDQUFDLENBQUE7SUFDSixDQUFDOzhHQTNDVSxhQUFhOzRHQUFiLGFBQWE7OzJGQUFiLGFBQWE7a0JBSnpCLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLFdBQVc7b0JBQ2pCLFVBQVUsRUFBRSxJQUFJO2lCQUNqQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnXG5pbXBvcnQgeyBmb3JtYXREaXN0YW5jZSB9IGZyb20gJ2RhdGUtZm5zJ1xuaW1wb3J0IHsgZGUsIGVuVVMsIGVzLCBmciwgaXQsIG5sLCBwdCwgc2sgfSBmcm9tICdkYXRlLWZucy9sb2NhbGUnXG5cbkBQaXBlKHtcbiAgbmFtZTogJ3RpbWVTaW5jZScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIFRpbWVTaW5jZVBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UpIHt9XG5cbiAgdHJhbnNmb3JtKHZhbHVlOiBEYXRlKTogc3RyaW5nIHtcbiAgICBpZiAoaXNOYU4odmFsdWUuZ2V0VGltZSgpKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIERhdGUnKVxuICAgIH1cblxuICAgIGNvbnN0IG1haW50ZW5hbnQgPSBuZXcgRGF0ZSgpXG4gICAgbGV0IGxvY2FsZTogTG9jYWxlXG5cbiAgICBzd2l0Y2ggKHRoaXMudHJhbnNsYXRlLmN1cnJlbnRMYW5nKSB7XG4gICAgICBjYXNlICdmcic6XG4gICAgICAgIGxvY2FsZSA9IGZyXG4gICAgICAgIGJyZWFrXG4gICAgICBjYXNlICdkZSc6XG4gICAgICAgIGxvY2FsZSA9IGRlXG4gICAgICAgIGJyZWFrXG4gICAgICBjYXNlICdlcyc6XG4gICAgICAgIGxvY2FsZSA9IGVzXG4gICAgICAgIGJyZWFrXG4gICAgICBjYXNlICdpdCc6XG4gICAgICAgIGxvY2FsZSA9IGl0XG4gICAgICAgIGJyZWFrXG4gICAgICBjYXNlICdubCc6XG4gICAgICAgIGxvY2FsZSA9IG5sXG4gICAgICAgIGJyZWFrXG4gICAgICBjYXNlICdwdCc6XG4gICAgICAgIGxvY2FsZSA9IHB0XG4gICAgICAgIGJyZWFrXG4gICAgICBjYXNlICdzayc6XG4gICAgICAgIGxvY2FsZSA9IHNrXG4gICAgICAgIGJyZWFrXG4gICAgICBjYXNlICdlbic6XG4gICAgICBkZWZhdWx0OlxuICAgICAgICBsb2NhbGUgPSBlblVTXG4gICAgICAgIGJyZWFrXG4gICAgfVxuXG4gICAgcmV0dXJuIGZvcm1hdERpc3RhbmNlKHZhbHVlLCBtYWludGVuYW50LCB7XG4gICAgICBhZGRTdWZmaXg6IHRydWUsXG4gICAgICBsb2NhbGU6IGxvY2FsZSxcbiAgICB9KVxuICB9XG59XG4iXX0=