geonetwork-ui 2.3.0-dev.28c8df17 → 2.3.0-dev.2b8cc035

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 (508) hide show
  1. package/esm2022/index.mjs +2 -1
  2. package/esm2022/libs/api/metadata-converter/src/index.mjs +5 -5
  3. package/esm2022/libs/api/metadata-converter/src/lib/base.converter.mjs +14 -0
  4. package/esm2022/libs/api/metadata-converter/src/lib/find-converter.mjs +15 -0
  5. package/esm2022/libs/api/metadata-converter/src/lib/gn4/atomic-operations.mjs +3 -3
  6. package/esm2022/libs/api/metadata-converter/src/lib/gn4/gn4.converter.mjs +52 -0
  7. package/esm2022/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.mjs +8 -4
  8. package/esm2022/libs/api/metadata-converter/src/lib/gn4/index.mjs +4 -0
  9. package/esm2022/libs/api/metadata-converter/src/lib/iso19115-3/index.mjs +2 -0
  10. package/esm2022/libs/api/metadata-converter/src/lib/iso19115-3/iso19115-3.converter.mjs +123 -0
  11. package/esm2022/libs/api/metadata-converter/src/lib/iso19115-3/read-parts.mjs +116 -0
  12. package/esm2022/libs/api/metadata-converter/src/lib/iso19115-3/write-parts.mjs +138 -0
  13. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/index.mjs +2 -0
  14. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/iso19139.converter.mjs +242 -0
  15. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/read-parts.mjs +58 -62
  16. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/utils/individual-name.mjs +18 -0
  17. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/utils/keyword.mapper.mjs +14 -0
  18. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/utils/role.mapper.mjs +48 -0
  19. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/utils/status.mapper.mjs +18 -0
  20. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/utils/update-frequency.mapper.mjs +64 -0
  21. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/write-parts.mjs +75 -58
  22. package/esm2022/libs/api/metadata-converter/src/lib/xml-utils.mjs +76 -14
  23. package/esm2022/libs/api/repository/src/lib/gn4/auth/avatar.service.interface.mjs +1 -1
  24. package/esm2022/libs/api/repository/src/lib/gn4/auth/gravatar.service.mjs +12 -1
  25. package/esm2022/libs/api/repository/src/lib/gn4/gn4-repository.mjs +4 -4
  26. package/esm2022/libs/api/repository/src/lib/gn4/platform/gn4-platform.mapper.mjs +36 -3
  27. package/esm2022/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.mjs +19 -7
  28. package/esm2022/libs/common/domain/src/lib/model/record/index.mjs +2 -1
  29. package/esm2022/libs/common/domain/src/lib/model/record/metadata.model.mjs +1 -1
  30. package/esm2022/libs/common/domain/src/lib/model/record/user-feedbacks.model.mjs +2 -0
  31. package/esm2022/libs/common/domain/src/lib/model/user/index.mjs +2 -0
  32. package/esm2022/libs/common/domain/src/lib/platform.service.interface.mjs +1 -1
  33. package/esm2022/libs/data-access/gn4/src/openapi/api/records.api.service.mjs +35 -7
  34. package/esm2022/libs/data-access/gn4/src/openapi/model/models.mjs +1 -2
  35. package/esm2022/libs/feature/dataviz/src/lib/service/data.service.mjs +2 -2
  36. package/esm2022/libs/feature/editor/src/index.mjs +2 -2
  37. package/esm2022/libs/feature/editor/src/lib/+state/editor.facade.mjs +6 -2
  38. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-array/form-field-array.component.mjs +11 -0
  39. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-file/form-field-file.component.mjs +28 -0
  40. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-license/form-field-license.component.mjs +64 -0
  41. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-object/form-field-object.component.mjs +11 -0
  42. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-resource-updated/form-field-resource-updated.component.mjs +15 -0
  43. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-rich/form-field-rich.component.mjs +45 -0
  44. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-simple/form-field-simple.component.mjs +50 -0
  45. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-spatial-extent/form-field-spatial-extent.component.mjs +11 -0
  46. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extent/form-field-temporal-extent.component.mjs +11 -0
  47. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.mjs +121 -0
  48. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field.model.mjs +2 -0
  49. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/index.mjs +10 -0
  50. package/esm2022/libs/feature/editor/src/lib/components/record-form/record-form.component.mjs +29 -0
  51. package/esm2022/libs/feature/editor/src/lib/components/wizard-field/wizard-field.component.mjs +1 -1
  52. package/esm2022/libs/feature/editor/src/lib/feature-editor.module.mjs +10 -10
  53. package/esm2022/libs/feature/editor/src/lib/fields.config.mjs +16 -1
  54. package/esm2022/libs/feature/editor/src/lib/models/fields.model.mjs +1 -1
  55. package/esm2022/libs/feature/editor/src/lib/services/editor.service.mjs +8 -8
  56. package/esm2022/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-record-preview/add-layer-record-preview.component.mjs +6 -2
  57. package/esm2022/libs/feature/map/src/lib/add-layer-from-file/add-layer-from-file.component.mjs +3 -3
  58. package/esm2022/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.mjs +72 -0
  59. package/esm2022/libs/feature/map/src/lib/add-layer-from-wfs/add-layer-from-wfs.component.mjs +1 -1
  60. package/esm2022/libs/feature/map/src/lib/add-layer-from-wms/add-layer-from-wms.component.mjs +1 -1
  61. package/esm2022/libs/feature/map/src/lib/feature-map.module.mjs +7 -3
  62. package/esm2022/libs/feature/map/src/lib/layers-panel/layers-panel.component.mjs +12 -7
  63. package/esm2022/libs/feature/map/src/lib/map-context/map-context.model.mjs +2 -1
  64. package/esm2022/libs/feature/map/src/lib/map-context/map-context.service.mjs +52 -25
  65. package/esm2022/libs/feature/map/src/lib/utils/map-utils.service.mjs +12 -49
  66. package/esm2022/libs/feature/notifications/src/index.mjs +4 -0
  67. package/esm2022/libs/feature/notifications/src/lib/feature-notifications.module.mjs +18 -0
  68. package/esm2022/libs/feature/notifications/src/lib/notification.model.mjs +2 -0
  69. package/esm2022/libs/feature/notifications/src/lib/notifications-container/notifications-container.component.mjs +49 -0
  70. package/esm2022/libs/feature/notifications/src/lib/notifications.service.mjs +29 -0
  71. package/esm2022/libs/feature/record/src/lib/feature-record.module.mjs +4 -4
  72. package/esm2022/libs/feature/record/src/lib/map-view/map-view.component.mjs +6 -2
  73. package/esm2022/libs/feature/record/src/lib/state/mdview.actions.mjs +22 -4
  74. package/esm2022/libs/feature/record/src/lib/state/mdview.effects.mjs +37 -10
  75. package/esm2022/libs/feature/record/src/lib/state/mdview.facade.mjs +22 -7
  76. package/esm2022/libs/feature/record/src/lib/state/mdview.reducer.mjs +52 -17
  77. package/esm2022/libs/feature/record/src/lib/state/mdview.selectors.mjs +18 -3
  78. package/esm2022/libs/feature/router/src/lib/default/state/router.effects.mjs +2 -2
  79. package/esm2022/libs/feature/search/src/lib/results-table/results-table.component.mjs +3 -3
  80. package/esm2022/libs/ui/catalog/src/lib/organisation-preview/organisation-preview.component.mjs +3 -3
  81. package/esm2022/libs/ui/elements/src/index.mjs +15 -15
  82. package/esm2022/libs/ui/elements/src/lib/image-overlay-preview/image-overlay-preview.component.mjs +5 -5
  83. package/esm2022/libs/ui/elements/src/lib/markdown-editor/markdown-editor.component.mjs +45 -0
  84. package/esm2022/libs/ui/elements/src/lib/metadata-info/metadata-info.component.mjs +3 -3
  85. package/esm2022/libs/ui/elements/src/lib/notification/notification.component.mjs +34 -0
  86. package/esm2022/libs/ui/elements/src/lib/record-api-form/record-api-form.component.mjs +34 -7
  87. package/esm2022/libs/ui/elements/src/lib/thumbnail/thumbnail.component.mjs +4 -3
  88. package/esm2022/libs/ui/elements/src/lib/ui-elements.module.mjs +14 -5
  89. package/esm2022/libs/ui/elements/src/lib/user-feedback-item/time-since.pipe.mjs +59 -0
  90. package/esm2022/libs/ui/elements/src/lib/user-feedback-item/user-feedback-item.component.mjs +62 -0
  91. package/esm2022/libs/ui/inputs/src/index.mjs +15 -16
  92. package/esm2022/libs/ui/inputs/src/lib/button/button.component.mjs +2 -1
  93. package/esm2022/libs/ui/inputs/src/lib/date-picker/date-picker.component.mjs +22 -0
  94. package/esm2022/libs/ui/inputs/src/lib/date-range-picker/date-range-picker.component.mjs +7 -5
  95. package/esm2022/libs/ui/inputs/src/lib/dropdown-selector/dropdown-selector.component.mjs +17 -8
  96. package/esm2022/libs/ui/inputs/src/lib/files-drop/files-drop.directive.mjs +59 -0
  97. package/esm2022/libs/ui/inputs/src/lib/image-input/image-input.component.mjs +183 -0
  98. package/esm2022/libs/ui/inputs/src/lib/text-area/text-area.component.mjs +27 -4
  99. package/esm2022/libs/ui/inputs/src/lib/text-input/text-input.component.mjs +19 -3
  100. package/esm2022/libs/ui/inputs/src/lib/ui-inputs.module.mjs +18 -29
  101. package/esm2022/libs/ui/layout/src/index.mjs +6 -5
  102. package/esm2022/libs/ui/layout/src/lib/form-field-wrapper/form-field-wrapper.component.mjs +18 -0
  103. package/esm2022/libs/util/shared/src/lib/links/link-utils.mjs +22 -1
  104. package/esm2022/libs/util/shared/src/lib/utils/bytes-convert.mjs +4 -0
  105. package/esm2022/libs/util/shared/src/lib/utils/image-resize.mjs +60 -0
  106. package/esm2022/libs/util/shared/src/lib/utils/index.mjs +8 -6
  107. package/esm2022/translations/de.json +46 -0
  108. package/esm2022/translations/en.json +46 -0
  109. package/esm2022/translations/es.json +46 -0
  110. package/esm2022/translations/fr.json +46 -0
  111. package/esm2022/translations/it.json +46 -0
  112. package/esm2022/translations/nl.json +46 -0
  113. package/esm2022/translations/pt.json +46 -0
  114. package/fesm2022/geonetwork-ui.mjs +5228 -3277
  115. package/fesm2022/geonetwork-ui.mjs.map +1 -1
  116. package/index.d.ts +1 -0
  117. package/index.d.ts.map +1 -1
  118. package/index.ts +1 -0
  119. package/libs/api/metadata-converter/src/index.d.ts +4 -4
  120. package/libs/api/metadata-converter/src/index.d.ts.map +1 -1
  121. package/libs/api/metadata-converter/src/lib/{metadata-base.mapper.d.ts → base.converter.d.ts} +3 -3
  122. package/libs/api/metadata-converter/src/lib/base.converter.d.ts.map +1 -0
  123. package/libs/api/metadata-converter/src/lib/find-converter.d.ts +3 -0
  124. package/libs/api/metadata-converter/src/lib/find-converter.d.ts.map +1 -0
  125. package/libs/api/metadata-converter/src/lib/gn4/{gn4.metadata.mapper.d.ts → gn4.converter.d.ts} +5 -5
  126. package/libs/api/metadata-converter/src/lib/gn4/gn4.converter.d.ts.map +1 -0
  127. package/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.d.ts.map +1 -1
  128. package/libs/api/metadata-converter/src/lib/gn4/index.d.ts +4 -0
  129. package/libs/api/metadata-converter/src/lib/gn4/index.d.ts.map +1 -0
  130. package/libs/api/metadata-converter/src/lib/iso19115-3/index.d.ts +2 -0
  131. package/libs/api/metadata-converter/src/lib/iso19115-3/index.d.ts.map +1 -0
  132. package/libs/api/metadata-converter/src/lib/iso19115-3/iso19115-3.converter.d.ts +9 -0
  133. package/libs/api/metadata-converter/src/lib/iso19115-3/iso19115-3.converter.d.ts.map +1 -0
  134. package/libs/api/metadata-converter/src/lib/iso19115-3/read-parts.d.ts +20 -0
  135. package/libs/api/metadata-converter/src/lib/iso19115-3/read-parts.d.ts.map +1 -0
  136. package/libs/api/metadata-converter/src/lib/iso19115-3/write-parts.d.ts +21 -0
  137. package/libs/api/metadata-converter/src/lib/iso19115-3/write-parts.d.ts.map +1 -0
  138. package/libs/api/metadata-converter/src/lib/iso19139/index.d.ts +2 -0
  139. package/libs/api/metadata-converter/src/lib/iso19139/index.d.ts.map +1 -0
  140. package/libs/api/metadata-converter/src/lib/iso19139/iso19139.converter.d.ts +11 -0
  141. package/libs/api/metadata-converter/src/lib/iso19139/iso19139.converter.d.ts.map +1 -0
  142. package/libs/api/metadata-converter/src/lib/iso19139/read-parts.d.ts +34 -6
  143. package/libs/api/metadata-converter/src/lib/iso19139/read-parts.d.ts.map +1 -1
  144. package/libs/api/metadata-converter/src/lib/iso19139/utils/individual-name.d.ts +8 -0
  145. package/libs/api/metadata-converter/src/lib/iso19139/utils/individual-name.d.ts.map +1 -0
  146. package/libs/api/metadata-converter/src/lib/iso19139/utils/keyword.mapper.d.ts.map +1 -0
  147. package/libs/api/metadata-converter/src/lib/iso19139/utils/role.mapper.d.ts.map +1 -0
  148. package/libs/api/metadata-converter/src/lib/iso19139/utils/status.mapper.d.ts.map +1 -0
  149. package/libs/api/metadata-converter/src/lib/iso19139/utils/update-frequency.mapper.d.ts.map +1 -0
  150. package/libs/api/metadata-converter/src/lib/iso19139/write-parts.d.ts +39 -3
  151. package/libs/api/metadata-converter/src/lib/iso19139/write-parts.d.ts.map +1 -1
  152. package/libs/api/metadata-converter/src/lib/xml-utils.d.ts +14 -1
  153. package/libs/api/metadata-converter/src/lib/xml-utils.d.ts.map +1 -1
  154. package/libs/api/repository/src/lib/gn4/auth/avatar.service.interface.d.ts +1 -0
  155. package/libs/api/repository/src/lib/gn4/auth/avatar.service.interface.d.ts.map +1 -1
  156. package/libs/api/repository/src/lib/gn4/auth/gravatar.service.d.ts +1 -0
  157. package/libs/api/repository/src/lib/gn4/auth/gravatar.service.d.ts.map +1 -1
  158. package/libs/api/repository/src/lib/gn4/gn4-repository.d.ts +2 -2
  159. package/libs/api/repository/src/lib/gn4/gn4-repository.d.ts.map +1 -1
  160. package/libs/api/repository/src/lib/gn4/platform/gn4-platform.mapper.d.ts +6 -2
  161. package/libs/api/repository/src/lib/gn4/platform/gn4-platform.mapper.d.ts.map +1 -1
  162. package/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.d.ts +9 -6
  163. package/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.d.ts.map +1 -1
  164. package/libs/common/domain/src/lib/model/record/index.d.ts +1 -0
  165. package/libs/common/domain/src/lib/model/record/index.d.ts.map +1 -1
  166. package/libs/common/domain/src/lib/model/record/metadata.model.d.ts +6 -4
  167. package/libs/common/domain/src/lib/model/record/metadata.model.d.ts.map +1 -1
  168. package/libs/common/domain/src/lib/model/record/user-feedbacks.model.d.ts +15 -0
  169. package/libs/common/domain/src/lib/model/record/user-feedbacks.model.d.ts.map +1 -0
  170. package/libs/common/domain/src/lib/model/user/index.d.ts +2 -0
  171. package/libs/common/domain/src/lib/model/user/index.d.ts.map +1 -0
  172. package/libs/common/domain/src/lib/platform.service.interface.d.ts +3 -0
  173. package/libs/common/domain/src/lib/platform.service.interface.d.ts.map +1 -1
  174. package/libs/data-access/gn4/src/openapi/api/records.api.service.d.ts +9 -5
  175. package/libs/data-access/gn4/src/openapi/api/records.api.service.d.ts.map +1 -1
  176. package/libs/data-access/gn4/src/openapi/model/models.d.ts +0 -1
  177. package/libs/data-access/gn4/src/openapi/model/models.d.ts.map +1 -1
  178. package/libs/feature/editor/src/index.d.ts +1 -1
  179. package/libs/feature/editor/src/index.d.ts.map +1 -1
  180. package/libs/feature/editor/src/lib/+state/editor.facade.d.ts +8 -5
  181. package/libs/feature/editor/src/lib/+state/editor.facade.d.ts.map +1 -1
  182. 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
  183. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-array/form-field-array.component.d.ts.map +1 -0
  184. 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
  185. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-file/form-field-file.component.d.ts.map +1 -0
  186. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-license/form-field-license.component.d.ts +39 -0
  187. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-license/form-field-license.component.d.ts.map +1 -0
  188. 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
  189. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-object/form-field-object.component.d.ts.map +1 -0
  190. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-resource-updated/form-field-resource-updated.component.d.ts +8 -0
  191. 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
  192. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-rich/form-field-rich.component.d.ts +16 -0
  193. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-rich/form-field-rich.component.d.ts.map +1 -0
  194. 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
  195. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-simple/form-field-simple.component.d.ts.map +1 -0
  196. 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
  197. 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
  198. 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
  199. 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
  200. package/libs/{ui/inputs/src/lib → feature/editor/src/lib/components/record-form}/form-field/form-field.component.d.ts +12 -4
  201. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.d.ts.map +1 -0
  202. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field.model.d.ts.map +1 -0
  203. package/libs/feature/editor/src/lib/components/record-form/form-field/index.d.ts.map +1 -0
  204. package/libs/feature/editor/src/lib/{record-form → components/record-form}/record-form.component.d.ts +3 -3
  205. package/libs/feature/editor/src/lib/components/record-form/record-form.component.d.ts.map +1 -0
  206. package/libs/feature/editor/src/lib/feature-editor.module.d.ts +1 -1
  207. package/libs/feature/editor/src/lib/feature-editor.module.d.ts.map +1 -1
  208. package/libs/feature/editor/src/lib/fields.config.d.ts.map +1 -1
  209. package/libs/feature/editor/src/lib/models/fields.model.d.ts +1 -1
  210. package/libs/feature/editor/src/lib/services/editor.service.d.ts.map +1 -1
  211. package/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-record-preview/add-layer-record-preview.component.d.ts.map +1 -1
  212. package/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.d.ts +23 -0
  213. package/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.d.ts.map +1 -0
  214. package/libs/feature/map/src/lib/feature-map.module.d.ts +2 -1
  215. package/libs/feature/map/src/lib/feature-map.module.d.ts.map +1 -1
  216. package/libs/feature/map/src/lib/layers-panel/layers-panel.component.d.ts +2 -0
  217. package/libs/feature/map/src/lib/layers-panel/layers-panel.component.d.ts.map +1 -1
  218. package/libs/feature/map/src/lib/map-context/map-context.model.d.ts +10 -5
  219. package/libs/feature/map/src/lib/map-context/map-context.model.d.ts.map +1 -1
  220. package/libs/feature/map/src/lib/map-context/map-context.service.d.ts.map +1 -1
  221. package/libs/feature/map/src/lib/utils/map-utils.service.d.ts +2 -3
  222. package/libs/feature/map/src/lib/utils/map-utils.service.d.ts.map +1 -1
  223. package/libs/feature/notifications/src/index.d.ts +4 -0
  224. package/libs/feature/notifications/src/index.d.ts.map +1 -0
  225. package/libs/feature/notifications/src/lib/feature-notifications.module.d.ts +7 -0
  226. package/libs/feature/notifications/src/lib/feature-notifications.module.d.ts.map +1 -0
  227. package/libs/feature/notifications/src/lib/notification.model.d.ts +7 -0
  228. package/libs/feature/notifications/src/lib/notification.model.d.ts.map +1 -0
  229. package/libs/feature/notifications/src/lib/notifications-container/notifications-container.component.d.ts +12 -0
  230. package/libs/feature/notifications/src/lib/notifications-container/notifications-container.component.d.ts.map +1 -0
  231. package/libs/feature/notifications/src/lib/notifications.service.d.ts +15 -0
  232. package/libs/feature/notifications/src/lib/notifications.service.d.ts.map +1 -0
  233. package/libs/feature/record/src/lib/feature-record.module.d.ts.map +1 -1
  234. package/libs/feature/record/src/lib/map-view/map-view.component.d.ts.map +1 -1
  235. package/libs/feature/record/src/lib/state/mdview.actions.d.ts +40 -6
  236. package/libs/feature/record/src/lib/state/mdview.actions.d.ts.map +1 -1
  237. package/libs/feature/record/src/lib/state/mdview.effects.d.ts +24 -4
  238. package/libs/feature/record/src/lib/state/mdview.effects.d.ts.map +1 -1
  239. package/libs/feature/record/src/lib/state/mdview.facade.d.ts +14 -4
  240. package/libs/feature/record/src/lib/state/mdview.facade.d.ts.map +1 -1
  241. package/libs/feature/record/src/lib/state/mdview.reducer.d.ts +8 -5
  242. package/libs/feature/record/src/lib/state/mdview.reducer.d.ts.map +1 -1
  243. package/libs/feature/record/src/lib/state/mdview.selectors.d.ts +12 -9
  244. package/libs/feature/record/src/lib/state/mdview.selectors.d.ts.map +1 -1
  245. package/libs/ui/elements/src/index.d.ts +14 -14
  246. package/libs/ui/elements/src/index.d.ts.map +1 -1
  247. package/libs/ui/elements/src/lib/downloads-list/downloads-list.component.d.ts +1 -1
  248. package/libs/ui/elements/src/lib/markdown-editor/markdown-editor.component.d.ts +13 -0
  249. package/libs/ui/elements/src/lib/markdown-editor/markdown-editor.component.d.ts.map +1 -0
  250. package/libs/ui/elements/src/lib/notification/notification.component.d.ts +13 -0
  251. package/libs/ui/elements/src/lib/notification/notification.component.d.ts.map +1 -0
  252. package/libs/ui/elements/src/lib/record-api-form/record-api-form.component.d.ts +4 -2
  253. package/libs/ui/elements/src/lib/record-api-form/record-api-form.component.d.ts.map +1 -1
  254. package/libs/ui/elements/src/lib/thumbnail/thumbnail.component.d.ts +1 -1
  255. package/libs/ui/elements/src/lib/thumbnail/thumbnail.component.d.ts.map +1 -1
  256. package/libs/ui/elements/src/lib/ui-elements.module.d.ts +10 -8
  257. package/libs/ui/elements/src/lib/ui-elements.module.d.ts.map +1 -1
  258. package/libs/ui/elements/src/lib/user-feedback-item/time-since.pipe.d.ts +11 -0
  259. package/libs/ui/elements/src/lib/user-feedback-item/time-since.pipe.d.ts.map +1 -0
  260. package/libs/ui/elements/src/lib/user-feedback-item/user-feedback-item.component.d.ts +22 -0
  261. package/libs/ui/elements/src/lib/user-feedback-item/user-feedback-item.component.d.ts.map +1 -0
  262. package/libs/ui/inputs/src/index.d.ts +14 -15
  263. package/libs/ui/inputs/src/index.d.ts.map +1 -1
  264. package/libs/ui/inputs/src/lib/button/button.component.d.ts.map +1 -1
  265. package/libs/ui/inputs/src/lib/date-picker/date-picker.component.d.ts +9 -0
  266. package/libs/ui/inputs/src/lib/date-picker/date-picker.component.d.ts.map +1 -0
  267. package/libs/ui/inputs/src/lib/date-range-picker/date-range-picker.component.d.ts +1 -1
  268. package/libs/ui/inputs/src/lib/date-range-picker/date-range-picker.component.d.ts.map +1 -1
  269. package/libs/ui/inputs/src/lib/dropdown-selector/dropdown-selector.component.d.ts +1 -1
  270. package/libs/ui/inputs/src/lib/dropdown-selector/dropdown-selector.component.d.ts.map +1 -1
  271. package/libs/ui/inputs/src/lib/files-drop/files-drop.directive.d.ts +14 -0
  272. package/libs/ui/inputs/src/lib/files-drop/files-drop.directive.d.ts.map +1 -0
  273. package/libs/ui/inputs/src/lib/image-input/image-input.component.d.ts +44 -0
  274. package/libs/ui/inputs/src/lib/image-input/image-input.component.d.ts.map +1 -0
  275. package/libs/ui/inputs/src/lib/text-area/text-area.component.d.ts +7 -1
  276. package/libs/ui/inputs/src/lib/text-area/text-area.component.d.ts.map +1 -1
  277. package/libs/ui/inputs/src/lib/text-input/text-input.component.d.ts +4 -1
  278. package/libs/ui/inputs/src/lib/text-input/text-input.component.d.ts.map +1 -1
  279. package/libs/ui/inputs/src/lib/ui-inputs.module.d.ts +35 -42
  280. package/libs/ui/inputs/src/lib/ui-inputs.module.d.ts.map +1 -1
  281. package/libs/ui/layout/src/index.d.ts +5 -4
  282. package/libs/ui/layout/src/index.d.ts.map +1 -1
  283. package/libs/ui/layout/src/lib/form-field-wrapper/form-field-wrapper.component.d.ts +8 -0
  284. package/libs/ui/layout/src/lib/form-field-wrapper/form-field-wrapper.component.d.ts.map +1 -0
  285. package/libs/util/shared/src/lib/links/link-utils.d.ts +18 -0
  286. package/libs/util/shared/src/lib/links/link-utils.d.ts.map +1 -1
  287. package/libs/util/shared/src/lib/utils/bytes-convert.d.ts +2 -0
  288. package/libs/util/shared/src/lib/utils/bytes-convert.d.ts.map +1 -0
  289. package/libs/util/shared/src/lib/utils/image-resize.d.ts +3 -0
  290. package/libs/util/shared/src/lib/utils/image-resize.d.ts.map +1 -0
  291. package/libs/util/shared/src/lib/utils/index.d.ts +7 -5
  292. package/libs/util/shared/src/lib/utils/index.d.ts.map +1 -1
  293. package/package.json +2 -2
  294. package/src/libs/api/metadata-converter/src/index.ts +4 -4
  295. package/src/libs/api/metadata-converter/src/lib/{metadata-base.mapper.ts → base.converter.ts} +2 -2
  296. package/src/libs/api/metadata-converter/src/lib/find-converter.ts +16 -0
  297. package/src/libs/api/metadata-converter/src/lib/fixtures/generic.records.ts +32 -5
  298. package/src/libs/api/metadata-converter/src/lib/fixtures/geo2france.records.ts +11 -4
  299. package/src/libs/api/metadata-converter/src/lib/fixtures/geocat-ch.records.ts +33 -7
  300. package/src/libs/api/metadata-converter/src/lib/fixtures/metawal.records.ts +580 -0
  301. package/src/libs/api/metadata-converter/src/lib/gn4/atomic-operations.ts +2 -2
  302. package/src/libs/api/metadata-converter/src/lib/gn4/{gn4.metadata.mapper.ts → gn4.converter.ts} +2 -2
  303. package/src/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.ts +9 -3
  304. package/src/libs/api/metadata-converter/src/lib/gn4/index.ts +3 -0
  305. package/src/libs/api/metadata-converter/src/lib/iso19115-3/index.ts +1 -0
  306. package/src/libs/api/metadata-converter/src/lib/iso19115-3/iso19115-3.converter.ts +176 -0
  307. package/src/libs/api/metadata-converter/src/lib/iso19115-3/read-parts.ts +329 -0
  308. package/src/libs/api/metadata-converter/src/lib/iso19115-3/write-parts.ts +513 -0
  309. package/src/libs/api/metadata-converter/src/lib/iso19139/index.ts +1 -0
  310. package/src/libs/api/metadata-converter/src/lib/iso19139/iso19139.converter.ts +327 -0
  311. package/src/libs/api/metadata-converter/src/lib/iso19139/read-parts.ts +121 -82
  312. package/src/libs/api/metadata-converter/src/lib/iso19139/utils/individual-name.ts +20 -0
  313. package/src/libs/api/metadata-converter/src/lib/iso19139/write-parts.ts +175 -95
  314. package/src/libs/api/metadata-converter/src/lib/xml-utils.ts +84 -16
  315. package/src/libs/api/repository/src/lib/gn4/auth/avatar.service.interface.ts +1 -0
  316. package/src/libs/api/repository/src/lib/gn4/auth/gravatar.service.ts +12 -1
  317. package/src/libs/api/repository/src/lib/gn4/gn4-repository.ts +2 -2
  318. package/src/libs/api/repository/src/lib/gn4/platform/gn4-platform.mapper.ts +51 -1
  319. package/src/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.ts +34 -7
  320. package/src/libs/common/domain/src/lib/model/record/index.ts +1 -0
  321. package/src/libs/common/domain/src/lib/model/record/metadata.model.ts +9 -4
  322. package/src/libs/common/domain/src/lib/model/record/user-feedbacks.model.ts +15 -0
  323. package/src/libs/common/domain/src/lib/platform.service.interface.ts +3 -0
  324. package/src/libs/common/fixtures/src/index.ts +8 -6
  325. package/src/libs/common/fixtures/src/lib/records.fixtures.ts +3 -3
  326. package/src/libs/common/fixtures/src/lib/user-feedbacks.fixtures.ts +83 -0
  327. package/src/libs/data-access/gn4/src/openapi/api/records.api.service.ts +43 -12
  328. package/src/libs/data-access/gn4/src/openapi/model/models.ts +0 -1
  329. package/src/libs/data-access/gn4/src/spec.yaml +1 -1
  330. package/src/libs/feature/dataviz/src/lib/service/data.service.ts +1 -1
  331. package/src/libs/feature/editor/src/index.ts +1 -1
  332. package/src/libs/feature/editor/src/lib/+state/editor.facade.ts +8 -1
  333. package/src/libs/feature/editor/src/lib/components/overview-upload/overview-upload.component.html +8 -0
  334. package/src/libs/feature/editor/src/lib/components/overview-upload/overview-upload.component.ts +70 -0
  335. 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
  336. 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
  337. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-license/form-field-license.component.html +8 -0
  338. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-license/form-field-license.component.ts +64 -0
  339. 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
  340. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-resource-updated/form-field-resource-updated.component.html +4 -0
  341. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-resource-updated/form-field-resource-updated.component.ts +15 -0
  342. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-rich/form-field-rich.component.html +20 -0
  343. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-rich/form-field-rich.component.ts +44 -0
  344. 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
  345. 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
  346. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extent/form-field-temporal-extent.component.css +0 -0
  347. 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
  348. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.css +0 -0
  349. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.html +92 -0
  350. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.ts +137 -0
  351. package/src/libs/feature/editor/src/lib/components/record-form/record-form.component.css +0 -0
  352. package/src/libs/feature/editor/src/lib/{record-form → components/record-form}/record-form.component.html +1 -0
  353. package/src/libs/feature/editor/src/lib/{record-form → components/record-form}/record-form.component.ts +4 -4
  354. package/src/libs/feature/editor/src/lib/feature-editor.module.ts +9 -9
  355. package/src/libs/feature/editor/src/lib/fields.config.ts +15 -0
  356. package/src/libs/feature/editor/src/lib/models/fields.model.ts +1 -1
  357. package/src/libs/feature/editor/src/lib/services/editor.service.ts +27 -16
  358. package/src/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-record-preview/add-layer-record-preview.component.ts +5 -1
  359. package/src/libs/feature/map/src/lib/add-layer-from-file/add-layer-from-file.component.html +1 -1
  360. package/src/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.css +0 -0
  361. package/src/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.html +36 -0
  362. package/src/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.ts +80 -0
  363. package/src/libs/feature/map/src/lib/feature-map.module.ts +2 -0
  364. package/src/libs/feature/map/src/lib/layers-panel/layers-panel.component.html +8 -0
  365. package/src/libs/feature/map/src/lib/layers-panel/layers-panel.component.ts +5 -0
  366. package/src/libs/feature/map/src/lib/map-context/map-context.model.ts +10 -3
  367. package/src/libs/feature/map/src/lib/map-context/map-context.service.ts +60 -32
  368. package/src/libs/feature/map/src/lib/utils/map-utils.service.ts +17 -61
  369. package/src/libs/feature/notifications/src/index.ts +3 -0
  370. package/src/libs/feature/notifications/src/lib/feature-notifications.module.ts +10 -0
  371. package/src/libs/feature/notifications/src/lib/notification.model.ts +6 -0
  372. package/src/libs/feature/notifications/src/lib/notifications-container/notifications-container.component.css +0 -0
  373. package/src/libs/feature/notifications/src/lib/notifications-container/notifications-container.component.html +17 -0
  374. package/src/libs/feature/notifications/src/lib/notifications-container/notifications-container.component.ts +44 -0
  375. package/src/libs/feature/notifications/src/lib/notifications.service.ts +27 -0
  376. package/src/libs/feature/record/src/lib/feature-record.module.ts +5 -2
  377. package/src/libs/feature/record/src/lib/map-view/map-view.component.ts +5 -1
  378. package/src/libs/feature/record/src/lib/state/mdview.actions.ts +51 -6
  379. package/src/libs/feature/record/src/lib/state/mdview.effects.ts +82 -7
  380. package/src/libs/feature/record/src/lib/state/mdview.facade.ts +49 -8
  381. package/src/libs/feature/record/src/lib/state/mdview.reducer.ts +81 -24
  382. package/src/libs/feature/record/src/lib/state/mdview.selectors.ts +40 -10
  383. package/src/libs/feature/router/src/lib/default/state/router.effects.ts +2 -2
  384. package/src/libs/feature/search/src/lib/results-table/results-table.component.html +3 -3
  385. package/src/libs/ui/catalog/src/lib/organisation-preview/organisation-preview.component.html +5 -5
  386. package/src/libs/ui/elements/src/index.ts +14 -14
  387. package/src/libs/ui/elements/src/lib/image-overlay-preview/image-overlay-preview.component.html +1 -1
  388. package/src/libs/ui/elements/src/lib/markdown-editor/markdown-editor.component.css +0 -5
  389. package/src/libs/ui/elements/src/lib/markdown-editor/markdown-editor.component.html +0 -21
  390. package/src/libs/ui/elements/src/lib/markdown-editor/markdown-editor.component.ts +1 -14
  391. package/src/libs/ui/elements/src/lib/notification/notification.component.css +0 -0
  392. package/src/libs/ui/elements/src/lib/notification/notification.component.html +52 -0
  393. package/src/libs/ui/elements/src/lib/notification/notification.component.ts +31 -0
  394. package/src/libs/ui/elements/src/lib/record-api-form/record-api-form.component.html +2 -2
  395. package/src/libs/ui/elements/src/lib/record-api-form/record-api-form.component.ts +40 -4
  396. package/src/libs/ui/elements/src/lib/thumbnail/thumbnail.component.ts +5 -3
  397. package/src/libs/ui/elements/src/lib/ui-elements.module.ts +6 -1
  398. package/src/libs/ui/elements/src/lib/user-feedback-item/time-since.pipe.ts +54 -0
  399. package/src/libs/ui/elements/src/lib/user-feedback-item/user-feedback-item.component.css +0 -0
  400. package/src/libs/ui/elements/src/lib/user-feedback-item/user-feedback-item.component.html +75 -0
  401. package/src/libs/ui/elements/src/lib/user-feedback-item/user-feedback-item.component.ts +63 -0
  402. package/src/libs/ui/inputs/src/index.ts +14 -15
  403. package/src/libs/ui/inputs/src/lib/button/button.component.ts +1 -1
  404. package/src/libs/ui/inputs/src/lib/date-picker/date-picker.component.css +3 -0
  405. package/src/libs/ui/inputs/src/lib/date-picker/date-picker.component.html +11 -0
  406. package/src/libs/ui/inputs/src/lib/date-picker/date-picker.component.ts +16 -0
  407. package/src/libs/ui/inputs/src/lib/date-range-picker/date-range-picker.component.ts +8 -1
  408. package/src/libs/ui/inputs/src/lib/dropdown-selector/dropdown-selector.component.ts +13 -0
  409. package/src/libs/ui/inputs/src/lib/files-drop/files-drop.directive.ts +45 -0
  410. package/src/libs/ui/inputs/src/lib/image-input/image-input.component.css +0 -0
  411. package/src/libs/ui/inputs/src/lib/image-input/image-input.component.html +146 -0
  412. package/src/libs/ui/inputs/src/lib/image-input/image-input.component.ts +193 -0
  413. package/src/libs/ui/inputs/src/lib/text-area/text-area.component.html +2 -1
  414. package/src/libs/ui/inputs/src/lib/text-area/text-area.component.ts +29 -0
  415. package/src/libs/ui/inputs/src/lib/text-input/text-input.component.html +1 -1
  416. package/src/libs/ui/inputs/src/lib/text-input/text-input.component.ts +16 -1
  417. package/src/libs/ui/inputs/src/lib/ui-inputs.module.ts +5 -21
  418. package/src/libs/ui/layout/src/index.ts +5 -4
  419. package/src/libs/ui/layout/src/lib/form-field-wrapper/form-field-wrapper.component.css +0 -0
  420. package/src/libs/ui/layout/src/lib/form-field-wrapper/form-field-wrapper.component.html +18 -0
  421. package/src/libs/ui/layout/src/lib/form-field-wrapper/form-field-wrapper.component.ts +16 -0
  422. package/src/libs/util/shared/src/lib/links/link-utils.ts +21 -0
  423. package/src/libs/util/shared/src/lib/utils/bytes-convert.ts +3 -0
  424. package/src/libs/util/shared/src/lib/utils/image-resize.ts +72 -0
  425. package/src/libs/util/shared/src/lib/utils/index.ts +7 -5
  426. package/tailwind.base.css +36 -0
  427. package/translations/de.json +46 -0
  428. package/translations/en.json +46 -0
  429. package/translations/es.json +46 -0
  430. package/translations/fr.json +46 -0
  431. package/translations/it.json +46 -0
  432. package/translations/nl.json +46 -0
  433. package/translations/pt.json +46 -0
  434. package/translations/sk.json +46 -0
  435. package/esm2022/libs/api/metadata-converter/src/lib/gn4/gn4.metadata.mapper.mjs +0 -52
  436. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/codelists/keyword.mapper.mjs +0 -14
  437. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/codelists/role.mapper.mjs +0 -48
  438. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/codelists/status.mapper.mjs +0 -18
  439. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/codelists/update-frequency.mapper.mjs +0 -64
  440. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/converter.mjs +0 -130
  441. package/esm2022/libs/api/metadata-converter/src/lib/metadata-base.mapper.mjs +0 -14
  442. package/esm2022/libs/data-access/gn4/src/openapi/model/inlineObject3.api.model.mjs +0 -13
  443. package/esm2022/libs/feature/editor/src/lib/record-form/record-form.component.mjs +0 -30
  444. package/esm2022/libs/ui/inputs/src/lib/form-field/form-field-array/form-field-array.component.mjs +0 -11
  445. package/esm2022/libs/ui/inputs/src/lib/form-field/form-field-file/form-field-file.component.mjs +0 -27
  446. package/esm2022/libs/ui/inputs/src/lib/form-field/form-field-object/form-field-object.component.mjs +0 -11
  447. package/esm2022/libs/ui/inputs/src/lib/form-field/form-field-rich/form-field-rich.component.mjs +0 -27
  448. package/esm2022/libs/ui/inputs/src/lib/form-field/form-field-simple/form-field-simple.component.mjs +0 -49
  449. package/esm2022/libs/ui/inputs/src/lib/form-field/form-field-spatial-extent/form-field-spatial-extent.component.mjs +0 -11
  450. package/esm2022/libs/ui/inputs/src/lib/form-field/form-field-temporal-extent/form-field-temporal-extent.component.mjs +0 -11
  451. package/esm2022/libs/ui/inputs/src/lib/form-field/form-field.component.mjs +0 -76
  452. package/esm2022/libs/ui/inputs/src/lib/form-field/form-field.model.mjs +0 -2
  453. package/esm2022/libs/ui/inputs/src/lib/form-field/index.mjs +0 -10
  454. package/libs/api/metadata-converter/src/lib/gn4/gn4.metadata.mapper.d.ts.map +0 -1
  455. package/libs/api/metadata-converter/src/lib/iso19139/codelists/keyword.mapper.d.ts.map +0 -1
  456. package/libs/api/metadata-converter/src/lib/iso19139/codelists/role.mapper.d.ts.map +0 -1
  457. package/libs/api/metadata-converter/src/lib/iso19139/codelists/status.mapper.d.ts.map +0 -1
  458. package/libs/api/metadata-converter/src/lib/iso19139/codelists/update-frequency.mapper.d.ts.map +0 -1
  459. package/libs/api/metadata-converter/src/lib/iso19139/converter.d.ts +0 -4
  460. package/libs/api/metadata-converter/src/lib/iso19139/converter.d.ts.map +0 -1
  461. package/libs/api/metadata-converter/src/lib/metadata-base.mapper.d.ts.map +0 -1
  462. package/libs/data-access/gn4/src/openapi/model/inlineObject3.api.model.d.ts +0 -18
  463. package/libs/data-access/gn4/src/openapi/model/inlineObject3.api.model.d.ts.map +0 -1
  464. package/libs/feature/editor/src/lib/record-form/record-form.component.d.ts.map +0 -1
  465. package/libs/ui/inputs/src/lib/form-field/form-field-array/form-field-array.component.d.ts.map +0 -1
  466. package/libs/ui/inputs/src/lib/form-field/form-field-file/form-field-file.component.d.ts.map +0 -1
  467. package/libs/ui/inputs/src/lib/form-field/form-field-object/form-field-object.component.d.ts.map +0 -1
  468. package/libs/ui/inputs/src/lib/form-field/form-field-rich/form-field-rich.component.d.ts +0 -11
  469. package/libs/ui/inputs/src/lib/form-field/form-field-rich/form-field-rich.component.d.ts.map +0 -1
  470. package/libs/ui/inputs/src/lib/form-field/form-field-simple/form-field-simple.component.d.ts.map +0 -1
  471. package/libs/ui/inputs/src/lib/form-field/form-field-spatial-extent/form-field-spatial-extent.component.d.ts.map +0 -1
  472. package/libs/ui/inputs/src/lib/form-field/form-field-temporal-extent/form-field-temporal-extent.component.d.ts.map +0 -1
  473. package/libs/ui/inputs/src/lib/form-field/form-field.component.d.ts.map +0 -1
  474. package/libs/ui/inputs/src/lib/form-field/form-field.model.d.ts.map +0 -1
  475. package/libs/ui/inputs/src/lib/form-field/index.d.ts.map +0 -1
  476. package/src/libs/api/metadata-converter/src/lib/iso19139/converter.ts +0 -196
  477. package/src/libs/data-access/gn4/src/openapi/model/inlineObject3.api.model.ts +0 -18
  478. package/src/libs/ui/inputs/src/lib/form-field/form-field-rich/form-field-rich.component.html +0 -11
  479. package/src/libs/ui/inputs/src/lib/form-field/form-field-rich/form-field-rich.component.ts +0 -15
  480. package/src/libs/ui/inputs/src/lib/form-field/form-field.component.html +0 -68
  481. package/src/libs/ui/inputs/src/lib/form-field/form-field.component.ts +0 -80
  482. /package/libs/api/metadata-converter/src/lib/iso19139/{codelists → utils}/keyword.mapper.d.ts +0 -0
  483. /package/libs/api/metadata-converter/src/lib/iso19139/{codelists → utils}/role.mapper.d.ts +0 -0
  484. /package/libs/api/metadata-converter/src/lib/iso19139/{codelists → utils}/status.mapper.d.ts +0 -0
  485. /package/libs/api/metadata-converter/src/lib/iso19139/{codelists → utils}/update-frequency.mapper.d.ts +0 -0
  486. /package/libs/{ui/inputs/src/lib → feature/editor/src/lib/components/record-form}/form-field/form-field.model.d.ts +0 -0
  487. /package/libs/{ui/inputs/src/lib → feature/editor/src/lib/components/record-form}/form-field/index.d.ts +0 -0
  488. /package/src/libs/api/metadata-converter/src/lib/iso19139/{codelists → utils}/keyword.mapper.ts +0 -0
  489. /package/src/libs/api/metadata-converter/src/lib/iso19139/{codelists → utils}/role.mapper.ts +0 -0
  490. /package/src/libs/api/metadata-converter/src/lib/iso19139/{codelists → utils}/status.mapper.ts +0 -0
  491. /package/src/libs/api/metadata-converter/src/lib/iso19139/{codelists → utils}/update-frequency.mapper.ts +0 -0
  492. /package/src/libs/feature/editor/src/lib/{record-form/record-form.component.css → components/overview-upload/overview-upload.component.css} +0 -0
  493. /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
  494. /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
  495. /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
  496. /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
  497. /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
  498. /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
  499. /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
  500. /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
  501. /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
  502. /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
  503. /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
  504. /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
  505. /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
  506. /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
  507. /package/src/libs/{ui/inputs/src/lib → feature/editor/src/lib/components/record-form}/form-field/form-field.model.ts +0 -0
  508. /package/src/libs/{ui/inputs/src/lib → feature/editor/src/lib/components/record-form}/form-field/index.ts +0 -0
@@ -7,15 +7,11 @@ import { transformExtent } from 'ol/proj';
7
7
  import ImageWMS from 'ol/source/ImageWMS';
8
8
  import TileWMS from 'ol/source/TileWMS';
9
9
  import VectorSource from 'ol/source/Vector';
10
- import { optionsFromCapabilities } from 'ol/source/WMTS';
11
10
  import { defaults, DragPan, MouseWheelZoom } from 'ol/interaction';
12
11
  import { mouseOnly, noModifierKeys, platformModifierKeyOnly, primaryAction, } from 'ol/events/condition';
13
- import WMTSCapabilities from 'ol/format/WMTSCapabilities';
14
- import { from } from 'rxjs';
15
12
  import { map } from 'rxjs/operators';
16
- import { MapContextLayerTypeEnum, } from '../map-context/map-context.model';
17
13
  import { ProxyService } from '../../../../../../libs/util/shared/src';
18
- import { WmsEndpoint } from '@camptocamp/ogc-client';
14
+ import { WmsEndpoint, WmtsEndpoint } from '@camptocamp/ogc-client';
19
15
  import { LONLAT_CRS_CODES } from '../constant/projections';
20
16
  import { fromEPSGCode, register } from 'ol/proj/proj4';
21
17
  import proj4 from 'proj4/dist/proj4';
@@ -101,12 +97,14 @@ export class MapUtilsService {
101
97
  latLonExtent = await this.getWmsLayerExtent(layer);
102
98
  }
103
99
  else if (layer && layer.type === 'wmts') {
104
- if (layer.extent) {
105
- latLonExtent = layer.extent;
106
- }
107
- else {
108
- return layer.options.tileGrid.getExtent();
109
- }
100
+ // TODO: isolate this in utils service
101
+ latLonExtent = await new WmtsEndpoint(layer.url)
102
+ .isReady()
103
+ .then((endpoint) => {
104
+ const layerName = endpoint.getSingleLayerName() ?? layer.name;
105
+ const wmtsLayer = endpoint.getLayerByName(layerName);
106
+ return wmtsLayer.latLonBoundingBox;
107
+ });
110
108
  }
111
109
  else {
112
110
  return null;
@@ -124,50 +122,15 @@ export class MapUtilsService {
124
122
  }
125
123
  const lonLatCRS = Object.keys(boundingBoxes)?.find((crs) => LONLAT_CRS_CODES.includes(crs));
126
124
  if (lonLatCRS) {
127
- return boundingBoxes[lonLatCRS].map(parseFloat);
125
+ return boundingBoxes[lonLatCRS];
128
126
  }
129
127
  else {
130
128
  const availableEPSGCode = Object.keys(boundingBoxes)[0];
131
129
  register(proj4);
132
130
  const proj = await fromEPSGCode(availableEPSGCode);
133
- const bboxWithFiniteNumbers = boundingBoxes[availableEPSGCode].map(parseFloat);
134
- return transformExtent(bboxWithFiniteNumbers, proj, 'EPSG:4326');
131
+ return transformExtent(boundingBoxes[availableEPSGCode], proj, 'EPSG:4326');
135
132
  }
136
133
  }
137
- getWmtsLayerFromCapabilities(link) {
138
- const getCapabilitiesUrl = new URL(link.url, window.location.toString());
139
- getCapabilitiesUrl.searchParams.set('SERVICE', 'WMTS');
140
- getCapabilitiesUrl.searchParams.set('REQUEST', 'GetCapabilities');
141
- return from(fetch(getCapabilitiesUrl.toString())
142
- .then(async function (response) {
143
- if (!response.ok) {
144
- throw new Error(`WMTS GetCapabilities HTTP request failed with code ${response.status} and body:
145
- ${await response.text()}`);
146
- }
147
- return response.text();
148
- })
149
- .then(function (text) {
150
- try {
151
- const result = new WMTSCapabilities().read(text);
152
- const options = optionsFromCapabilities(result, {
153
- layer: link.name,
154
- matrixSet: 'EPSG:3857',
155
- });
156
- const layerCap = result?.Contents?.Layer.find((layer) => layer.Identifier === link.name);
157
- return {
158
- options,
159
- type: MapContextLayerTypeEnum.WMTS,
160
- ...(layerCap?.WGS84BoundingBox
161
- ? { extent: layerCap.WGS84BoundingBox }
162
- : {}),
163
- };
164
- }
165
- catch (e) {
166
- throw new Error(`WMTS GetCapabilities parsing failed:
167
- ${e.stack || e.message || e}`);
168
- }
169
- }));
170
- }
171
134
  prioritizePageScroll(interactions) {
172
135
  interactions.clear();
173
136
  interactions.extend(defaults({
@@ -222,4 +185,4 @@ export function mouseWheelZoomCondition(event) {
222
185
  }
223
186
  return platformModifierKeyOnly(event);
224
187
  }
225
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwLXV0aWxzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ZlYXR1cmUvbWFwL3NyYy9saWIvdXRpbHMvbWFwLXV0aWxzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBQ2pELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFFMUMsT0FBTyxFQUFFLE1BQU0sRUFBVSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUE7QUFFbkQsT0FBTyxPQUFPLE1BQU0sbUJBQW1CLENBQUE7QUFHdkMsT0FBTyxHQUFHLE1BQU0sUUFBUSxDQUFBO0FBQ3hCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxTQUFTLENBQUE7QUFFekMsT0FBTyxRQUFRLE1BQU0sb0JBQW9CLENBQUE7QUFDekMsT0FBTyxPQUFPLE1BQU0sbUJBQW1CLENBQUE7QUFDdkMsT0FBTyxZQUFZLE1BQU0sa0JBQWtCLENBQUE7QUFDM0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDeEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQWUsY0FBYyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDL0UsT0FBTyxFQUNMLFNBQVMsRUFDVCxjQUFjLEVBQ2QsdUJBQXVCLEVBQ3ZCLGFBQWEsR0FDZCxNQUFNLHFCQUFxQixDQUFBO0FBQzVCLE9BQU8sZ0JBQWdCLE1BQU0sNEJBQTRCLENBQUE7QUFDekQsT0FBTyxFQUFFLElBQUksRUFBYyxNQUFNLE1BQU0sQ0FBQTtBQUN2QyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDcEMsT0FBTyxFQUVMLHVCQUF1QixHQUd4QixNQUFNLGtDQUFrQyxDQUFBO0FBT3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx3Q0FBd0MsQ0FB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QUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COztBQWdPRCxNQUFNLFVBQVUsZ0JBQWdCLENBRTlCLEtBQW9DO0lBRXBDLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGVBQWUsRUFBRSxLQUFLLENBQUMsSUFBSSxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDekUsSUFBSSxDQUFDLGdCQUFnQixFQUFFO1FBQ3JCLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUE7S0FDeEM7SUFDRCw0REFBNEQ7SUFDNUQsT0FBTyxnQkFBZ0IsSUFBSSxjQUFjLENBQUMsS0FBSyxDQUFDLElBQUksYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFBO0FBQzFFLENBQUM7QUFFRCxNQUFNLFVBQVUsdUJBQXVCLENBRXJDLEtBQStCO0lBRS9CLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLE9BQU8sRUFBRTtRQUM3RCxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFBO0tBQ3hDO0lBQ0QsT0FBTyx1QkFBdUIsQ0FBQyxLQUFLLENBQUMsQ0FBQTtBQUN2QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJ1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgdHlwZSB7IEZlYXR1cmVDb2xsZWN0aW9uIH0gZnJvbSAnZ2VvanNvbidcbmltcG9ydCB7IGV4dGVuZCwgRXh0ZW50LCBpc0VtcHR5IH0gZnJvbSAnb2wvZXh0ZW50J1xuaW1wb3J0IEZlYXR1cmUgZnJvbSAnb2wvRmVhdHVyZSdcbmltcG9ydCBHZW9KU09OIGZyb20gJ29sL2Zvcm1hdC9HZW9KU09OJ1xuaW1wb3J0IHsgR2VvbWV0cnkgfSBmcm9tICdvbC9nZW9tJ1xuaW1wb3J0IExheWVyIGZyb20gJ29sL2xheWVyL0xheWVyJ1xuaW1wb3J0IE1hcCBmcm9tICdvbC9NYXAnXG5pbXBvcnQgeyB0cmFuc2Zvcm1FeHRlbnQgfSBmcm9tICdvbC9wcm9qJ1xuaW1wb3J0IFNvdXJjZSBmcm9tICdvbC9zb3VyY2UvU291cmNlJ1xuaW1wb3J0IEltYWdlV01TIGZyb20gJ29sL3NvdXJjZS9JbWFnZVdNUydcbmltcG9ydCBUaWxlV01TIGZyb20gJ29sL3NvdXJjZS9UaWxlV01TJ1xuaW1wb3J0IFZlY3RvclNvdXJjZSBmcm9tICdvbC9zb3VyY2UvVmVjdG9yJ1xuaW1wb3J0IHsgb3B0aW9uc0Zyb21DYXBhYmlsaXRpZXMgfSBmcm9tICdvbC9zb3VyY2UvV01UUydcbmltcG9ydCB7IGRlZmF1bHRzLCBEcmFnUGFuLCBJbnRlcmFjdGlvbiwgTW91c2VXaGVlbFpvb20gfSBmcm9tICdvbC9pbnRlcmFjdGlvbidcbmltcG9ydCB7XG4gIG1vdXNlT25seSxcbiAgbm9Nb2RpZmllcktleXMsXG4gIHBsYXRmb3JtTW9kaWZpZXJLZXlPbmx5LFxuICBwcmltYXJ5QWN0aW9uLFxufSBmcm9tICdvbC9ldmVudHMvY29uZGl0aW9uJ1xuaW1wb3J0IFdNVFNDYXBhYmlsaXRpZXMgZnJvbSAnb2wvZm9ybWF0L1dNVFNDYXBhYmlsaXRpZXMnXG5pbXBvcnQgeyBmcm9tLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcydcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJ1xuaW1wb3J0IHtcbiAgTWFwQ29udGV4dExheWVyTW9kZWwsXG4gIE1hcENvbnRleHRMYXllclR5cGVFbnVtLFxuICBNYXBDb250ZXh0TGF5ZXJXbXNNb2RlbCxcbiAgTWFwQ29udGV4dExheWVyV210c01vZGVsLFxufSBmcm9tICcuLi9tYXAtY29udGV4dC9tYXAtY29udGV4dC5tb2RlbCdcbmltcG9ydCBDb2xsZWN0aW9uIGZyb20gJ29sL0NvbGxlY3Rpb24nXG5pbXBvcnQgTWFwQnJvd3NlckV2ZW50IGZyb20gJ29sL01hcEJyb3dzZXJFdmVudCdcbmltcG9ydCB7XG4gIENhdGFsb2dSZWNvcmQsXG4gIERhdGFzZXREaXN0cmlidXRpb24sXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL2RvbWFpbi9zcmMvbGliL21vZGVsL3JlY29yZCdcbmltcG9ydCB7IFByb3h5U2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdXRpbC9zaGFyZWQvc3JjJ1xuaW1wb3J0IHsgV21zRW5kcG9pbnQgfSBmcm9tICdAY2FtcHRvY2FtcC9vZ2MtY2xpZW50J1xuaW1wb3J0IHsgTE9OTEFUX0NSU19DT0RFUyB9IGZyb20gJy4uL2NvbnN0YW50L3Byb2plY3Rpb25zJ1xuaW1wb3J0IHsgZnJvbUVQU0dDb2RlLCByZWdpc3RlciB9IGZyb20gJ29sL3Byb2ovcHJvajQnXG5pbXBvcnQgcHJvajQgZnJvbSAncHJvajQvZGlzdC9wcm9qNCdcblxuY29uc3QgRkVBVFVSRV9QUk9KRUNUSU9OID0gJ0VQU0c6Mzg1NydcbmNvbnN0IERBVEFfUFJPSkVDVElPTiA9ICdFUFNHOjQzMjYnXG5cbmNvbnN0IEdFT0pTT04gPSBuZXcgR2VvSlNPTigpXG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBNYXBVdGlsc1NlcnZpY2Uge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsIHByaXZhdGUgcHJveHk6IFByb3h5U2VydmljZSkge31cblxuICBjcmVhdGVFbXB0eU1hcCgpOiBNYXAge1xuICAgIHJldHVybiBuZXcgTWFwKHtcbiAgICAgIGNvbnRyb2xzOiBbXSxcbiAgICAgIHBpeGVsUmF0aW86IDEsXG4gICAgfSlcbiAgfVxuXG4gIHJlYWRGZWF0dXJlQ29sbGVjdGlvbiA9IChcbiAgICBmZWF0dXJlQ29sbGVjdGlvbjogRmVhdHVyZUNvbGxlY3Rpb24sXG4gICAgZmVhdHVyZVByb2plY3Rpb24gPSBGRUFUVVJFX1BST0pFQ1RJT04sXG4gICAgZGF0YVByb2plY3Rpb24gPSBEQVRBX1BST0pFQ1RJT05cbiAgKTogRmVhdHVyZTxHZW9tZXRyeT5bXSA9PiB7XG4gICAgcmV0dXJuIEdFT0pTT04ucmVhZEZlYXR1cmVzKGZlYXR1cmVDb2xsZWN0aW9uLCB7XG4gICAgICBmZWF0dXJlUHJvamVjdGlvbixcbiAgICAgIGRhdGFQcm9qZWN0aW9uLFxuICAgIH0pIGFzIEZlYXR1cmU8R2VvbWV0cnk+W11cbiAgfVxuXG4gIGlzV01TTGF5ZXIobGF5ZXI6IExheWVyPFNvdXJjZT4pOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgbGF5ZXIuZ2V0U291cmNlKCkgaW5zdGFuY2VvZiBUaWxlV01TIHx8XG4gICAgICBsYXllci5nZXRTb3VyY2UoKSBpbnN0YW5jZW9mIEltYWdlV01TXG4gICAgKVxuICB9XG5cbiAgZ2V0R0ZJVXJsKGxheWVyLCBtYXAsIGNvb3JkaW5hdGUpOiBzdHJpbmcge1xuICAgIGNvbnN0IHZpZXcgPSBtYXAuZ2V0VmlldygpXG4gICAgY29uc3QgcHJvamVjdGlvbiA9IHZpZXcuZ2V0UHJvamVjdGlvbigpXG4gICAgY29uc3QgcmVzb2x1dGlvbiA9IHZpZXcuZ2V0UmVzb2x1dGlvbigpXG4gICAgY29uc3Qgc291cmNlID0gbGF5ZXIuZ2V0U291cmNlKClcbiAgICBjb25zdCBwYXJhbXMgPSB7XG4gICAgICAuLi5zb3VyY2UuZ2V0UGFyYW1zKCksXG4gICAgICBJTkZPX0ZPUk1BVDogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgIH1cbiAgICByZXR1cm4gc291cmNlLmdldEZlYXR1cmVJbmZvVXJsKGNvb3JkaW5hdGUsIHJlc29sdXRpb24sIHByb2plY3Rpb24sIHBhcmFtcylcbiAgfVxuXG4gIGdldFZlY3RvckZlYXR1cmVzRnJvbUNsaWNrKG9sTWFwLCBldmVudCk6IEZlYXR1cmU8R2VvbWV0cnk+W10ge1xuICAgIGNvbnN0IGZlYXR1cmVzID0gW11cbiAgICBjb25zdCBoaXQgPSBvbE1hcC5mb3JFYWNoRmVhdHVyZUF0UGl4ZWwoXG4gICAgICBldmVudC5waXhlbCxcbiAgICAgIChmZWF0dXJlOiBGZWF0dXJlPEdlb21ldHJ5PikgPT4ge1xuICAgICAgICByZXR1cm4gZmVhdHVyZVxuICAgICAgfSxcbiAgICAgIHsgbGF5ZXJGaWx0ZXI6IChsYXllcikgPT4gbGF5ZXIuZ2V0U291cmNlKCkgaW5zdGFuY2VvZiBWZWN0b3JTb3VyY2UgfVxuICAgIClcbiAgICBpZiAoaGl0KSB7XG4gICAgICBmZWF0dXJlcy5wdXNoKGhpdClcbiAgICB9XG4gICAgcmV0dXJuIGZlYXR1cmVzXG4gIH1cblxuICBnZXRHRklGZWF0dXJlc09ic2VydmFibGVzRnJvbUNsaWNrKFxuICAgIG9sTWFwOiBNYXAsXG4gICAgZXZlbnQ6IE1hcEJyb3dzZXJFdmVudDxQb2ludGVyRXZlbnQ+XG4gICk6IE9ic2VydmFibGU8RmVhdHVyZTxHZW9tZXRyeT5bXT5bXSB7XG4gICAgY29uc3Qgd21zTGF5ZXJzID0gb2xNYXAuZ2V0TGF5ZXJzKCkuZ2V0QXJyYXkoKS5maWx0ZXIodGhpcy5pc1dNU0xheWVyKVxuXG4gICAgaWYgKHdtc0xheWVycy5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCB7IGNvb3JkaW5hdGUgfSA9IGV2ZW50XG4gICAgICBjb25zdCBnZmlVcmxzID0gd21zTGF5ZXJzLnJlZHVjZShcbiAgICAgICAgKHVybHMsIGxheWVyKSA9PiBbLi4udXJscywgdGhpcy5nZXRHRklVcmwobGF5ZXIsIG9sTWFwLCBjb29yZGluYXRlKV0sXG5cbiAgICAgICAgW11cbiAgICAgIClcbiAgICAgIHJldHVybiBnZmlVcmxzLm1hcCgodXJsKSA9PlxuICAgICAgICB0aGlzLmh0dHBcbiAgICAgICAgICAuZ2V0PEZlYXR1cmVDb2xsZWN0aW9uPih1cmwpXG4gICAgICAgICAgLnBpcGUobWFwKChjb2xsZWN0aW9uKSA9PiB0aGlzLnJlYWRGZWF0dXJlQ29sbGVjdGlvbihjb2xsZWN0aW9uKSkpXG4gICAgICApXG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBbXVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBXaWxsIGVtaXQgYG51bGxgIGlmIG5vIGV4dGVudCBjb3VsZCBiZSBjb21wdXRlZFxuICAgKi9cbiAgYXN5bmMgZ2V0TGF5ZXJFeHRlbnQobGF5ZXI6IE1hcENvbnRleHRMYXllck1vZGVsKTogUHJvbWlzZTxFeHRlbnQgfCBudWxsPiB7XG4gICAgbGV0IGxhdExvbkV4dGVudDogRXh0ZW50XG4gICAgaWYgKFxuICAgICAgbGF5ZXIgJiZcbiAgICAgIGxheWVyLnR5cGUgPT09ICdnZW9qc29uJyAmJlxuICAgICAgJ2RhdGEnIGluIGxheWVyICYmXG4gICAgICB0eXBlb2YgbGF5ZXIuZGF0YSA9PT0gJ29iamVjdCcgJiZcbiAgICAgIGxheWVyLmRhdGEuZmVhdHVyZXNbMF0gJiZcbiAgICAgIGxheWVyLmRhdGEuZmVhdHVyZXNbMF0uZ2VvbWV0cnlcbiAgICApIHtcbiAgICAgIGxhdExvbkV4dGVudCA9IG5ldyBHZW9KU09OKClcbiAgICAgICAgLnJlYWRGZWF0dXJlcyhsYXllci5kYXRhKVxuICAgICAgICAubWFwKChmZWF0dXJlKSA9PiBmZWF0dXJlLmdldEdlb21ldHJ5KCkpXG4gICAgICAgIC5maWx0ZXIoKGdlb20pID0+ICEhZ2VvbSlcbiAgICAgICAgLnJlZHVjZShcbiAgICAgICAgICAocHJldiwgY3VycikgPT5cbiAgICAgICAgICAgIHByZXYgPyBleHRlbmQocHJldiwgY3Vyci5nZXRFeHRlbnQoKSkgOiBjdXJyLmdldEV4dGVudCgpLFxuICAgICAgICAgIG51bGwgYXMgRXh0ZW50XG4gICAgICAgIClcbiAgICB9IGVsc2UgaWYgKGxheWVyICYmIGxheWVyLnR5cGUgPT09ICd3bXMnKSB7XG4gICAgICBsYXRMb25FeHRlbnQgPSBhd2FpdCB0aGlzLmdldFdtc0xheWVyRXh0ZW50KGxheWVyKVxuICAgIH0gZWxzZSBpZiAobGF5ZXIgJiYgbGF5ZXIudHlwZSA9PT0gJ3dtdHMnKSB7XG4gICAgICBpZiAobGF5ZXIuZXh0ZW50KSB7XG4gICAgICAgIGxhdExvbkV4dGVudCA9IGxheWVyLmV4dGVudFxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIGxheWVyLm9wdGlvbnMudGlsZUdyaWQuZ2V0RXh0ZW50KClcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG51bGxcbiAgICB9XG4gICAgaWYgKCFsYXRMb25FeHRlbnQgfHwgaXNFbXB0eShsYXRMb25FeHRlbnQpKSB7XG4gICAgICByZXR1cm4gbnVsbFxuICAgIH1cbiAgICByZXR1cm4gdHJhbnNmb3JtRXh0ZW50KGxhdExvbkV4dGVudCwgJ0VQU0c6NDMyNicsICdFUFNHOjM4NTcnKVxuICB9XG5cbiAgYXN5bmMgZ2V0V21zTGF5ZXJFeHRlbnQoXG4gICAgbGF5ZXI6IE1hcENvbnRleHRMYXllcldtc01vZGVsXG4gICk6IFByb21pc2U8RXh0ZW50IHwgbnVsbD4ge1xuICAgIGNvbnN0IGVuZHBvaW50ID0gYXdhaXQgbmV3IFdtc0VuZHBvaW50KFxuICAgICAgdGhpcy5wcm94eS5nZXRQcm94aWVkVXJsKGxheWVyLnVybClcbiAgICApLmlzUmVhZHkoKVxuICAgIGNvbnN0IHsgYm91bmRpbmdCb3hlcyB9ID0gZW5kcG9pbnQuZ2V0TGF5ZXJCeU5hbWUobGF5ZXIubmFtZSlcbiAgICBpZiAoIU9iamVjdC5rZXlzKGJvdW5kaW5nQm94ZXMpLmxlbmd0aCkge1xuICAgICAgcmV0dXJuIG51bGxcbiAgICB9XG4gICAgY29uc3QgbG9uTGF0Q1JTID0gT2JqZWN0LmtleXMoYm91bmRpbmdCb3hlcyk/LmZpbmQoKGNycykgPT5cbiAgICAgIExPTkxBVF9DUlNfQ09ERVMuaW5jbHVkZXMoY3JzKVxuICAgIClcbiAgICBpZiAobG9uTGF0Q1JTKSB7XG4gICAgICByZXR1cm4gYm91bmRpbmdCb3hlc1tsb25MYXRDUlNdLm1hcChwYXJzZUZsb2F0KVxuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBhdmFpbGFibGVFUFNHQ29kZSA9IE9iamVjdC5rZXlzKGJvdW5kaW5nQm94ZXMpWzBdXG4gICAgICByZWdpc3Rlcihwcm9qNClcbiAgICAgIGNvbnN0IHByb2ogPSBhd2FpdCBmcm9tRVBTR0NvZGUoYXZhaWxhYmxlRVBTR0NvZGUpXG4gICAgICBjb25zdCBiYm94V2l0aEZpbml0ZU51bWJlcnMgPVxuICAgICAgICBib3VuZGluZ0JveGVzW2F2YWlsYWJsZUVQU0dDb2RlXS5tYXAocGFyc2VGbG9hdClcbiAgICAgIHJldHVybiB0cmFuc2Zvcm1FeHRlbnQoYmJveFdpdGhGaW5pdGVOdW1iZXJzLCBwcm9qLCAnRVBTRzo0MzI2JylcbiAgICB9XG4gIH1cblxuICBnZXRXbXRzTGF5ZXJGcm9tQ2FwYWJpbGl0aWVzKFxuICAgIGxpbms6IERhdGFzZXREaXN0cmlidXRpb25cbiAgKTogT2JzZXJ2YWJsZTxNYXBDb250ZXh0TGF5ZXJXbXRzTW9kZWw+IHtcbiAgICBjb25zdCBnZXRDYXBhYmlsaXRpZXNVcmwgPSBuZXcgVVJMKGxpbmsudXJsLCB3aW5kb3cubG9jYXRpb24udG9TdHJpbmcoKSlcbiAgICBnZXRDYXBhYmlsaXRpZXNVcmwuc2VhcmNoUGFyYW1zLnNldCgnU0VSVklDRScsICdXTVRTJylcbiAgICBnZXRDYXBhYmlsaXRpZXNVcmwuc2VhcmNoUGFyYW1zLnNldCgnUkVRVUVTVCcsICdHZXRDYXBhYmlsaXRpZXMnKVxuICAgIHJldHVybiBmcm9tKFxuICAgICAgZmV0Y2goZ2V0Q2FwYWJpbGl0aWVzVXJsLnRvU3RyaW5nKCkpXG4gICAgICAgIC50aGVuKGFzeW5jIGZ1bmN0aW9uIChyZXNwb25zZSkge1xuICAgICAgICAgIGlmICghcmVzcG9uc2Uub2spIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgV01UUyBHZXRDYXBhYmlsaXRpZXMgSFRUUCByZXF1ZXN0IGZhaWxlZCB3aXRoIGNvZGUgJHtcbiAgICAgICAgICAgICAgcmVzcG9uc2Uuc3RhdHVzXG4gICAgICAgICAgICB9IGFuZCBib2R5OlxuJHthd2FpdCByZXNwb25zZS50ZXh0KCl9YClcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHJlc3BvbnNlLnRleHQoKVxuICAgICAgICB9KVxuICAgICAgICAudGhlbihmdW5jdGlvbiAodGV4dCkge1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSBuZXcgV01UU0NhcGFiaWxpdGllcygpLnJlYWQodGV4dClcbiAgICAgICAgICAgIGNvbnN0IG9wdGlvbnMgPSBvcHRpb25zRnJvbUNhcGFiaWxpdGllcyhyZXN1bHQsIHtcbiAgICAgICAgICAgICAgbGF5ZXI6IGxpbmsubmFtZSxcbiAgICAgICAgICAgICAgbWF0cml4U2V0OiAnRVBTRzozODU3JyxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICBjb25zdCBsYXllckNhcCA9IHJlc3VsdD8uQ29udGVudHM/LkxheWVyLmZpbmQoXG4gICAgICAgICAgICAgIChsYXllcikgPT4gbGF5ZXIuSWRlbnRpZmllciA9PT0gbGluay5uYW1lXG4gICAgICAgICAgICApXG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICBvcHRpb25zLFxuICAgICAgICAgICAgICB0eXBlOiBNYXBDb250ZXh0TGF5ZXJUeXBlRW51bS5XTVRTIGFzICd3bXRzJyxcbiAgICAgICAgICAgICAgLi4uKGxheWVyQ2FwPy5XR1M4NEJvdW5kaW5nQm94XG4gICAgICAgICAgICAgICAgPyB7IGV4dGVudDogbGF5ZXJDYXAuV0dTODRCb3VuZGluZ0JveCB9XG4gICAgICAgICAgICAgICAgOiB7fSksXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFdNVFMgR2V0Q2FwYWJpbGl0aWVzIHBhcnNpbmcgZmFpbGVkOlxuJHtlLnN0YWNrIHx8IGUubWVzc2FnZSB8fCBlfWApXG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgIClcbiAgfVxuXG4gIHByaW9yaXRpemVQYWdlU2Nyb2xsKGludGVyYWN0aW9uczogQ29sbGVjdGlvbjxJbnRlcmFjdGlvbj4pIHtcbiAgICBpbnRlcmFjdGlvbnMuY2xlYXIoKVxuICAgIGludGVyYWN0aW9ucy5leHRlbmQoXG4gICAgICBkZWZhdWx0cyh7XG4gICAgICAgIC8vIHJlbW92ZSByb3RhdGUgaW50ZXJhY3Rpb25zXG4gICAgICAgIGFsdFNoaWZ0RHJhZ1JvdGF0ZTogZmFsc2UsXG4gICAgICAgIHBpbmNoUm90YXRlOiBmYWxzZSxcbiAgICAgICAgLy8gcmVwbGFjZSBkcmFnIGFuZCB6b29tIGludGVyYWN0aW9uc1xuICAgICAgICBkcmFnUGFuOiBmYWxzZSxcbiAgICAgICAgbW91c2VXaGVlbFpvb206IGZhbHNlLFxuICAgICAgfSlcbiAgICAgICAgLmV4dGVuZChbXG4gICAgICAgICAgbmV3IERyYWdQYW4oe1xuICAgICAgICAgICAgY29uZGl0aW9uOiBkcmFnUGFuQ29uZGl0aW9uLFxuICAgICAgICAgIH0pLFxuICAgICAgICAgIG5ldyBNb3VzZVdoZWVsWm9vbSh7XG4gICAgICAgICAgICBjb25kaXRpb246IG1vdXNlV2hlZWxab29tQ29uZGl0aW9uLFxuICAgICAgICAgIH0pLFxuICAgICAgICBdKVxuICAgICAgICAuZ2V0QXJyYXkoKVxuICAgIClcbiAgfVxuXG4gIGdldFJlY29yZEV4dGVudChyZWNvcmQ6IFBhcnRpYWw8Q2F0YWxvZ1JlY29yZD4pOiBFeHRlbnQge1xuICAgIGlmICghKCdzcGF0aWFsRXh0ZW50cycgaW4gcmVjb3JkKSkge1xuICAgICAgcmV0dXJuIG51bGxcbiAgICB9XG4gICAgLy8gdHJhbnNmb3JtIGFuIGFycmF5IG9mIGdlb2pzb24gZ2VvbWV0cmllcyBpbnRvIGEgYmJveFxuICAgIGNvbnN0IHRvdGFsRXh0ZW50ID0gcmVjb3JkLnNwYXRpYWxFeHRlbnRzLnJlZHVjZShcbiAgICAgIChwcmV2LCBjdXJyKSA9PiB7XG4gICAgICAgIGNvbnN0IGdlb20gPSBHRU9KU09OLnJlYWRHZW9tZXRyeShjdXJyLmdlb21ldHJ5KVxuICAgICAgICByZXR1cm4gZXh0ZW5kKHByZXYsIGdlb20uZ2V0RXh0ZW50KCkpXG4gICAgICB9LFxuICAgICAgW0luZmluaXR5LCBJbmZpbml0eSwgLUluZmluaXR5LCAtSW5maW5pdHldXG4gICAgKVxuICAgIHJldHVybiB0cmFuc2Zvcm1FeHRlbnQodG90YWxFeHRlbnQsICdFUFNHOjQzMjYnLCAnRVBTRzozODU3JylcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZHJhZ1BhbkNvbmRpdGlvbihcbiAgdGhpczogRHJhZ1BhbixcbiAgZXZlbnQ6IE1hcEJyb3dzZXJFdmVudDxQb2ludGVyRXZlbnQ+XG4pIHtcbiAgY29uc3QgZHJhZ1BhbkNvbmRpdGlvbiA9IHRoaXMuZ2V0UG9pbnRlckNvdW50KCkgPT09IDIgfHwgbW91c2VPbmx5KGV2ZW50KVxuICBpZiAoIWRyYWdQYW5Db25kaXRpb24pIHtcbiAgICB0aGlzLmdldE1hcCgpLmRpc3BhdGNoRXZlbnQoJ21hcG11dGVkJylcbiAgfVxuICAvLyBjb21iaW5lIHRoZSBjb25kaXRpb24gd2l0aCB0aGUgZGVmYXVsdCBEcmFnUGFuIGNvbmRpdGlvbnNcbiAgcmV0dXJuIGRyYWdQYW5Db25kaXRpb24gJiYgbm9Nb2RpZmllcktleXMoZXZlbnQpICYmIHByaW1hcnlBY3Rpb24oZXZlbnQpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtb3VzZVdoZWVsWm9vbUNvbmRpdGlvbihcbiAgdGhpczogTW91c2VXaGVlbFpvb20sXG4gIGV2ZW50OiBNYXBCcm93c2VyRXZlbnQ8VUlFdmVudD5cbikge1xuICBpZiAoIXBsYXRmb3JtTW9kaWZpZXJLZXlPbmx5KGV2ZW50KSAmJiBldmVudC50eXBlID09PSAnd2hlZWwnKSB7XG4gICAgdGhpcy5nZXRNYXAoKS5kaXNwYXRjaEV2ZW50KCdtYXBtdXRlZCcpXG4gIH1cbiAgcmV0dXJuIHBsYXRmb3JtTW9kaWZpZXJLZXlPbmx5KGV2ZW50KVxufVxuIl19
188
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwLXV0aWxzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ZlYXR1cmUvbWFwL3NyYy9saWIvdXRpbHMvbWFwLXV0aWxzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBQ2pELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFFMUMsT0FBTyxFQUFFLE1BQU0sRUFBVSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUE7QUFFbkQsT0FBTyxPQUFPLE1BQU0sbUJBQW1CLENBQUE7QUFHdkMsT0FBTyxHQUFHLE1BQU0sUUFBUSxDQUFBO0FBQ3hCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxTQUFTLENBQUE7QUFFekMsT0FBTyxRQUFRLE1BQU0sb0JBQW9CLENBQUE7QUFDekMsT0FBTyxPQUFPLE1BQU0sbUJBQW1CLENBQUE7QUFDdkMsT0FBTyxZQUFZLE1BQU0sa0JBQWtCLENBQUE7QUFDM0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQWUsY0FBYyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDL0UsT0FBTyxFQUNMLFNBQVMsRUFDVCxjQUFjLEVBQ2QsdUJBQXVCLEVBQ3ZCLGFBQWEsR0FDZCxNQUFNLHFCQUFxQixDQUFBO0FBRTVCLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQVFwQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sd0NBQXdDLENBQUE7QUFDckUsT0FBTyxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQTtBQUNsRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQTtBQUMxRCxPQUFPLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUN0RCxPQUFPLEtBQUss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QyxLQUFLLENBQUMsSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLE9BQU8sRUFBRTtRQUM3RCxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFBO0tBQ3hDO0lBQ0QsT0FBTyx1QkFBdUIsQ0FBQyxLQUFLLENBQUMsQ0FBQTtBQUN2QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJ1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgdHlwZSB7IEZlYXR1cmVDb2xsZWN0aW9uIH0gZnJvbSAnZ2VvanNvbidcbmltcG9ydCB7IGV4dGVuZCwgRXh0ZW50LCBpc0VtcHR5IH0gZnJvbSAnb2wvZXh0ZW50J1xuaW1wb3J0IEZlYXR1cmUgZnJvbSAnb2wvRmVhdHVyZSdcbmltcG9ydCBHZW9KU09OIGZyb20gJ29sL2Zvcm1hdC9HZW9KU09OJ1xuaW1wb3J0IHsgR2VvbWV0cnkgfSBmcm9tICdvbC9nZW9tJ1xuaW1wb3J0IExheWVyIGZyb20gJ29sL2xheWVyL0xheWVyJ1xuaW1wb3J0IE1hcCBmcm9tICdvbC9NYXAnXG5pbXBvcnQgeyB0cmFuc2Zvcm1FeHRlbnQgfSBmcm9tICdvbC9wcm9qJ1xuaW1wb3J0IFNvdXJjZSBmcm9tICdvbC9zb3VyY2UvU291cmNlJ1xuaW1wb3J0IEltYWdlV01TIGZyb20gJ29sL3NvdXJjZS9JbWFnZVdNUydcbmltcG9ydCBUaWxlV01TIGZyb20gJ29sL3NvdXJjZS9UaWxlV01TJ1xuaW1wb3J0IFZlY3RvclNvdXJjZSBmcm9tICdvbC9zb3VyY2UvVmVjdG9yJ1xuaW1wb3J0IHsgZGVmYXVsdHMsIERyYWdQYW4sIEludGVyYWN0aW9uLCBNb3VzZVdoZWVsWm9vbSB9IGZyb20gJ29sL2ludGVyYWN0aW9uJ1xuaW1wb3J0IHtcbiAgbW91c2VPbmx5LFxuICBub01vZGlmaWVyS2V5cyxcbiAgcGxhdGZvcm1Nb2RpZmllcktleU9ubHksXG4gIHByaW1hcnlBY3Rpb24sXG59IGZyb20gJ29sL2V2ZW50cy9jb25kaXRpb24nXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcydcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJ1xuaW1wb3J0IHtcbiAgTWFwQ29udGV4dExheWVyTW9kZWwsXG4gIE1hcENvbnRleHRMYXllcldtc01vZGVsLFxufSBmcm9tICcuLi9tYXAtY29udGV4dC9tYXAtY29udGV4dC5tb2RlbCdcbmltcG9ydCBDb2xsZWN0aW9uIGZyb20gJ29sL0NvbGxlY3Rpb24nXG5pbXBvcnQgTWFwQnJvd3NlckV2ZW50IGZyb20gJ29sL01hcEJyb3dzZXJFdmVudCdcbmltcG9ydCB7IENhdGFsb2dSZWNvcmQgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9tb2RlbC9yZWNvcmQnXG5pbXBvcnQgeyBQcm94eVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3V0aWwvc2hhcmVkL3NyYydcbmltcG9ydCB7IFdtc0VuZHBvaW50LCBXbXRzRW5kcG9pbnQgfSBmcm9tICdAY2FtcHRvY2FtcC9vZ2MtY2xpZW50J1xuaW1wb3J0IHsgTE9OTEFUX0NSU19DT0RFUyB9IGZyb20gJy4uL2NvbnN0YW50L3Byb2plY3Rpb25zJ1xuaW1wb3J0IHsgZnJvbUVQU0dDb2RlLCByZWdpc3RlciB9IGZyb20gJ29sL3Byb2ovcHJvajQnXG5pbXBvcnQgcHJvajQgZnJvbSAncHJvajQvZGlzdC9wcm9qNCdcblxuY29uc3QgRkVBVFVSRV9QUk9KRUNUSU9OID0gJ0VQU0c6Mzg1NydcbmNvbnN0IERBVEFfUFJPSkVDVElPTiA9ICdFUFNHOjQzMjYnXG5cbmNvbnN0IEdFT0pTT04gPSBuZXcgR2VvSlNPTigpXG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBNYXBVdGlsc1NlcnZpY2Uge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsIHByaXZhdGUgcHJveHk6IFByb3h5U2VydmljZSkge31cblxuICBjcmVhdGVFbXB0eU1hcCgpOiBNYXAge1xuICAgIHJldHVybiBuZXcgTWFwKHtcbiAgICAgIGNvbnRyb2xzOiBbXSxcbiAgICAgIHBpeGVsUmF0aW86IDEsXG4gICAgfSlcbiAgfVxuXG4gIHJlYWRGZWF0dXJlQ29sbGVjdGlvbiA9IChcbiAgICBmZWF0dXJlQ29sbGVjdGlvbjogRmVhdHVyZUNvbGxlY3Rpb24sXG4gICAgZmVhdHVyZVByb2plY3Rpb24gPSBGRUFUVVJFX1BST0pFQ1RJT04sXG4gICAgZGF0YVByb2plY3Rpb24gPSBEQVRBX1BST0pFQ1RJT05cbiAgKTogRmVhdHVyZTxHZW9tZXRyeT5bXSA9PiB7XG4gICAgcmV0dXJuIEdFT0pTT04ucmVhZEZlYXR1cmVzKGZlYXR1cmVDb2xsZWN0aW9uLCB7XG4gICAgICBmZWF0dXJlUHJvamVjdGlvbixcbiAgICAgIGRhdGFQcm9qZWN0aW9uLFxuICAgIH0pIGFzIEZlYXR1cmU8R2VvbWV0cnk+W11cbiAgfVxuXG4gIGlzV01TTGF5ZXIobGF5ZXI6IExheWVyPFNvdXJjZT4pOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgbGF5ZXIuZ2V0U291cmNlKCkgaW5zdGFuY2VvZiBUaWxlV01TIHx8XG4gICAgICBsYXllci5nZXRTb3VyY2UoKSBpbnN0YW5jZW9mIEltYWdlV01TXG4gICAgKVxuICB9XG5cbiAgZ2V0R0ZJVXJsKGxheWVyLCBtYXAsIGNvb3JkaW5hdGUpOiBzdHJpbmcge1xuICAgIGNvbnN0IHZpZXcgPSBtYXAuZ2V0VmlldygpXG4gICAgY29uc3QgcHJvamVjdGlvbiA9IHZpZXcuZ2V0UHJvamVjdGlvbigpXG4gICAgY29uc3QgcmVzb2x1dGlvbiA9IHZpZXcuZ2V0UmVzb2x1dGlvbigpXG4gICAgY29uc3Qgc291cmNlID0gbGF5ZXIuZ2V0U291cmNlKClcbiAgICBjb25zdCBwYXJhbXMgPSB7XG4gICAgICAuLi5zb3VyY2UuZ2V0UGFyYW1zKCksXG4gICAgICBJTkZPX0ZPUk1BVDogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgIH1cbiAgICByZXR1cm4gc291cmNlLmdldEZlYXR1cmVJbmZvVXJsKGNvb3JkaW5hdGUsIHJlc29sdXRpb24sIHByb2plY3Rpb24sIHBhcmFtcylcbiAgfVxuXG4gIGdldFZlY3RvckZlYXR1cmVzRnJvbUNsaWNrKG9sTWFwLCBldmVudCk6IEZlYXR1cmU8R2VvbWV0cnk+W10ge1xuICAgIGNvbnN0IGZlYXR1cmVzID0gW11cbiAgICBjb25zdCBoaXQgPSBvbE1hcC5mb3JFYWNoRmVhdHVyZUF0UGl4ZWwoXG4gICAgICBldmVudC5waXhlbCxcbiAgICAgIChmZWF0dXJlOiBGZWF0dXJlPEdlb21ldHJ5PikgPT4ge1xuICAgICAgICByZXR1cm4gZmVhdHVyZVxuICAgICAgfSxcbiAgICAgIHsgbGF5ZXJGaWx0ZXI6IChsYXllcikgPT4gbGF5ZXIuZ2V0U291cmNlKCkgaW5zdGFuY2VvZiBWZWN0b3JTb3VyY2UgfVxuICAgIClcbiAgICBpZiAoaGl0KSB7XG4gICAgICBmZWF0dXJlcy5wdXNoKGhpdClcbiAgICB9XG4gICAgcmV0dXJuIGZlYXR1cmVzXG4gIH1cblxuICBnZXRHRklGZWF0dXJlc09ic2VydmFibGVzRnJvbUNsaWNrKFxuICAgIG9sTWFwOiBNYXAsXG4gICAgZXZlbnQ6IE1hcEJyb3dzZXJFdmVudDxQb2ludGVyRXZlbnQ+XG4gICk6IE9ic2VydmFibGU8RmVhdHVyZTxHZW9tZXRyeT5bXT5bXSB7XG4gICAgY29uc3Qgd21zTGF5ZXJzID0gb2xNYXAuZ2V0TGF5ZXJzKCkuZ2V0QXJyYXkoKS5maWx0ZXIodGhpcy5pc1dNU0xheWVyKVxuXG4gICAgaWYgKHdtc0xheWVycy5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCB7IGNvb3JkaW5hdGUgfSA9IGV2ZW50XG4gICAgICBjb25zdCBnZmlVcmxzID0gd21zTGF5ZXJzLnJlZHVjZShcbiAgICAgICAgKHVybHMsIGxheWVyKSA9PiBbLi4udXJscywgdGhpcy5nZXRHRklVcmwobGF5ZXIsIG9sTWFwLCBjb29yZGluYXRlKV0sXG5cbiAgICAgICAgW11cbiAgICAgIClcbiAgICAgIHJldHVybiBnZmlVcmxzLm1hcCgodXJsKSA9PlxuICAgICAgICB0aGlzLmh0dHBcbiAgICAgICAgICAuZ2V0PEZlYXR1cmVDb2xsZWN0aW9uPih1cmwpXG4gICAgICAgICAgLnBpcGUobWFwKChjb2xsZWN0aW9uKSA9PiB0aGlzLnJlYWRGZWF0dXJlQ29sbGVjdGlvbihjb2xsZWN0aW9uKSkpXG4gICAgICApXG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBbXVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBXaWxsIGVtaXQgYG51bGxgIGlmIG5vIGV4dGVudCBjb3VsZCBiZSBjb21wdXRlZFxuICAgKi9cbiAgYXN5bmMgZ2V0TGF5ZXJFeHRlbnQobGF5ZXI6IE1hcENvbnRleHRMYXllck1vZGVsKTogUHJvbWlzZTxFeHRlbnQgfCBudWxsPiB7XG4gICAgbGV0IGxhdExvbkV4dGVudDogRXh0ZW50XG4gICAgaWYgKFxuICAgICAgbGF5ZXIgJiZcbiAgICAgIGxheWVyLnR5cGUgPT09ICdnZW9qc29uJyAmJlxuICAgICAgJ2RhdGEnIGluIGxheWVyICYmXG4gICAgICB0eXBlb2YgbGF5ZXIuZGF0YSA9PT0gJ29iamVjdCcgJiZcbiAgICAgIGxheWVyLmRhdGEuZmVhdHVyZXNbMF0gJiZcbiAgICAgIGxheWVyLmRhdGEuZmVhdHVyZXNbMF0uZ2VvbWV0cnlcbiAgICApIHtcbiAgICAgIGxhdExvbkV4dGVudCA9IG5ldyBHZW9KU09OKClcbiAgICAgICAgLnJlYWRGZWF0dXJlcyhsYXllci5kYXRhKVxuICAgICAgICAubWFwKChmZWF0dXJlKSA9PiBmZWF0dXJlLmdldEdlb21ldHJ5KCkpXG4gICAgICAgIC5maWx0ZXIoKGdlb20pID0+ICEhZ2VvbSlcbiAgICAgICAgLnJlZHVjZShcbiAgICAgICAgICAocHJldiwgY3VycikgPT5cbiAgICAgICAgICAgIHByZXYgPyBleHRlbmQocHJldiwgY3Vyci5nZXRFeHRlbnQoKSkgOiBjdXJyLmdldEV4dGVudCgpLFxuICAgICAgICAgIG51bGwgYXMgRXh0ZW50XG4gICAgICAgIClcbiAgICB9IGVsc2UgaWYgKGxheWVyICYmIGxheWVyLnR5cGUgPT09ICd3bXMnKSB7XG4gICAgICBsYXRMb25FeHRlbnQgPSBhd2FpdCB0aGlzLmdldFdtc0xheWVyRXh0ZW50KGxheWVyKVxuICAgIH0gZWxzZSBpZiAobGF5ZXIgJiYgbGF5ZXIudHlwZSA9PT0gJ3dtdHMnKSB7XG4gICAgICAvLyBUT0RPOiBpc29sYXRlIHRoaXMgaW4gdXRpbHMgc2VydmljZVxuICAgICAgbGF0TG9uRXh0ZW50ID0gYXdhaXQgbmV3IFdtdHNFbmRwb2ludChsYXllci51cmwpXG4gICAgICAgIC5pc1JlYWR5KClcbiAgICAgICAgLnRoZW4oKGVuZHBvaW50KSA9PiB7XG4gICAgICAgICAgY29uc3QgbGF5ZXJOYW1lID0gZW5kcG9pbnQuZ2V0U2luZ2xlTGF5ZXJOYW1lKCkgPz8gbGF5ZXIubmFtZVxuICAgICAgICAgIGNvbnN0IHdtdHNMYXllciA9IGVuZHBvaW50LmdldExheWVyQnlOYW1lKGxheWVyTmFtZSlcbiAgICAgICAgICByZXR1cm4gd210c0xheWVyLmxhdExvbkJvdW5kaW5nQm94XG4gICAgICAgIH0pXG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBudWxsXG4gICAgfVxuICAgIGlmICghbGF0TG9uRXh0ZW50IHx8IGlzRW1wdHkobGF0TG9uRXh0ZW50KSkge1xuICAgICAgcmV0dXJuIG51bGxcbiAgICB9XG4gICAgcmV0dXJuIHRyYW5zZm9ybUV4dGVudChsYXRMb25FeHRlbnQsICdFUFNHOjQzMjYnLCAnRVBTRzozODU3JylcbiAgfVxuXG4gIGFzeW5jIGdldFdtc0xheWVyRXh0ZW50KFxuICAgIGxheWVyOiBNYXBDb250ZXh0TGF5ZXJXbXNNb2RlbFxuICApOiBQcm9taXNlPEV4dGVudCB8IG51bGw+IHtcbiAgICBjb25zdCBlbmRwb2ludCA9IGF3YWl0IG5ldyBXbXNFbmRwb2ludChcbiAgICAgIHRoaXMucHJveHkuZ2V0UHJveGllZFVybChsYXllci51cmwpXG4gICAgKS5pc1JlYWR5KClcbiAgICBjb25zdCB7IGJvdW5kaW5nQm94ZXMgfSA9IGVuZHBvaW50LmdldExheWVyQnlOYW1lKGxheWVyLm5hbWUpXG4gICAgaWYgKCFPYmplY3Qua2V5cyhib3VuZGluZ0JveGVzKS5sZW5ndGgpIHtcbiAgICAgIHJldHVybiBudWxsXG4gICAgfVxuICAgIGNvbnN0IGxvbkxhdENSUyA9IE9iamVjdC5rZXlzKGJvdW5kaW5nQm94ZXMpPy5maW5kKChjcnMpID0+XG4gICAgICBMT05MQVRfQ1JTX0NPREVTLmluY2x1ZGVzKGNycylcbiAgICApXG4gICAgaWYgKGxvbkxhdENSUykge1xuICAgICAgcmV0dXJuIGJvdW5kaW5nQm94ZXNbbG9uTGF0Q1JTXVxuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBhdmFpbGFibGVFUFNHQ29kZSA9IE9iamVjdC5rZXlzKGJvdW5kaW5nQm94ZXMpWzBdXG4gICAgICByZWdpc3Rlcihwcm9qNClcbiAgICAgIGNvbnN0IHByb2ogPSBhd2FpdCBmcm9tRVBTR0NvZGUoYXZhaWxhYmxlRVBTR0NvZGUpXG4gICAgICByZXR1cm4gdHJhbnNmb3JtRXh0ZW50KFxuICAgICAgICBib3VuZGluZ0JveGVzW2F2YWlsYWJsZUVQU0dDb2RlXSxcbiAgICAgICAgcHJvaixcbiAgICAgICAgJ0VQU0c6NDMyNidcbiAgICAgIClcbiAgICB9XG4gIH1cblxuICBwcmlvcml0aXplUGFnZVNjcm9sbChpbnRlcmFjdGlvbnM6IENvbGxlY3Rpb248SW50ZXJhY3Rpb24+KSB7XG4gICAgaW50ZXJhY3Rpb25zLmNsZWFyKClcbiAgICBpbnRlcmFjdGlvbnMuZXh0ZW5kKFxuICAgICAgZGVmYXVsdHMoe1xuICAgICAgICAvLyByZW1vdmUgcm90YXRlIGludGVyYWN0aW9uc1xuICAgICAgICBhbHRTaGlmdERyYWdSb3RhdGU6IGZhbHNlLFxuICAgICAgICBwaW5jaFJvdGF0ZTogZmFsc2UsXG4gICAgICAgIC8vIHJlcGxhY2UgZHJhZyBhbmQgem9vbSBpbnRlcmFjdGlvbnNcbiAgICAgICAgZHJhZ1BhbjogZmFsc2UsXG4gICAgICAgIG1vdXNlV2hlZWxab29tOiBmYWxzZSxcbiAgICAgIH0pXG4gICAgICAgIC5leHRlbmQoW1xuICAgICAgICAgIG5ldyBEcmFnUGFuKHtcbiAgICAgICAgICAgIGNvbmRpdGlvbjogZHJhZ1BhbkNvbmRpdGlvbixcbiAgICAgICAgICB9KSxcbiAgICAgICAgICBuZXcgTW91c2VXaGVlbFpvb20oe1xuICAgICAgICAgICAgY29uZGl0aW9uOiBtb3VzZVdoZWVsWm9vbUNvbmRpdGlvbixcbiAgICAgICAgICB9KSxcbiAgICAgICAgXSlcbiAgICAgICAgLmdldEFycmF5KClcbiAgICApXG4gIH1cblxuICBnZXRSZWNvcmRFeHRlbnQocmVjb3JkOiBQYXJ0aWFsPENhdGFsb2dSZWNvcmQ+KTogRXh0ZW50IHtcbiAgICBpZiAoISgnc3BhdGlhbEV4dGVudHMnIGluIHJlY29yZCkpIHtcbiAgICAgIHJldHVybiBudWxsXG4gICAgfVxuICAgIC8vIHRyYW5zZm9ybSBhbiBhcnJheSBvZiBnZW9qc29uIGdlb21ldHJpZXMgaW50byBhIGJib3hcbiAgICBjb25zdCB0b3RhbEV4dGVudCA9IHJlY29yZC5zcGF0aWFsRXh0ZW50cy5yZWR1Y2UoXG4gICAgICAocHJldiwgY3VycikgPT4ge1xuICAgICAgICBjb25zdCBnZW9tID0gR0VPSlNPTi5yZWFkR2VvbWV0cnkoY3Vyci5nZW9tZXRyeSlcbiAgICAgICAgcmV0dXJuIGV4dGVuZChwcmV2LCBnZW9tLmdldEV4dGVudCgpKVxuICAgICAgfSxcbiAgICAgIFtJbmZpbml0eSwgSW5maW5pdHksIC1JbmZpbml0eSwgLUluZmluaXR5XVxuICAgIClcbiAgICByZXR1cm4gdHJhbnNmb3JtRXh0ZW50KHRvdGFsRXh0ZW50LCAnRVBTRzo0MzI2JywgJ0VQU0c6Mzg1NycpXG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRyYWdQYW5Db25kaXRpb24oXG4gIHRoaXM6IERyYWdQYW4sXG4gIGV2ZW50OiBNYXBCcm93c2VyRXZlbnQ8UG9pbnRlckV2ZW50PlxuKSB7XG4gIGNvbnN0IGRyYWdQYW5Db25kaXRpb24gPSB0aGlzLmdldFBvaW50ZXJDb3VudCgpID09PSAyIHx8IG1vdXNlT25seShldmVudClcbiAgaWYgKCFkcmFnUGFuQ29uZGl0aW9uKSB7XG4gICAgdGhpcy5nZXRNYXAoKS5kaXNwYXRjaEV2ZW50KCdtYXBtdXRlZCcpXG4gIH1cbiAgLy8gY29tYmluZSB0aGUgY29uZGl0aW9uIHdpdGggdGhlIGRlZmF1bHQgRHJhZ1BhbiBjb25kaXRpb25zXG4gIHJldHVybiBkcmFnUGFuQ29uZGl0aW9uICYmIG5vTW9kaWZpZXJLZXlzKGV2ZW50KSAmJiBwcmltYXJ5QWN0aW9uKGV2ZW50KVxufVxuXG5leHBvcnQgZnVuY3Rpb24gbW91c2VXaGVlbFpvb21Db25kaXRpb24oXG4gIHRoaXM6IE1vdXNlV2hlZWxab29tLFxuICBldmVudDogTWFwQnJvd3NlckV2ZW50PFVJRXZlbnQ+XG4pIHtcbiAgaWYgKCFwbGF0Zm9ybU1vZGlmaWVyS2V5T25seShldmVudCkgJiYgZXZlbnQudHlwZSA9PT0gJ3doZWVsJykge1xuICAgIHRoaXMuZ2V0TWFwKCkuZGlzcGF0Y2hFdmVudCgnbWFwbXV0ZWQnKVxuICB9XG4gIHJldHVybiBwbGF0Zm9ybU1vZGlmaWVyS2V5T25seShldmVudClcbn1cbiJdfQ==
@@ -0,0 +1,4 @@
1
+ export * from './lib/feature-notifications.module';
2
+ export * from './lib/notifications.service';
3
+ export * from './lib/notifications-container/notifications-container.component';
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ZlYXR1cmUvbm90aWZpY2F0aW9ucy9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxvQ0FBb0MsQ0FBQTtBQUNsRCxjQUFjLDZCQUE2QixDQUFBO0FBQzNDLGNBQWMsaUVBQWlFLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2xpYi9mZWF0dXJlLW5vdGlmaWNhdGlvbnMubW9kdWxlJ1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbm90aWZpY2F0aW9ucy5zZXJ2aWNlJ1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbm90aWZpY2F0aW9ucy1jb250YWluZXIvbm90aWZpY2F0aW9ucy1jb250YWluZXIuY29tcG9uZW50J1xuIl19
@@ -0,0 +1,18 @@
1
+ import { NotificationsService } from './notifications.service';
2
+ import { NgModule } from '@angular/core';
3
+ import * as i0 from "@angular/core";
4
+ export class FeatureNotificationsModule {
5
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: FeatureNotificationsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
6
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.1.7", ngImport: i0, type: FeatureNotificationsModule }); }
7
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: FeatureNotificationsModule, providers: [NotificationsService] }); }
8
+ }
9
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: FeatureNotificationsModule, decorators: [{
10
+ type: NgModule,
11
+ args: [{
12
+ declarations: [],
13
+ exports: [],
14
+ imports: [],
15
+ providers: [NotificationsService],
16
+ }]
17
+ }] });
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZS1ub3RpZmljYXRpb25zLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZmVhdHVyZS9ub3RpZmljYXRpb25zL3NyYy9saWIvZmVhdHVyZS1ub3RpZmljYXRpb25zLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQTtBQUM5RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFBOztBQVF4QyxNQUFNLE9BQU8sMEJBQTBCOzhHQUExQiwwQkFBMEI7K0dBQTFCLDBCQUEwQjsrR0FBMUIsMEJBQTBCLGFBRjFCLENBQUMsb0JBQW9CLENBQUM7OzJGQUV0QiwwQkFBMEI7a0JBTnRDLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLEVBQUU7b0JBQ2hCLE9BQU8sRUFBRSxFQUFFO29CQUNYLE9BQU8sRUFBRSxFQUFFO29CQUNYLFNBQVMsRUFBRSxDQUFDLG9CQUFvQixDQUFDO2lCQUNsQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5vdGlmaWNhdGlvbnNTZXJ2aWNlIH0gZnJvbSAnLi9ub3RpZmljYXRpb25zLnNlcnZpY2UnXG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW10sXG4gIGV4cG9ydHM6IFtdLFxuICBpbXBvcnRzOiBbXSxcbiAgcHJvdmlkZXJzOiBbTm90aWZpY2F0aW9uc1NlcnZpY2VdLFxufSlcbmV4cG9ydCBjbGFzcyBGZWF0dXJlTm90aWZpY2F0aW9uc01vZHVsZSB7fVxuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9mZWF0dXJlL25vdGlmaWNhdGlvbnMvc3JjL2xpYi9ub3RpZmljYXRpb24ubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgTm90aWZpY2F0aW9uQ29udGVudCB7XG4gIHR5cGU6ICdpbmZvJyB8ICd3YXJuaW5nJyB8ICdlcnJvcicgfCAnc3VjY2VzcydcbiAgdGl0bGU6IHN0cmluZ1xuICB0ZXh0OiBzdHJpbmdcbiAgY2xvc2VNZXNzYWdlPzogc3RyaW5nXG59XG4iXX0=
@@ -0,0 +1,49 @@
1
+ import { ChangeDetectionStrategy, Component } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { NotificationsService } from '../notifications.service';
4
+ import { NotificationComponent } from '../../../../../../libs/ui/elements/src';
5
+ import { animate, keyframes, style, transition, trigger, } from '@angular/animations';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "../notifications.service";
8
+ import * as i2 from "@angular/common";
9
+ export class NotificationsContainerComponent {
10
+ constructor(notificationsService) {
11
+ this.notificationsService = notificationsService;
12
+ }
13
+ trackById(index, notification) {
14
+ return notification.id;
15
+ }
16
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: NotificationsContainerComponent, deps: [{ token: i1.NotificationsService }], target: i0.ɵɵFactoryTarget.Component }); }
17
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: NotificationsContainerComponent, isStandalone: true, selector: "gn-ui-notifications-container", ngImport: i0, template: "<div class=\"flex flex-col gap-6 p-6 items-start pointer-events-none\">\n <gn-ui-notification\n *ngFor=\"\n let notification of notificationsService.notifications$ | async;\n trackBy: trackById\n \"\n class=\"max-w-full pointer-events-auto\"\n [text]=\"notification.text\"\n [type]=\"notification.type\"\n [title]=\"notification.title\"\n [closeMessage]=\"notification.closeMessage\"\n (notificationClose)=\"\n notificationsService.removeNotificationById(notification.id)\n \"\n [@enterExit]\n ></gn-ui-notification>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "component", type: NotificationComponent, selector: "gn-ui-notification", inputs: ["type", "title", "text", "closeMessage"], outputs: ["notificationClose"] }], animations: [
18
+ trigger('enterExit', [
19
+ transition(':enter', [
20
+ animate('150ms', keyframes([
21
+ style({ transform: 'scale(1)', opacity: 0 }),
22
+ style({ transform: 'scale(1.03)', opacity: 0.5 }),
23
+ style({ transform: 'scale(1)', opacity: 1 }),
24
+ ])),
25
+ ]),
26
+ transition(':leave', [
27
+ animate('200ms', style({ transform: 'translateX(50px)', opacity: 0 })),
28
+ ]),
29
+ ]),
30
+ ], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
31
+ }
32
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: NotificationsContainerComponent, decorators: [{
33
+ type: Component,
34
+ args: [{ selector: 'gn-ui-notifications-container', standalone: true, imports: [CommonModule, NotificationComponent], changeDetection: ChangeDetectionStrategy.OnPush, animations: [
35
+ trigger('enterExit', [
36
+ transition(':enter', [
37
+ animate('150ms', keyframes([
38
+ style({ transform: 'scale(1)', opacity: 0 }),
39
+ style({ transform: 'scale(1.03)', opacity: 0.5 }),
40
+ style({ transform: 'scale(1)', opacity: 1 }),
41
+ ])),
42
+ ]),
43
+ transition(':leave', [
44
+ animate('200ms', style({ transform: 'translateX(50px)', opacity: 0 })),
45
+ ]),
46
+ ]),
47
+ ], template: "<div class=\"flex flex-col gap-6 p-6 items-start pointer-events-none\">\n <gn-ui-notification\n *ngFor=\"\n let notification of notificationsService.notifications$ | async;\n trackBy: trackById\n \"\n class=\"max-w-full pointer-events-auto\"\n [text]=\"notification.text\"\n [type]=\"notification.type\"\n [title]=\"notification.title\"\n [closeMessage]=\"notification.closeMessage\"\n (notificationClose)=\"\n notificationsService.removeNotificationById(notification.id)\n \"\n [@enterExit]\n ></gn-ui-notification>\n</div>\n" }]
48
+ }], ctorParameters: function () { return [{ type: i1.NotificationsService }]; } });
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9ucy1jb250YWluZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9mZWF0dXJlL25vdGlmaWNhdGlvbnMvc3JjL2xpYi9ub3RpZmljYXRpb25zLWNvbnRhaW5lci9ub3RpZmljYXRpb25zLWNvbnRhaW5lci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ZlYXR1cmUvbm90aWZpY2F0aW9ucy9zcmMvbGliL25vdGlmaWNhdGlvbnMtY29udGFpbmVyL25vdGlmaWNhdGlvbnMtY29udGFpbmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDbEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQzlDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFBO0FBQy9ELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHdDQUF3QyxDQUFBO0FBQzlFLE9BQU8sRUFDTCxPQUFPLEVBQ1AsU0FBUyxFQUNULEtBQUssRUFDTCxVQUFVLEVBQ1YsT0FBTyxHQUNSLE1BQU0scUJBQXFCLENBQUE7Ozs7QUEyQjVCLE1BQU0sT0FBTywrQkFBK0I7SUFDMUMsWUFBc0Isb0JBQTBDO1FBQTFDLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBc0I7SUFBRyxDQUFDO0lBRXBFLFNBQVMsQ0FBQyxLQUFhLEVBQUUsWUFBNEI7UUFDbkQsT0FBTyxZQUFZLENBQUMsRUFBRSxDQUFBO0lBQ3hCLENBQUM7OEdBTFUsK0JBQStCO2tHQUEvQiwrQkFBK0IseUZDckM1QywrakJBaUJBLHlEREZZLFlBQVksaU5BQUUscUJBQXFCLG9JQUlqQztZQUNWLE9BQU8sQ0FBQyxXQUFXLEVBQUU7Z0JBQ25CLFVBQVUsQ0FBQyxRQUFRLEVBQUU7b0JBQ25CLE9BQU8sQ0FDTCxPQUFPLEVBQ1AsU0FBUyxDQUFDO3dCQUNSLEtBQUssQ0FBQyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDO3dCQUM1QyxLQUFLLENBQUMsRUFBRSxTQUFTLEVBQUUsYUFBYSxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQzt3QkFDakQsS0FBSyxDQUFDLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUM7cUJBQzdDLENBQUMsQ0FDSDtpQkFDRixDQUFDO2dCQUNGLFVBQVUsQ0FBQyxRQUFRLEVBQUU7b0JBQ25CLE9BQU8sQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLEVBQUUsU0FBUyxFQUFFLGtCQUFrQixFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO2lCQUN2RSxDQUFDO2FBQ0gsQ0FBQztTQUNIOzsyRkFFVSwrQkFBK0I7a0JBekIzQyxTQUFTOytCQUNFLCtCQUErQixjQUM3QixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUscUJBQXFCLENBQUMsbUJBRzdCLHVCQUF1QixDQUFDLE1BQU0sY0FDbkM7d0JBQ1YsT0FBTyxDQUFDLFdBQVcsRUFBRTs0QkFDbkIsVUFBVSxDQUFDLFFBQVEsRUFBRTtnQ0FDbkIsT0FBTyxDQUNMLE9BQU8sRUFDUCxTQUFTLENBQUM7b0NBQ1IsS0FBSyxDQUFDLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUM7b0NBQzVDLEtBQUssQ0FBQyxFQUFFLFNBQVMsRUFBRSxhQUFhLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDO29DQUNqRCxLQUFLLENBQUMsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQztpQ0FDN0MsQ0FBQyxDQUNIOzZCQUNGLENBQUM7NEJBQ0YsVUFBVSxDQUFDLFFBQVEsRUFBRTtnQ0FDbkIsT0FBTyxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsRUFBRSxTQUFTLEVBQUUsa0JBQWtCLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7NkJBQ3ZFLENBQUM7eUJBQ0gsQ0FBQztxQkFDSCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xuaW1wb3J0IHsgTm90aWZpY2F0aW9uc1NlcnZpY2UgfSBmcm9tICcuLi9ub3RpZmljYXRpb25zLnNlcnZpY2UnXG5pbXBvcnQgeyBOb3RpZmljYXRpb25Db21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL2VsZW1lbnRzL3NyYydcbmltcG9ydCB7XG4gIGFuaW1hdGUsXG4gIGtleWZyYW1lcyxcbiAgc3R5bGUsXG4gIHRyYW5zaXRpb24sXG4gIHRyaWdnZXIsXG59IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2duLXVpLW5vdGlmaWNhdGlvbnMtY29udGFpbmVyJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgTm90aWZpY2F0aW9uQ29tcG9uZW50XSxcbiAgdGVtcGxhdGVVcmw6ICcuL25vdGlmaWNhdGlvbnMtY29udGFpbmVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbm90aWZpY2F0aW9ucy1jb250YWluZXIuY29tcG9uZW50LmNzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgYW5pbWF0aW9uczogW1xuICAgIHRyaWdnZXIoJ2VudGVyRXhpdCcsIFtcbiAgICAgIHRyYW5zaXRpb24oJzplbnRlcicsIFtcbiAgICAgICAgYW5pbWF0ZShcbiAgICAgICAgICAnMTUwbXMnLFxuICAgICAgICAgIGtleWZyYW1lcyhbXG4gICAgICAgICAgICBzdHlsZSh7IHRyYW5zZm9ybTogJ3NjYWxlKDEpJywgb3BhY2l0eTogMCB9KSxcbiAgICAgICAgICAgIHN0eWxlKHsgdHJhbnNmb3JtOiAnc2NhbGUoMS4wMyknLCBvcGFjaXR5OiAwLjUgfSksXG4gICAgICAgICAgICBzdHlsZSh7IHRyYW5zZm9ybTogJ3NjYWxlKDEpJywgb3BhY2l0eTogMSB9KSxcbiAgICAgICAgICBdKVxuICAgICAgICApLFxuICAgICAgXSksXG4gICAgICB0cmFuc2l0aW9uKCc6bGVhdmUnLCBbXG4gICAgICAgIGFuaW1hdGUoJzIwMG1zJywgc3R5bGUoeyB0cmFuc2Zvcm06ICd0cmFuc2xhdGVYKDUwcHgpJywgb3BhY2l0eTogMCB9KSksXG4gICAgICBdKSxcbiAgICBdKSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgTm90aWZpY2F0aW9uc0NvbnRhaW5lckNvbXBvbmVudCB7XG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBub3RpZmljYXRpb25zU2VydmljZTogTm90aWZpY2F0aW9uc1NlcnZpY2UpIHt9XG5cbiAgdHJhY2tCeUlkKGluZGV4OiBudW1iZXIsIG5vdGlmaWNhdGlvbjogeyBpZDogbnVtYmVyIH0pIHtcbiAgICByZXR1cm4gbm90aWZpY2F0aW9uLmlkXG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGdhcC02IHAtNiBpdGVtcy1zdGFydCBwb2ludGVyLWV2ZW50cy1ub25lXCI+XG4gIDxnbi11aS1ub3RpZmljYXRpb25cbiAgICAqbmdGb3I9XCJcbiAgICAgIGxldCBub3RpZmljYXRpb24gb2Ygbm90aWZpY2F0aW9uc1NlcnZpY2Uubm90aWZpY2F0aW9ucyQgfCBhc3luYztcbiAgICAgIHRyYWNrQnk6IHRyYWNrQnlJZFxuICAgIFwiXG4gICAgY2xhc3M9XCJtYXgtdy1mdWxsIHBvaW50ZXItZXZlbnRzLWF1dG9cIlxuICAgIFt0ZXh0XT1cIm5vdGlmaWNhdGlvbi50ZXh0XCJcbiAgICBbdHlwZV09XCJub3RpZmljYXRpb24udHlwZVwiXG4gICAgW3RpdGxlXT1cIm5vdGlmaWNhdGlvbi50aXRsZVwiXG4gICAgW2Nsb3NlTWVzc2FnZV09XCJub3RpZmljYXRpb24uY2xvc2VNZXNzYWdlXCJcbiAgICAobm90aWZpY2F0aW9uQ2xvc2UpPVwiXG4gICAgICBub3RpZmljYXRpb25zU2VydmljZS5yZW1vdmVOb3RpZmljYXRpb25CeUlkKG5vdGlmaWNhdGlvbi5pZClcbiAgICBcIlxuICAgIFtAZW50ZXJFeGl0XVxuICA+PC9nbi11aS1ub3RpZmljYXRpb24+XG48L2Rpdj5cbiJdfQ==
@@ -0,0 +1,29 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { BehaviorSubject } from 'rxjs';
3
+ import * as i0 from "@angular/core";
4
+ export class NotificationsService {
5
+ constructor() {
6
+ this.notifications$ = new BehaviorSubject([]);
7
+ }
8
+ showNotification(content, timeoutMs) {
9
+ const id = Math.floor(Math.random() * 1000000);
10
+ this.notifications$.next([...this.notifications$.value, { ...content, id }]);
11
+ if (typeof timeoutMs === 'undefined')
12
+ return;
13
+ setTimeout(() => {
14
+ this.removeNotificationById(id);
15
+ }, timeoutMs);
16
+ }
17
+ removeNotificationById(id) {
18
+ this.notifications$.next(this.notifications$.value.filter((n) => n.id !== id));
19
+ }
20
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: NotificationsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
21
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: NotificationsService, providedIn: 'root' }); }
22
+ }
23
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: NotificationsService, decorators: [{
24
+ type: Injectable,
25
+ args: [{
26
+ providedIn: 'root',
27
+ }]
28
+ }] });
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9ucy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9mZWF0dXJlL25vdGlmaWNhdGlvbnMvc3JjL2xpYi9ub3RpZmljYXRpb25zLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUUxQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFBOztBQU90QyxNQUFNLE9BQU8sb0JBQW9CO0lBSGpDO1FBSUUsbUJBQWMsR0FBRyxJQUFJLGVBQWUsQ0FBNkIsRUFBRSxDQUFDLENBQUE7S0FnQnJFO0lBZEMsZ0JBQWdCLENBQUMsT0FBNEIsRUFBRSxTQUFrQjtRQUMvRCxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxPQUFPLENBQUMsQ0FBQTtRQUM5QyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxHQUFHLE9BQU8sRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUE7UUFDNUUsSUFBSSxPQUFPLFNBQVMsS0FBSyxXQUFXO1lBQUUsT0FBTTtRQUM1QyxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLHNCQUFzQixDQUFDLEVBQUUsQ0FBQyxDQUFBO1FBQ2pDLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQTtJQUNmLENBQUM7SUFFRCxzQkFBc0IsQ0FBQyxFQUFVO1FBQy9CLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUN0QixJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQ3JELENBQUE7SUFDSCxDQUFDOzhHQWhCVSxvQkFBb0I7a0hBQXBCLG9CQUFvQixjQUZuQixNQUFNOzsyRkFFUCxvQkFBb0I7a0JBSGhDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBOb3RpZmljYXRpb25Db250ZW50IH0gZnJvbSAnLi9ub3RpZmljYXRpb24ubW9kZWwnXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJ1xuXG50eXBlIE5vdGlmaWNhdGlvbldpdGhJZGVudGl0eSA9IE5vdGlmaWNhdGlvbkNvbnRlbnQgJiB7IGlkOiBudW1iZXIgfVxuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgTm90aWZpY2F0aW9uc1NlcnZpY2Uge1xuICBub3RpZmljYXRpb25zJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Tm90aWZpY2F0aW9uV2l0aElkZW50aXR5W10+KFtdKVxuXG4gIHNob3dOb3RpZmljYXRpb24oY29udGVudDogTm90aWZpY2F0aW9uQ29udGVudCwgdGltZW91dE1zPzogbnVtYmVyKSB7XG4gICAgY29uc3QgaWQgPSBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAxMDAwMDAwKVxuICAgIHRoaXMubm90aWZpY2F0aW9ucyQubmV4dChbLi4udGhpcy5ub3RpZmljYXRpb25zJC52YWx1ZSwgeyAuLi5jb250ZW50LCBpZCB9XSlcbiAgICBpZiAodHlwZW9mIHRpbWVvdXRNcyA9PT0gJ3VuZGVmaW5lZCcpIHJldHVyblxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5yZW1vdmVOb3RpZmljYXRpb25CeUlkKGlkKVxuICAgIH0sIHRpbWVvdXRNcylcbiAgfVxuXG4gIHJlbW92ZU5vdGlmaWNhdGlvbkJ5SWQoaWQ6IG51bWJlcikge1xuICAgIHRoaXMubm90aWZpY2F0aW9ucyQubmV4dChcbiAgICAgIHRoaXMubm90aWZpY2F0aW9ucyQudmFsdWUuZmlsdGVyKChuKSA9PiBuLmlkICE9PSBpZClcbiAgICApXG4gIH1cbn1cbiJdfQ==
@@ -11,7 +11,7 @@ import { MdViewFacade } from './state';
11
11
  import { MdViewEffects } from './state/mdview.effects';
12
12
  import { MapViewComponent } from './map-view/map-view.component';
13
13
  import { DataViewComponent } from './data-view/data-view.component';
14
- import { MD_VIEW_FEATURE_STATE_KEY, reducer } from './state/mdview.reducer';
14
+ import { METADATA_VIEW_FEATURE_STATE_KEY, reducer, } from './state/mdview.reducer';
15
15
  import { MatTabsModule } from '@angular/material/tabs';
16
16
  import { MatIconModule } from '@angular/material/icon';
17
17
  import { UiWidgetsModule } from '../../../../../libs/ui/widgets/src';
@@ -50,7 +50,7 @@ export class FeatureRecordModule {
50
50
  DataViewWebComponentComponent,
51
51
  DataViewShareComponent] }); }
52
52
  static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: FeatureRecordModule, providers: [MdViewFacade], imports: [CommonModule,
53
- StoreModule.forFeature(MD_VIEW_FEATURE_STATE_KEY, reducer),
53
+ StoreModule.forFeature(METADATA_VIEW_FEATURE_STATE_KEY, reducer),
54
54
  EffectsModule.forFeature([MdViewEffects]),
55
55
  UiLayoutModule,
56
56
  FeatureMapModule,
@@ -78,7 +78,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
78
78
  ],
79
79
  imports: [
80
80
  CommonModule,
81
- StoreModule.forFeature(MD_VIEW_FEATURE_STATE_KEY, reducer),
81
+ StoreModule.forFeature(METADATA_VIEW_FEATURE_STATE_KEY, reducer),
82
82
  EffectsModule.forFeature([MdViewEffects]),
83
83
  UiLayoutModule,
84
84
  FeatureMapModule,
@@ -103,4 +103,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
103
103
  ],
104
104
  }]
105
105
  }] });
106
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZS1yZWNvcmQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9mZWF0dXJlL3JlY29yZC9zcmMvbGliL2ZlYXR1cmUtcmVjb3JkLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWtCLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUN4RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDOUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdDQUFnQyxDQUFBO0FBQzVELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxhQUFhLENBQUE7QUFDekMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUM3QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUNBQW1DLENBQUE7QUFDbEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUNBQXFDLENBQUE7QUFDdEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1DQUFtQyxDQUFBO0FBQ2xFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFBO0FBQ3RFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxTQUFTLENBQUE7QUFDdEMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFBO0FBQ3RELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLCtCQUErQixDQUFBO0FBQ2hFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFBO0FBQ25FLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxPQUFPLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQTtBQUMzRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUE7QUFDdEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFBO0FBQ3RELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQTtBQUNwRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUE7QUFDckQsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sMkRBQTJELENBQUE7QUFDekcsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0seUNBQXlDLENBQUE7QUFDOUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9DQUFvQyxDQUFBO0FBQ25FLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFBO0FBQzlFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHFEQUFxRCxDQUFBO0FBQ2hHLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLDZEQUE2RCxDQUFBO0FBQzNHLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDZDQUE2QyxDQUFBOzs7O0FBcUNwRixNQUFNLE9BQU8sbUJBQW1COzhHQUFuQixtQkFBbUI7K0dBQW5CLG1CQUFtQixpQkFqQzVCLGdCQUFnQjtZQUNoQixpQkFBaUI7WUFDakIsNkJBQTZCO1lBQzdCLDBCQUEwQjtZQUMxQiw2QkFBNkI7WUFDN0Isc0JBQXNCLGFBR3RCLFlBQVksa0RBR1osY0FBYztZQUNkLGdCQUFnQjtZQUNoQixvQkFBb0I7WUFDcEIsV0FBVztZQUNYLGNBQWM7WUFDZCxnQkFBZ0I7WUFDaEIsYUFBYTtZQUNiLGFBQWE7WUFDYixlQUFlO1lBQ2YsZUFBZTtZQUNmLGNBQWM7WUFDZCxvQkFBb0IsYUFJcEIsZ0JBQWdCO1lBQ2hCLGlCQUFpQjtZQUNqQiwwQkFBMEI7WUFDMUIsNkJBQTZCO1lBQzdCLHNCQUFzQjsrR0FHYixtQkFBbUIsYUFUbkIsQ0FBQyxZQUFZLENBQUMsWUFoQnZCLFlBQVk7WUFDWixXQUFXLENBQUMsVUFBVSxDQUFDLHlCQUF5QixFQUFFLE9BQU8sQ0FBQztZQUMxRCxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDekMsY0FBYztZQUNkLGdCQUFnQjtZQUNoQixvQkFBb0I7WUFDcEIsV0FBVztZQUNYLGNBQWM7WUFDZCxnQkFBZ0I7WUFDaEIsYUFBYTtZQUNiLGFBQWE7WUFDYixlQUFlO1lBQ2YsZUFBZTtZQUNmLGNBQWM7WUFDZCxvQkFBb0I7OzJGQVdYLG1CQUFtQjtrQkFuQy9CLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFO3dCQUNaLGdCQUFnQjt3QkFDaEIsaUJBQWlCO3dCQUNqQiw2QkFBNkI7d0JBQzdCLDBCQUEwQjt3QkFDMUIsNkJBQTZCO3dCQUM3QixzQkFBc0I7cUJBQ3ZCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLFdBQVcsQ0FBQyxVQUFVLENBQUMseUJBQXlCLEVBQUUsT0FBTyxDQUFDO3dCQUMxRCxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUM7d0JBQ3pDLGNBQWM7d0JBQ2QsZ0JBQWdCO3dCQUNoQixvQkFBb0I7d0JBQ3BCLFdBQVc7d0JBQ1gsY0FBYzt3QkFDZCxnQkFBZ0I7d0JBQ2hCLGFBQWE7d0JBQ2IsYUFBYTt3QkFDYixlQUFlO3dCQUNmLGVBQWU7d0JBQ2YsY0FBYzt3QkFDZCxvQkFBb0I7cUJBQ3JCO29CQUNELFNBQVMsRUFBRSxDQUFDLFlBQVksQ0FBQztvQkFDekIsT0FBTyxFQUFFO3dCQUNQLGdCQUFnQjt3QkFDaEIsaUJBQWlCO3dCQUNqQiwwQkFBMEI7d0JBQzFCLDZCQUE2Qjt3QkFDN0Isc0JBQXNCO3FCQUN2QjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuLCBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nXG5pbXBvcnQgeyBVaU1hcE1vZHVsZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvbWFwL3NyYydcbmltcG9ydCB7IFN0b3JlTW9kdWxlIH0gZnJvbSAnQG5ncngvc3RvcmUnXG5pbXBvcnQgeyBFZmZlY3RzTW9kdWxlIH0gZnJvbSAnQG5ncngvZWZmZWN0cydcbmltcG9ydCB7IFVpTGF5b3V0TW9kdWxlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vbGlicy91aS9sYXlvdXQvc3JjJ1xuaW1wb3J0IHsgRmVhdHVyZU1hcE1vZHVsZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2xpYnMvZmVhdHVyZS9tYXAvc3JjJ1xuaW1wb3J0IHsgVWlJbnB1dHNNb2R1bGUgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9saWJzL3VpL2lucHV0cy9zcmMnXG5pbXBvcnQgeyBVaUVsZW1lbnRzTW9kdWxlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vbGlicy91aS9lbGVtZW50cy9zcmMnXG5pbXBvcnQgeyBNZFZpZXdGYWNhZGUgfSBmcm9tICcuL3N0YXRlJ1xuaW1wb3J0IHsgTWRWaWV3RWZmZWN0cyB9IGZyb20gJy4vc3RhdGUvbWR2aWV3LmVmZmVjdHMnXG5pbXBvcnQgeyBNYXBWaWV3Q29tcG9uZW50IH0gZnJvbSAnLi9tYXAtdmlldy9tYXAtdmlldy5jb21wb25lbnQnXG5pbXBvcnQgeyBEYXRhVmlld0NvbXBvbmVudCB9IGZyb20gJy4vZGF0YS12aWV3L2RhdGEtdmlldy5jb21wb25lbnQnXG5pbXBvcnQgeyBNRF9WSUVXX0ZFQVRVUkVfU1RBVEVfS0VZLCByZWR1Y2VyIH0gZnJvbSAnLi9zdGF0ZS9tZHZpZXcucmVkdWNlcidcbmltcG9ydCB7IE1hdFRhYnNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90YWJzJ1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nXG5pbXBvcnQgeyBVaVdpZGdldHNNb2R1bGUgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9saWJzL3VpL3dpZGdldHMvc3JjJ1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSdcbmltcG9ydCB7IEV4dGVybmFsVmlld2VyQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi9leHRlcm5hbC12aWV3ZXItYnV0dG9uL2V4dGVybmFsLXZpZXdlci1idXR0b24uY29tcG9uZW50J1xuaW1wb3J0IHsgRmVhdHVyZUNhdGFsb2dNb2R1bGUgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9saWJzL2ZlYXR1cmUvY2F0YWxvZy9zcmMnXG5pbXBvcnQgeyBUYWJsZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvZGF0YXZpei9zcmMnXG5pbXBvcnQgeyBGZWF0dXJlRGF0YXZpek1vZHVsZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2xpYnMvZmVhdHVyZS9kYXRhdml6L3NyYydcbmltcG9ydCB7IERhdGFWaWV3UGVybWFsaW5rQ29tcG9uZW50IH0gZnJvbSAnLi9kYXRhLXZpZXctcGVybWFsaW5rL2RhdGEtdmlldy1wZXJtYWxpbmsuY29tcG9uZW50J1xuaW1wb3J0IHsgRGF0YVZpZXdXZWJDb21wb25lbnRDb21wb25lbnQgfSBmcm9tICcuL2RhdGEtdmlldy13ZWItY29tcG9uZW50L2RhdGEtdmlldy13ZWItY29tcG9uZW50LmNvbXBvbmVudCdcbmltcG9ydCB7IERhdGFWaWV3U2hhcmVDb21wb25lbnQgfSBmcm9tICcuL2RhdGEtdmlldy1zaGFyZS9kYXRhLXZpZXctc2hhcmUuY29tcG9uZW50J1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBNYXBWaWV3Q29tcG9uZW50LFxuICAgIERhdGFWaWV3Q29tcG9uZW50LFxuICAgIEV4dGVybmFsVmlld2VyQnV0dG9uQ29tcG9uZW50LFxuICAgIERhdGFWaWV3UGVybWFsaW5rQ29tcG9uZW50LFxuICAgIERhdGFWaWV3V2ViQ29tcG9uZW50Q29tcG9uZW50LFxuICAgIERhdGFWaWV3U2hhcmVDb21wb25lbnQsXG4gIF0sXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgU3RvcmVNb2R1bGUuZm9yRmVhdHVyZShNRF9WSUVXX0ZFQVRVUkVfU1RBVEVfS0VZLCByZWR1Y2VyKSxcbiAgICBFZmZlY3RzTW9kdWxlLmZvckZlYXR1cmUoW01kVmlld0VmZmVjdHNdKSxcbiAgICBVaUxheW91dE1vZHVsZSxcbiAgICBGZWF0dXJlTWFwTW9kdWxlLFxuICAgIEZlYXR1cmVDYXRhbG9nTW9kdWxlLFxuICAgIFVpTWFwTW9kdWxlLFxuICAgIFVpSW5wdXRzTW9kdWxlLFxuICAgIFVpRWxlbWVudHNNb2R1bGUsXG4gICAgTWF0VGFic01vZHVsZSxcbiAgICBNYXRJY29uTW9kdWxlLFxuICAgIFVpV2lkZ2V0c01vZHVsZSxcbiAgICBUcmFuc2xhdGVNb2R1bGUsXG4gICAgVGFibGVDb21wb25lbnQsXG4gICAgRmVhdHVyZURhdGF2aXpNb2R1bGUsXG4gIF0sXG4gIHByb3ZpZGVyczogW01kVmlld0ZhY2FkZV0sXG4gIGV4cG9ydHM6IFtcbiAgICBNYXBWaWV3Q29tcG9uZW50LFxuICAgIERhdGFWaWV3Q29tcG9uZW50LFxuICAgIERhdGFWaWV3UGVybWFsaW5rQ29tcG9uZW50LFxuICAgIERhdGFWaWV3V2ViQ29tcG9uZW50Q29tcG9uZW50LFxuICAgIERhdGFWaWV3U2hhcmVDb21wb25lbnQsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEZlYXR1cmVSZWNvcmRNb2R1bGUge31cbiJdfQ==
106
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZS1yZWNvcmQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9mZWF0dXJlL3JlY29yZC9zcmMvbGliL2ZlYXR1cmUtcmVjb3JkLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWtCLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUN4RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDOUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdDQUFnQyxDQUFBO0FBQzVELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxhQUFhLENBQUE7QUFDekMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUM3QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUNBQW1DLENBQUE7QUFDbEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUNBQXFDLENBQUE7QUFDdEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1DQUFtQyxDQUFBO0FBQ2xFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFBO0FBQ3RFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxTQUFTLENBQUE7QUFDdEMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFBO0FBQ3RELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLCtCQUErQixDQUFBO0FBQ2hFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFBO0FBQ25FLE9BQU8sRUFDTCwrQkFBK0IsRUFDL0IsT0FBTyxHQUNSLE1BQU0sd0JBQXdCLENBQUE7QUFDL0IsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFBO0FBQ3RELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQTtBQUN0RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0NBQW9DLENBQUE7QUFDcEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBQ3JELE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLDJEQUEyRCxDQUFBO0FBQ3pHLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFBO0FBQzlFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQTtBQUNuRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQTtBQUM5RSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxxREFBcUQsQ0FBQTtBQUNoRyxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSw2REFBNkQsQ0FBQTtBQUMzRyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQTs7OztBQXFDcEYsTUFBTSxPQUFPLG1CQUFtQjs4R0FBbkIsbUJBQW1COytHQUFuQixtQkFBbUIsaUJBakM1QixnQkFBZ0I7WUFDaEIsaUJBQWlCO1lBQ2pCLDZCQUE2QjtZQUM3QiwwQkFBMEI7WUFDMUIsNkJBQTZCO1lBQzdCLHNCQUFzQixhQUd0QixZQUFZLGtEQUdaLGNBQWM7WUFDZCxnQkFBZ0I7WUFDaEIsb0JBQW9CO1lBQ3BCLFdBQVc7WUFDWCxjQUFjO1lBQ2QsZ0JBQWdCO1lBQ2hCLGFBQWE7WUFDYixhQUFhO1lBQ2IsZUFBZTtZQUNmLGVBQWU7WUFDZixjQUFjO1lBQ2Qsb0JBQW9CLGFBSXBCLGdCQUFnQjtZQUNoQixpQkFBaUI7WUFDakIsMEJBQTBCO1lBQzFCLDZCQUE2QjtZQUM3QixzQkFBc0I7K0dBR2IsbUJBQW1CLGFBVG5CLENBQUMsWUFBWSxDQUFDLFlBaEJ2QixZQUFZO1lBQ1osV0FBVyxDQUFDLFVBQVUsQ0FBQywrQkFBK0IsRUFBRSxPQUFPLENBQUM7WUFDaEUsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQ3pDLGNBQWM7WUFDZCxnQkFBZ0I7WUFDaEIsb0JBQW9CO1lBQ3BCLFdBQVc7WUFDWCxjQUFjO1lBQ2QsZ0JBQWdCO1lBQ2hCLGFBQWE7WUFDYixhQUFhO1lBQ2IsZUFBZTtZQUNmLGVBQWU7WUFDZixjQUFjO1lBQ2Qsb0JBQW9COzsyRkFXWCxtQkFBbUI7a0JBbkMvQixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRTt3QkFDWixnQkFBZ0I7d0JBQ2hCLGlCQUFpQjt3QkFDakIsNkJBQTZCO3dCQUM3QiwwQkFBMEI7d0JBQzFCLDZCQUE2Qjt3QkFDN0Isc0JBQXNCO3FCQUN2QjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixXQUFXLENBQUMsVUFBVSxDQUFDLCtCQUErQixFQUFFLE9BQU8sQ0FBQzt3QkFDaEUsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDO3dCQUN6QyxjQUFjO3dCQUNkLGdCQUFnQjt3QkFDaEIsb0JBQW9CO3dCQUNwQixXQUFXO3dCQUNYLGNBQWM7d0JBQ2QsZ0JBQWdCO3dCQUNoQixhQUFhO3dCQUNiLGFBQWE7d0JBQ2IsZUFBZTt3QkFDZixlQUFlO3dCQUNmLGNBQWM7d0JBQ2Qsb0JBQW9CO3FCQUNyQjtvQkFDRCxTQUFTLEVBQUUsQ0FBQyxZQUFZLENBQUM7b0JBQ3pCLE9BQU8sRUFBRTt3QkFDUCxnQkFBZ0I7d0JBQ2hCLGlCQUFpQjt3QkFDakIsMEJBQTBCO3dCQUMxQiw2QkFBNkI7d0JBQzdCLHNCQUFzQjtxQkFDdkI7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiwgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xuaW1wb3J0IHsgVWlNYXBNb2R1bGUgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9saWJzL3VpL21hcC9zcmMnXG5pbXBvcnQgeyBTdG9yZU1vZHVsZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJ1xuaW1wb3J0IHsgRWZmZWN0c01vZHVsZSB9IGZyb20gJ0BuZ3J4L2VmZmVjdHMnXG5pbXBvcnQgeyBVaUxheW91dE1vZHVsZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvbGF5b3V0L3NyYydcbmltcG9ydCB7IEZlYXR1cmVNYXBNb2R1bGUgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9saWJzL2ZlYXR1cmUvbWFwL3NyYydcbmltcG9ydCB7IFVpSW5wdXRzTW9kdWxlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vbGlicy91aS9pbnB1dHMvc3JjJ1xuaW1wb3J0IHsgVWlFbGVtZW50c01vZHVsZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvZWxlbWVudHMvc3JjJ1xuaW1wb3J0IHsgTWRWaWV3RmFjYWRlIH0gZnJvbSAnLi9zdGF0ZSdcbmltcG9ydCB7IE1kVmlld0VmZmVjdHMgfSBmcm9tICcuL3N0YXRlL21kdmlldy5lZmZlY3RzJ1xuaW1wb3J0IHsgTWFwVmlld0NvbXBvbmVudCB9IGZyb20gJy4vbWFwLXZpZXcvbWFwLXZpZXcuY29tcG9uZW50J1xuaW1wb3J0IHsgRGF0YVZpZXdDb21wb25lbnQgfSBmcm9tICcuL2RhdGEtdmlldy9kYXRhLXZpZXcuY29tcG9uZW50J1xuaW1wb3J0IHtcbiAgTUVUQURBVEFfVklFV19GRUFUVVJFX1NUQVRFX0tFWSxcbiAgcmVkdWNlcixcbn0gZnJvbSAnLi9zdGF0ZS9tZHZpZXcucmVkdWNlcidcbmltcG9ydCB7IE1hdFRhYnNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90YWJzJ1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nXG5pbXBvcnQgeyBVaVdpZGdldHNNb2R1bGUgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9saWJzL3VpL3dpZGdldHMvc3JjJ1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSdcbmltcG9ydCB7IEV4dGVybmFsVmlld2VyQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi9leHRlcm5hbC12aWV3ZXItYnV0dG9uL2V4dGVybmFsLXZpZXdlci1idXR0b24uY29tcG9uZW50J1xuaW1wb3J0IHsgRmVhdHVyZUNhdGFsb2dNb2R1bGUgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9saWJzL2ZlYXR1cmUvY2F0YWxvZy9zcmMnXG5pbXBvcnQgeyBUYWJsZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvZGF0YXZpei9zcmMnXG5pbXBvcnQgeyBGZWF0dXJlRGF0YXZpek1vZHVsZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2xpYnMvZmVhdHVyZS9kYXRhdml6L3NyYydcbmltcG9ydCB7IERhdGFWaWV3UGVybWFsaW5rQ29tcG9uZW50IH0gZnJvbSAnLi9kYXRhLXZpZXctcGVybWFsaW5rL2RhdGEtdmlldy1wZXJtYWxpbmsuY29tcG9uZW50J1xuaW1wb3J0IHsgRGF0YVZpZXdXZWJDb21wb25lbnRDb21wb25lbnQgfSBmcm9tICcuL2RhdGEtdmlldy13ZWItY29tcG9uZW50L2RhdGEtdmlldy13ZWItY29tcG9uZW50LmNvbXBvbmVudCdcbmltcG9ydCB7IERhdGFWaWV3U2hhcmVDb21wb25lbnQgfSBmcm9tICcuL2RhdGEtdmlldy1zaGFyZS9kYXRhLXZpZXctc2hhcmUuY29tcG9uZW50J1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBNYXBWaWV3Q29tcG9uZW50LFxuICAgIERhdGFWaWV3Q29tcG9uZW50LFxuICAgIEV4dGVybmFsVmlld2VyQnV0dG9uQ29tcG9uZW50LFxuICAgIERhdGFWaWV3UGVybWFsaW5rQ29tcG9uZW50LFxuICAgIERhdGFWaWV3V2ViQ29tcG9uZW50Q29tcG9uZW50LFxuICAgIERhdGFWaWV3U2hhcmVDb21wb25lbnQsXG4gIF0sXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgU3RvcmVNb2R1bGUuZm9yRmVhdHVyZShNRVRBREFUQV9WSUVXX0ZFQVRVUkVfU1RBVEVfS0VZLCByZWR1Y2VyKSxcbiAgICBFZmZlY3RzTW9kdWxlLmZvckZlYXR1cmUoW01kVmlld0VmZmVjdHNdKSxcbiAgICBVaUxheW91dE1vZHVsZSxcbiAgICBGZWF0dXJlTWFwTW9kdWxlLFxuICAgIEZlYXR1cmVDYXRhbG9nTW9kdWxlLFxuICAgIFVpTWFwTW9kdWxlLFxuICAgIFVpSW5wdXRzTW9kdWxlLFxuICAgIFVpRWxlbWVudHNNb2R1bGUsXG4gICAgTWF0VGFic01vZHVsZSxcbiAgICBNYXRJY29uTW9kdWxlLFxuICAgIFVpV2lkZ2V0c01vZHVsZSxcbiAgICBUcmFuc2xhdGVNb2R1bGUsXG4gICAgVGFibGVDb21wb25lbnQsXG4gICAgRmVhdHVyZURhdGF2aXpNb2R1bGUsXG4gIF0sXG4gIHByb3ZpZGVyczogW01kVmlld0ZhY2FkZV0sXG4gIGV4cG9ydHM6IFtcbiAgICBNYXBWaWV3Q29tcG9uZW50LFxuICAgIERhdGFWaWV3Q29tcG9uZW50LFxuICAgIERhdGFWaWV3UGVybWFsaW5rQ29tcG9uZW50LFxuICAgIERhdGFWaWV3V2ViQ29tcG9uZW50Q29tcG9uZW50LFxuICAgIERhdGFWaWV3U2hhcmVDb21wb25lbnQsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEZlYXR1cmVSZWNvcmRNb2R1bGUge31cbiJdfQ==
@@ -115,7 +115,11 @@ export class MapViewComponent {
115
115
  }
116
116
  else if (link.type === 'service' &&
117
117
  link.accessServiceProtocol === 'wmts') {
118
- return this.mapUtils.getWmtsLayerFromCapabilities(link);
118
+ return of({
119
+ url: link.url.toString(),
120
+ type: MapContextLayerTypeEnum.WMTS,
121
+ name: link.name,
122
+ });
119
123
  }
120
124
  else if ((link.type === 'service' &&
121
125
  (link.accessServiceProtocol === 'wfs' ||
@@ -138,4 +142,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
138
142
  type: Component,
139
143
  args: [{ selector: 'gn-ui-map-view', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"w-full h-full flex flex-col p-1\">\n <div class=\"w-full flex justify-end mb-7 mt-1\">\n <gn-ui-dropdown-selector\n class=\"truncate p-1 -mx-1\"\n extraBtnClass=\"!text-primary font-sans font-medium\"\n [title]=\"'map.select.layer' | translate\"\n [choices]=\"dropdownChoices$ | async\"\n (selectValue)=\"selectLinkToDisplay($event)\"\n ></gn-ui-dropdown-selector>\n <gn-ui-external-viewer-button\n class=\"shrink-0 py-1 place-self-end\"\n [link]=\"selectedLink$ | async\"\n [mapConfig]=\"mapConfig\"\n >\n </gn-ui-external-viewer-button>\n </div>\n <div\n class=\"relative w-full h-full bg-white border border-gray-300 rounded-lg overflow-hidden\"\n >\n <gn-ui-map-context\n [context]=\"mapContext$ | async\"\n [mapConfig]=\"mapConfig\"\n ></gn-ui-map-context>\n <div\n class=\"top-[1em] right-[1em] p-3 bg-white absolute overflow-y-auto overflow-x-hidden max-h-72 w-56\"\n [class.hidden]=\"!selection\"\n >\n <button\n (click)=\"resetSelection()\"\n class=\"rounded bg-primary-opacity-25 text-white absolute right-[0.5em]\"\n >\n <mat-icon\n class=\"material-symbols-outlined align-middle text-sm\"\n style=\"height: 21px\"\n >close</mat-icon\n >\n </button>\n <gn-ui-feature-detail [feature]=\"selection\"></gn-ui-feature-detail>\n </div>\n <gn-ui-loading-mask\n *ngIf=\"loading\"\n class=\"absolute inset-0\"\n [message]=\"'map.loading.data' | translate\"\n ></gn-ui-loading-mask>\n <gn-ui-popup-alert\n *ngIf=\"error\"\n type=\"warning\"\n icon=\"error_outline\"\n class=\"absolute m-2 inset-0\"\n >\n <span translate>{{ error }}</span>\n </gn-ui-popup-alert>\n </div>\n</div>\n" }]
140
144
  }], ctorParameters: function () { return [{ type: i1.MdViewFacade }, { type: i2.MapManagerService }, { type: i2.MapUtilsService }, { type: i3.DataService }, { type: i2.FeatureInfoService }, { type: i0.ChangeDetectorRef }, { type: i2.MapStyleService }]; } });
141
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwLXZpZXcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9mZWF0dXJlL3JlY29yZC9zcmMvbGliL21hcC12aWV3L21hcC12aWV3LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZmVhdHVyZS9yZWNvcmQvc3JjL2xpYi9tYXAtdmlldy9tYXAtdmlldy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEdBR1YsTUFBTSxlQUFlLENBQUE7QUFDdEIsT0FBTyxFQUNMLGtCQUFrQixFQUVsQix1QkFBdUIsRUFFdkIsaUJBQWlCLEVBQ2pCLGVBQWUsRUFDZixlQUFlLEdBQ2hCLE1BQU0sd0NBQXdDLENBQUE7QUFDL0MsT0FBTyxFQUFFLG9CQUFvQixFQUFhLE1BQU0sNENBQTRDLENBQUE7QUFDNUYsT0FBTyxFQUFFLFlBQVksRUFBZ0IsTUFBTSx3Q0FBd0MsQ0FBQTtBQUluRixPQUFPLEVBQ0wsZUFBZSxFQUNmLGFBQWEsRUFDYixJQUFJLEVBR0osRUFBRSxFQUVGLFlBQVksRUFDWixVQUFVLEVBQ1YsY0FBYyxHQUNmLE1BQU0sTUFBTSxDQUFBO0FBQ2IsT0FBTyxFQUNMLFVBQVUsRUFDVixvQkFBb0IsRUFDcEIsUUFBUSxFQUNSLEdBQUcsRUFDSCxTQUFTLEVBQ1QsR0FBRyxHQUNKLE1BQU0sZ0JBQWdCLENBQUE7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHdCQUF3QixDQUFBO0FBQ3JELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQTs7Ozs7Ozs7Ozs7Ozs7QUFTeEUsTUFBTSxPQUFPLGdCQUFnQjtJQXFGM0IsWUFDVSxZQUEwQixFQUMxQixVQUE2QixFQUM3QixRQUF5QixFQUN6QixXQUF3QixFQUN4QixXQUErQixF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IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7XG4gIEZlYXR1cmVJbmZvU2VydmljZSxcbiAgTWFwQ29udGV4dExheWVyTW9kZWwsXG4gIE1hcENvbnRleHRMYXllclR5cGVFbnVtLFxuICBNYXBDb250ZXh0TW9kZWwsXG4gIE1hcE1hbmFnZXJTZXJ2aWNlLFxuICBNYXBTdHlsZVNlcnZpY2UsXG4gIE1hcFV0aWxzU2VydmljZSxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9mZWF0dXJlL21hcC9zcmMnXG5pbXBvcnQgeyBnZXRPcHRpb25hbE1hcENvbmZpZywgTWFwQ29uZmlnIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91dGlsL2FwcC1jb25maWcvc3JjJ1xuaW1wb3J0IHsgZ2V0TGlua0xhYmVsLCBQcm94eVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3V0aWwvc2hhcmVkL3NyYydcbmltcG9ydCBGZWF0dXJlIGZyb20gJ29sL0ZlYXR1cmUnXG5pbXBvcnQgeyBHZW9tZXRyeSB9IGZyb20gJ29sL2dlb20nXG5pbXBvcnQgeyBTdHlsZUxpa2UgfSBmcm9tICdvbC9zdHlsZS9TdHlsZSdcbmltcG9ydCB7XG4gIEJlaGF2aW9yU3ViamVjdCxcbiAgY29tYmluZUxhdGVzdCxcbiAgZnJvbSxcbiAgbGFzdFZhbHVlRnJvbSxcbiAgT2JzZXJ2YWJsZSxcbiAgb2YsXG4gIHN0YXJ0V2l0aCxcbiAgU3Vic2NyaXB0aW9uLFxuICB0aHJvd0Vycm9yLFxuICB3aXRoTGF0ZXN0RnJvbSxcbn0gZnJvbSAncnhqcydcbmltcG9ydCB7XG4gIGNhdGNoRXJyb3IsXG4gIGRpc3RpbmN0VW50aWxDaGFuZ2VkLFxuICBmaW5hbGl6ZSxcbiAgbWFwLFxuICBzd2l0Y2hNYXAsXG4gIHRhcCxcbn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnXG5pbXBvcnQgeyBNZFZpZXdGYWNhZGUgfSBmcm9tICcuLi9zdGF0ZS9tZHZpZXcuZmFjYWRlJ1xuaW1wb3J0IHsgRGF0YVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ZlYXR1cmUvZGF0YXZpei9zcmMnXG5pbXBvcnQgeyBEYXRhc2V0RGlzdHJpYnV0aW9uIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vZG9tYWluL3NyYy9saWIvbW9kZWwvcmVjb3JkJ1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdnbi11aS1tYXAtdmlldycsXG4gIHRlbXBsYXRlVXJsOiAnLi9tYXAtdmlldy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL21hcC12aWV3LmNvbXBvbmVudC5jc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIE1hcFZpZXdDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIG1hcENvbmZpZzogTWFwQ29uZmlnID0gZ2V0T3B0aW9uYWxNYXBDb25maWcoKVxuICBzZWxlY3Rpb246IEZlYXR1cmU8R2VvbWV0cnk+XG4gIHByaXZhdGUgc3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpXG4gIHByaXZhdGUgc2VsZWN0aW9uU3R5bGU6IFN0eWxlTGlrZVxuXG4gIGNvbXBhdGlibGVNYXBMaW5rcyQgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICB0aGlzLm1kVmlld0ZhY2FkZS5tYXBBcGlMaW5rcyQsXG4gICAgdGhpcy5tZFZpZXdGYWNhZGUuZ2VvRGF0YUxpbmtzJCxcbiAgXSkucGlwZShcbiAgICBtYXAoKFttYXBBcGlMaW5rcywgZ2VvRGF0YUxpbmtzXSkgPT4gWy4uLm1hcEFwaUxpbmtzLCAuLi5nZW9EYXRhTGlua3NdKVxuICApXG5cbiAgZHJvcGRvd25DaG9pY2VzJCA9IHRoaXMuY29tcGF0aWJsZU1hcExpbmtzJC5waXBlKFxuICAgIG1hcCgobGlua3MpID0+XG4gICAgICBsaW5rcy5sZW5ndGhcbiAgICAgICAgPyBsaW5rcy5tYXAoKGxpbmssIGluZGV4KSA9PiAoe1xuICAgICAgICAgICAgbGFiZWw6IGdldExpbmtMYWJlbChsaW5rKSxcbiAgICAgICAgICAgIHZhbHVlOiBpbmRleCxcbiAgICAgICAgICB9KSlcbiAgICAgICAgOiBbeyBsYWJlbDogJ05vIHByZXZpZXcgbGF5ZXInLCB2YWx1ZTogMCB9XVxuICAgIClcbiAgKVxuICBzZWxlY3RlZExpbmtJbmRleCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KDApXG5cbiAgbG9hZGluZyA9IGZhbHNlXG4gIGVycm9yID0gbnVsbFxuXG4gIHNlbGVjdGVkTGluayQgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICB0aGlzLmNvbXBhdGlibGVNYXBMaW5rcyQsXG4gICAgdGhpcy5zZWxlY3RlZExpbmtJbmRleCQucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKSxcbiAgXSkucGlwZShtYXAoKFtsaW5rcywgaW5kZXhdKSA9PiBsaW5rc1tpbmRleF0pKVxuXG4gIGN1cnJlbnRMYXllcnMkID0gdGhpcy5zZWxlY3RlZExpbmskLnBpcGUoXG4gICAgc3dpdGNoTWFwKChsaW5rKSA9PiB7XG4gICAgICBpZiAoIWxpbmspIHtcbiAgICAgICAgcmV0dXJuIG9mKFtdKVxuICAgICAgfVxuICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZVxuICAgICAgdGhpcy5lcnJvciA9IG51bGxcbiAgICAgIHJldHVybiB0aGlzLmdldExheWVyRnJvbUxpbmsobGluaykucGlwZShcbiAgICAgICAgbWFwKChsYXllcikgPT4gW2xheWVyXSksXG4gICAgICAgIGNhdGNoRXJyb3IoKGUpID0+IHtcbiAgICAgICAgICB0aGlzLmVycm9yID0gZS5tZXNzYWdlXG4gICAgICAgICAgY29uc29sZS53YXJuKGUuc3RhY2sgfHwgZS5tZXNzYWdlKVxuICAgICAgICAgIHJldHVybiBvZihbXSlcbiAgICAgICAgfSksXG4gICAgICAgIGZpbmFsaXplKCgpID0+ICh0aGlzLmxvYWRpbmcgPSBmYWxzZSkpXG4gICAgICApXG4gICAgfSlcbiAgKVxuXG4gIG1hcENvbnRleHQkID0gdGhpcy5jdXJyZW50TGF5ZXJzJC5waXBlKFxuICAgIHN3aXRjaE1hcCgobGF5ZXJzKSA9PlxuICAgICAgZnJvbSh0aGlzLm1hcFV0aWxzLmdldExheWVyRXh0ZW50KGxheWVyc1swXSkpLnBpcGUoXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiB7XG4gICAgICAgICAgY29uc29sZS53YXJuKGVycm9yKSAvLyBGSVhNRTogcmVwb3J0IHRoaXMgdG8gdGhlIHVzZXIgc29tZWhvd1xuICAgICAgICAgIHJldHVybiBvZih1bmRlZmluZWQpXG4gICAgICAgIH0pLFxuICAgICAgICBtYXAoXG4gICAgICAgICAgKGV4dGVudCkgPT5cbiAgICAgICAgICAgICh7XG4gICAgICAgICAgICAgIGxheWVycyxcbiAgICAgICAgICAgICAgdmlldzoge1xuICAgICAgICAgICAgICAgIGV4dGVudCxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0gYXMgTWFwQ29udGV4dE1vZGVsKVxuICAgICAgICApLFxuICAgICAgICB0YXAoKCkgPT4gdGhpcy5yZXNldFNlbGVjdGlvbigpKVxuICAgICAgKVxuICAgICksXG4gICAgd2l0aExhdGVzdEZyb20odGhpcy5tZFZpZXdGYWNhZGUubWV0YWRhdGEkKSxcbiAgICBtYXAoKFtjb250ZXh0LCBtZXRhZGF0YV0pID0+IHtcbiAgICAgIGlmIChjb250ZXh0LnZpZXcuZXh0ZW50KSByZXR1cm4gY29udGV4dFxuICAgICAgY29uc3QgZXh0ZW50ID0gdGhpcy5tYXBVdGlscy5nZXRSZWNvcmRFeHRlbnQobWV0YWRhdGEpXG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5jb250ZXh0LFxuICAgICAgICB2aWV3OiB7XG4gICAgICAgICAgLi4uY29udGV4dC52aWV3LFxuICAgICAgICAgIGV4dGVudCxcbiAgICAgICAgfSxcbiAgICAgIH1cbiAgICB9KVxuICApXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBtZFZpZXdGYWNhZGU6IE1kVmlld0ZhY2FkZSxcbiAgICBwcml2YXRlIG1hcE1hbmFnZXI6IE1hcE1hbmFnZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgbWFwVXRpbHM6IE1hcFV0aWxzU2VydmljZSxcbiAgICBwcml2YXRlIGRhdGFTZXJ2aWNlOiBEYXRhU2VydmljZSxcbiAgICBwcml2YXRlIGZlYXR1cmVJbmZvOiBGZWF0dXJlSW5mb1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBjaGFuZ2VSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgc3R5bGVTZXJ2aWNlOiBNYXBTdHlsZVNlcnZpY2VcbiAgKSB7fVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKClcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMubWFwVXRpbHMucHJpb3JpdGl6ZVBhZ2VTY3JvbGwodGhpcy5tYXBNYW5hZ2VyLm1hcC5nZXRJbnRlcmFjdGlvbnMoKSlcbiAgICB0aGlzLnNlbGVjdGlvblN0eWxlID0gdGhpcy5zdHlsZVNlcnZpY2Uuc3R5bGVzLmRlZmF1bHRITFxuICAgIHRoaXMuZmVhdHVyZUluZm8uaGFuZGxlRmVhdHVyZUluZm8oKVxuICAgIHRoaXMuc3Vic2NyaXB0aW9uLmFkZChcbiAgICAgIHRoaXMuZmVhdHVyZUluZm8uZmVhdHVyZXMkLnN1YnNjcmliZSgoZmVhdHVyZXMpID0+IHtcbiAgICAgICAgdGhpcy5vbk1hcEZlYXR1cmVTZWxlY3QoZmVhdHVyZXMpXG4gICAgICB9KVxuICAgIClcbiAgfVxuXG4gIG9uTWFwRmVhdHVyZVNlbGVjdChmZWF0dXJlczogRmVhdHVyZTxHZW9tZXRyeT5bXSk6IHZvaWQge1xuICAgIHRoaXMucmVzZXRTZWxlY3Rpb24oKVxuICAgIHRoaXMuc2VsZWN0aW9uID0gZmVhdHVyZXM/Lmxlbmd0aCA+IDAgJiYgZmVhdHVyZXNbMF1cbiAgICBpZiAodGhpcy5zZWxlY3Rpb24pIHtcbiAgICAgIHRoaXMuc2VsZWN0aW9uLnNldFN0eWxlKHRoaXMuc2VsZWN0aW9uU3R5bGUpXG4gICAgfVxuICAgIHRoaXMuY2hhbmdlUmVmLmRldGVjdENoYW5nZXMoKVxuICB9XG5cbiAgcmVzZXRTZWxlY3Rpb24oKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc2VsZWN0aW9uKSB7XG4gICAgICB0aGlzLnNlbGVjdGlvbi5zZXRTdHlsZShudWxsKVxuICAgIH1cbiAgICB0aGlzLnNlbGVjdGlvbiA9IG51bGxcbiAgfVxuXG4gIGdldExheWVyRnJvbUxpbmsoXG4gICAgbGluazogRGF0YXNldERpc3RyaWJ1dGlvblxuICApOiBPYnNlcnZhYmxlPE1hcENvbnRleHRMYXllck1vZGVsPiB7XG4gICAgaWYgKGxpbmsudHlwZSA9PT0gJ3NlcnZpY2UnICYmIGxpbmsuYWNjZXNzU2VydmljZVByb3RvY29sID09PSAnd21zJykge1xuICAgICAgcmV0dXJuIG9mKHtcbiAgICAgICAgdXJsOiBsaW5rLnVybC50b1N0cmluZygpLFxuICAgICAgICB0eXBlOiBNYXBDb250ZXh0TGF5ZXJUeXBlRW51bS5XTVMsXG4gICAgICAgIG5hbWU6IGxpbmsubmFtZSxcbiAgICAgIH0pXG4gICAgfSBlbHNlIGlmIChcbiAgICAgIGxpbmsudHlwZSA9PT0gJ3NlcnZpY2UnICYmXG4gICAgICBsaW5rLmFjY2Vzc1NlcnZpY2VQcm90b2NvbCA9PT0gJ3dtdHMnXG4gICAgKSB7XG4gICAgICByZXR1cm4gdGhpcy5tYXBVdGlscy5nZXRXbXRzTGF5ZXJGcm9tQ2FwYWJpbGl0aWVzKGxpbmspXG4gICAgfSBlbHNlIGlmIChcbiAgICAgIChsaW5rLnR5cGUgPT09ICdzZXJ2aWNlJyAmJlxuICAgICAgICAobGluay5hY2Nlc3NTZXJ2aWNlUHJvdG9jb2wgPT09ICd3ZnMnIHx8XG4gICAgICAgICAgbGluay5hY2Nlc3NTZXJ2aWNlUHJvdG9jb2wgPT09ICdlc3JpUmVzdCcpKSB8fFxuICAgICAgbGluay50eXBlID09PSAnZG93bmxvYWQnXG4gICAgKSB7XG4gICAgICByZXR1cm4gdGhpcy5kYXRhU2VydmljZS5yZWFkQXNHZW9Kc29uKGxpbmspLnBpcGUoXG4gICAgICAgIG1hcCgoZGF0YSkgPT4gKHtcbiAgICAgICAgICB0eXBlOiBNYXBDb250ZXh0TGF5ZXJUeXBlRW51bS5HRU9KU09OLFxuICAgICAgICAgIGRhdGEsXG4gICAgICAgIH0pKVxuICAgICAgKVxuICAgIH1cbiAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiAncHJvdG9jb2wgbm90IHN1cHBvcnRlZCcpXG4gIH1cblxuICBzZWxlY3RMaW5rVG9EaXNwbGF5KGxpbms6IG51bWJlcikge1xuICAgIHRoaXMuc2VsZWN0ZWRMaW5rSW5kZXgkLm5leHQobGluaylcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInctZnVsbCBoLWZ1bGwgZmxleCBmbGV4LWNvbCBwLTFcIj5cbiAgPGRpdiBjbGFzcz1cInctZnVsbCBmbGV4IGp1c3RpZnktZW5kIG1iLTcgbXQtMVwiPlxuICAgIDxnbi11aS1kcm9wZG93bi1zZWxlY3RvclxuICAgICAgY2xhc3M9XCJ0cnVuY2F0ZSBwLTEgLW14LTFcIlxuICAgICAgZXh0cmFCdG5DbGFzcz1cIiF0ZXh0LXByaW1hcnkgZm9udC1zYW5zIGZvbnQtbWVkaXVtXCJcbiAgICAgIFt0aXRsZV09XCInbWFwLnNlbGVjdC5sYXllcicgfCB0cmFuc2xhdGVcIlxuICAgICAgW2Nob2ljZXNdPVwiZHJvcGRvd25DaG9pY2VzJCB8IGFzeW5jXCJcbiAgICAgIChzZWxlY3RWYWx1ZSk9XCJzZWxlY3RMaW5rVG9EaXNwbGF5KCRldmVudClcIlxuICAgID48L2duLXVpLWRyb3Bkb3duLXNlbGVjdG9yPlxuICAgIDxnbi11aS1leHRlcm5hbC12aWV3ZXItYnV0dG9uXG4gICAgICBjbGFzcz1cInNocmluay0wIHB5LTEgcGxhY2Utc2VsZi1lbmRcIlxuICAgICAgW2xpbmtdPVwic2VsZWN0ZWRMaW5rJCB8IGFzeW5jXCJcbiAgICAgIFttYXBDb25maWddPVwibWFwQ29uZmlnXCJcbiAgICA+XG4gICAgPC9nbi11aS1leHRlcm5hbC12aWV3ZXItYnV0dG9uPlxuICA8L2Rpdj5cbiAgPGRpdlxuICAgIGNsYXNzPVwicmVsYXRpdmUgdy1mdWxsIGgtZnVsbCBiZy13aGl0ZSBib3JkZXIgYm9yZGVyLWdyYXktMzAwIHJvdW5kZWQtbGcgb3ZlcmZsb3ctaGlkZGVuXCJcbiAgPlxuICAgIDxnbi11aS1tYXAtY29udGV4dFxuICAgICAgW2NvbnRleHRdPVwibWFwQ29udGV4dCQgfCBhc3luY1wiXG4gICAgICBbbWFwQ29uZmlnXT1cIm1hcENvbmZpZ1wiXG4gICAgPjwvZ24tdWktbWFwLWNvbnRleHQ+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJ0b3AtWzFlbV0gcmlnaHQtWzFlbV0gcC0zIGJnLXdoaXRlIGFic29sdXRlIG92ZXJmbG93LXktYXV0byBvdmVyZmxvdy14LWhpZGRlbiBtYXgtaC03MiB3LTU2XCJcbiAgICAgIFtjbGFzcy5oaWRkZW5dPVwiIXNlbGVjdGlvblwiXG4gICAgPlxuICAgICAgPGJ1dHRvblxuICAgICAgICAoY2xpY2spPVwicmVzZXRTZWxlY3Rpb24oKVwiXG4gICAgICAgIGNsYXNzPVwicm91bmRlZCBiZy1wcmltYXJ5LW9wYWNpdHktMjUgdGV4dC13aGl0ZSBhYnNvbHV0ZSByaWdodC1bMC41ZW1dXCJcbiAgICAgID5cbiAgICAgICAgPG1hdC1pY29uXG4gICAgICAgICAgY2xhc3M9XCJtYXRlcmlhbC1zeW1ib2xzLW91dGxpbmVkIGFsaWduLW1pZGRsZSB0ZXh0LXNtXCJcbiAgICAgICAgICBzdHlsZT1cImhlaWdodDogMjFweFwiXG4gICAgICAgICAgPmNsb3NlPC9tYXQtaWNvblxuICAgICAgICA+XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxnbi11aS1mZWF0dXJlLWRldGFpbCBbZmVhdHVyZV09XCJzZWxlY3Rpb25cIj48L2duLXVpLWZlYXR1cmUtZGV0YWlsPlxuICAgIDwvZGl2PlxuICAgIDxnbi11aS1sb2FkaW5nLW1hc2tcbiAgICAgICpuZ0lmPVwibG9hZGluZ1wiXG4gICAgICBjbGFzcz1cImFic29sdXRlIGluc2V0LTBcIlxuICAgICAgW21lc3NhZ2VdPVwiJ21hcC5sb2FkaW5nLmRhdGEnIHwgdHJhbnNsYXRlXCJcbiAgICA+PC9nbi11aS1sb2FkaW5nLW1hc2s+XG4gICAgPGduLXVpLXBvcHVwLWFsZXJ0XG4gICAgICAqbmdJZj1cImVycm9yXCJcbiAgICAgIHR5cGU9XCJ3YXJuaW5nXCJcbiAgICAgIGljb249XCJlcnJvcl9vdXRsaW5lXCJcbiAgICAgIGNsYXNzPVwiYWJzb2x1dGUgbS0yIGluc2V0LTBcIlxuICAgID5cbiAgICAgIDxzcGFuIHRyYW5zbGF0ZT57eyBlcnJvciB9fTwvc3Bhbj5cbiAgICA8L2duLXVpLXBvcHVwLWFsZXJ0PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
145
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwLXZpZXcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9mZWF0dXJlL3JlY29yZC9zcmMvbGliL21hcC12aWV3L21hcC12aWV3LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZmVhdHVyZS9yZWNvcmQvc3JjL2xpYi9tYXAtdmlldy9tYXAtdmlldy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEdBR1YsTUFBTSxlQUFlLENBQUE7QUFDdEIsT0FBTyxFQUNMLGtCQUFrQixFQUVsQix1QkFBdUIsRUFFdkIsaUJBQWlCLEVBQ2pCLGVBQWUsRUFDZixlQUFlLEdBQ2hCLE1BQU0sd0NBQXdDLENBQUE7QUFDL0MsT0FBTyxFQUFFLG9CQUFvQixFQUFhLE1BQU0sNENBQTRDLENBQUE7QUFDNUYsT0FBTyxFQUFFLFlBQVksRUFBZ0IsTUFBTSx3Q0FBd0MsQ0FBQTtBQUluRixPQUFPLEVBQ0wsZUFBZSxFQUNmLGFBQWEsRUFDYixJQUFJLEVBR0osRUFBRSxFQUVGLFlBQVksRUFDWixVQUFVLEVBQ1YsY0FBYyxHQUNmLE1BQU0sTUFBTSxDQUFBO0FBQ2IsT0FBTyxFQUNMLFVBQVUsRUFDVixvQkFBb0IsRUFDcEIsUUFBUSxFQUNSLEdBQUcsRUFDSCxTQUFTLEVBQ1QsR0FBRyxHQUNKLE1BQU0sZ0JBQWdCLENBQUE7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHdCQUF3QixDQUFBO0FBQ3JELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQTs7Ozs7Ozs7Ozs7Ozs7QUFTeEUsTUFBTSxPQUFPLGdCQUFnQjtJQXFGM0IsWUFDVSxZQUEwQixFQUMxQixVQUE2QixFQUM3QixRQUF5QixFQUN6QixXQUF3QixFQUN4QixXQUErQixF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RDdCLGt5REFzREE7OzJGREhhLGdCQUFnQjtrQkFONUIsU0FBUzsrQkFDRSxnQkFBZ0IsbUJBR1QsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7XG4gIEZlYXR1cmVJbmZvU2VydmljZSxcbiAgTWFwQ29udGV4dExheWVyTW9kZWwsXG4gIE1hcENvbnRleHRMYXllclR5cGVFbnVtLFxuICBNYXBDb250ZXh0TW9kZWwsXG4gIE1hcE1hbmFnZXJTZXJ2aWNlLFxuICBNYXBTdHlsZVNlcnZpY2UsXG4gIE1hcFV0aWxzU2VydmljZSxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9mZWF0dXJlL21hcC9zcmMnXG5pbXBvcnQgeyBnZXRPcHRpb25hbE1hcENvbmZpZywgTWFwQ29uZmlnIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91dGlsL2FwcC1jb25maWcvc3JjJ1xuaW1wb3J0IHsgZ2V0TGlua0xhYmVsLCBQcm94eVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3V0aWwvc2hhcmVkL3NyYydcbmltcG9ydCBGZWF0dXJlIGZyb20gJ29sL0ZlYXR1cmUnXG5pbXBvcnQgeyBHZW9tZXRyeSB9IGZyb20gJ29sL2dlb20nXG5pbXBvcnQgeyBTdHlsZUxpa2UgfSBmcm9tICdvbC9zdHlsZS9TdHlsZSdcbmltcG9ydCB7XG4gIEJlaGF2aW9yU3ViamVjdCxcbiAgY29tYmluZUxhdGVzdCxcbiAgZnJvbSxcbiAgbGFzdFZhbHVlRnJvbSxcbiAgT2JzZXJ2YWJsZSxcbiAgb2YsXG4gIHN0YXJ0V2l0aCxcbiAgU3Vic2NyaXB0aW9uLFxuICB0aHJvd0Vycm9yLFxuICB3aXRoTGF0ZXN0RnJvbSxcbn0gZnJvbSAncnhqcydcbmltcG9ydCB7XG4gIGNhdGNoRXJyb3IsXG4gIGRpc3RpbmN0VW50aWxDaGFuZ2VkLFxuICBmaW5hbGl6ZSxcbiAgbWFwLFxuICBzd2l0Y2hNYXAsXG4gIHRhcCxcbn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnXG5pbXBvcnQgeyBNZFZpZXdGYWNhZGUgfSBmcm9tICcuLi9zdGF0ZS9tZHZpZXcuZmFjYWRlJ1xuaW1wb3J0IHsgRGF0YVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ZlYXR1cmUvZGF0YXZpei9zcmMnXG5pbXBvcnQgeyBEYXRhc2V0RGlzdHJpYnV0aW9uIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vZG9tYWluL3NyYy9saWIvbW9kZWwvcmVjb3JkJ1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdnbi11aS1tYXAtdmlldycsXG4gIHRlbXBsYXRlVXJsOiAnLi9tYXAtdmlldy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL21hcC12aWV3LmNvbXBvbmVudC5jc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIE1hcFZpZXdDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIG1hcENvbmZpZzogTWFwQ29uZmlnID0gZ2V0T3B0aW9uYWxNYXBDb25maWcoKVxuICBzZWxlY3Rpb246IEZlYXR1cmU8R2VvbWV0cnk+XG4gIHByaXZhdGUgc3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpXG4gIHByaXZhdGUgc2VsZWN0aW9uU3R5bGU6IFN0eWxlTGlrZVxuXG4gIGNvbXBhdGlibGVNYXBMaW5rcyQgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICB0aGlzLm1kVmlld0ZhY2FkZS5tYXBBcGlMaW5rcyQsXG4gICAgdGhpcy5tZFZpZXdGYWNhZGUuZ2VvRGF0YUxpbmtzJCxcbiAgXSkucGlwZShcbiAgICBtYXAoKFttYXBBcGlMaW5rcywgZ2VvRGF0YUxpbmtzXSkgPT4gWy4uLm1hcEFwaUxpbmtzLCAuLi5nZW9EYXRhTGlua3NdKVxuICApXG5cbiAgZHJvcGRvd25DaG9pY2VzJCA9IHRoaXMuY29tcGF0aWJsZU1hcExpbmtzJC5waXBlKFxuICAgIG1hcCgobGlua3MpID0+XG4gICAgICBsaW5rcy5sZW5ndGhcbiAgICAgICAgPyBsaW5rcy5tYXAoKGxpbmssIGluZGV4KSA9PiAoe1xuICAgICAgICAgICAgbGFiZWw6IGdldExpbmtMYWJlbChsaW5rKSxcbiAgICAgICAgICAgIHZhbHVlOiBpbmRleCxcbiAgICAgICAgICB9KSlcbiAgICAgICAgOiBbeyBsYWJlbDogJ05vIHByZXZpZXcgbGF5ZXInLCB2YWx1ZTogMCB9XVxuICAgIClcbiAgKVxuICBzZWxlY3RlZExpbmtJbmRleCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KDApXG5cbiAgbG9hZGluZyA9IGZhbHNlXG4gIGVycm9yID0gbnVsbFxuXG4gIHNlbGVjdGVkTGluayQgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICB0aGlzLmNvbXBhdGlibGVNYXBMaW5rcyQsXG4gICAgdGhpcy5zZWxlY3RlZExpbmtJbmRleCQucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKSxcbiAgXSkucGlwZShtYXAoKFtsaW5rcywgaW5kZXhdKSA9PiBsaW5rc1tpbmRleF0pKVxuXG4gIGN1cnJlbnRMYXllcnMkID0gdGhpcy5zZWxlY3RlZExpbmskLnBpcGUoXG4gICAgc3dpdGNoTWFwKChsaW5rKSA9PiB7XG4gICAgICBpZiAoIWxpbmspIHtcbiAgICAgICAgcmV0dXJuIG9mKFtdKVxuICAgICAgfVxuICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZVxuICAgICAgdGhpcy5lcnJvciA9IG51bGxcbiAgICAgIHJldHVybiB0aGlzLmdldExheWVyRnJvbUxpbmsobGluaykucGlwZShcbiAgICAgICAgbWFwKChsYXllcikgPT4gW2xheWVyXSksXG4gICAgICAgIGNhdGNoRXJyb3IoKGUpID0+IHtcbiAgICAgICAgICB0aGlzLmVycm9yID0gZS5tZXNzYWdlXG4gICAgICAgICAgY29uc29sZS53YXJuKGUuc3RhY2sgfHwgZS5tZXNzYWdlKVxuICAgICAgICAgIHJldHVybiBvZihbXSlcbiAgICAgICAgfSksXG4gICAgICAgIGZpbmFsaXplKCgpID0+ICh0aGlzLmxvYWRpbmcgPSBmYWxzZSkpXG4gICAgICApXG4gICAgfSlcbiAgKVxuXG4gIG1hcENvbnRleHQkID0gdGhpcy5jdXJyZW50TGF5ZXJzJC5waXBlKFxuICAgIHN3aXRjaE1hcCgobGF5ZXJzKSA9PlxuICAgICAgZnJvbSh0aGlzLm1hcFV0aWxzLmdldExheWVyRXh0ZW50KGxheWVyc1swXSkpLnBpcGUoXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiB7XG4gICAgICAgICAgY29uc29sZS53YXJuKGVycm9yKSAvLyBGSVhNRTogcmVwb3J0IHRoaXMgdG8gdGhlIHVzZXIgc29tZWhvd1xuICAgICAgICAgIHJldHVybiBvZih1bmRlZmluZWQpXG4gICAgICAgIH0pLFxuICAgICAgICBtYXAoXG4gICAgICAgICAgKGV4dGVudCkgPT5cbiAgICAgICAgICAgICh7XG4gICAgICAgICAgICAgIGxheWVycyxcbiAgICAgICAgICAgICAgdmlldzoge1xuICAgICAgICAgICAgICAgIGV4dGVudCxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0gYXMgTWFwQ29udGV4dE1vZGVsKVxuICAgICAgICApLFxuICAgICAgICB0YXAoKCkgPT4gdGhpcy5yZXNldFNlbGVjdGlvbigpKVxuICAgICAgKVxuICAgICksXG4gICAgd2l0aExhdGVzdEZyb20odGhpcy5tZFZpZXdGYWNhZGUubWV0YWRhdGEkKSxcbiAgICBtYXAoKFtjb250ZXh0LCBtZXRhZGF0YV0pID0+IHtcbiAgICAgIGlmIChjb250ZXh0LnZpZXcuZXh0ZW50KSByZXR1cm4gY29udGV4dFxuICAgICAgY29uc3QgZXh0ZW50ID0gdGhpcy5tYXBVdGlscy5nZXRSZWNvcmRFeHRlbnQobWV0YWRhdGEpXG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5jb250ZXh0LFxuICAgICAgICB2aWV3OiB7XG4gICAgICAgICAgLi4uY29udGV4dC52aWV3LFxuICAgICAgICAgIGV4dGVudCxcbiAgICAgICAgfSxcbiAgICAgIH1cbiAgICB9KVxuICApXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBtZFZpZXdGYWNhZGU6IE1kVmlld0ZhY2FkZSxcbiAgICBwcml2YXRlIG1hcE1hbmFnZXI6IE1hcE1hbmFnZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgbWFwVXRpbHM6IE1hcFV0aWxzU2VydmljZSxcbiAgICBwcml2YXRlIGRhdGFTZXJ2aWNlOiBEYXRhU2VydmljZSxcbiAgICBwcml2YXRlIGZlYXR1cmVJbmZvOiBGZWF0dXJlSW5mb1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBjaGFuZ2VSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgc3R5bGVTZXJ2aWNlOiBNYXBTdHlsZVNlcnZpY2VcbiAgKSB7fVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKClcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMubWFwVXRpbHMucHJpb3JpdGl6ZVBhZ2VTY3JvbGwodGhpcy5tYXBNYW5hZ2VyLm1hcC5nZXRJbnRlcmFjdGlvbnMoKSlcbiAgICB0aGlzLnNlbGVjdGlvblN0eWxlID0gdGhpcy5zdHlsZVNlcnZpY2Uuc3R5bGVzLmRlZmF1bHRITFxuICAgIHRoaXMuZmVhdHVyZUluZm8uaGFuZGxlRmVhdHVyZUluZm8oKVxuICAgIHRoaXMuc3Vic2NyaXB0aW9uLmFkZChcbiAgICAgIHRoaXMuZmVhdHVyZUluZm8uZmVhdHVyZXMkLnN1YnNjcmliZSgoZmVhdHVyZXMpID0+IHtcbiAgICAgICAgdGhpcy5vbk1hcEZlYXR1cmVTZWxlY3QoZmVhdHVyZXMpXG4gICAgICB9KVxuICAgIClcbiAgfVxuXG4gIG9uTWFwRmVhdHVyZVNlbGVjdChmZWF0dXJlczogRmVhdHVyZTxHZW9tZXRyeT5bXSk6IHZvaWQge1xuICAgIHRoaXMucmVzZXRTZWxlY3Rpb24oKVxuICAgIHRoaXMuc2VsZWN0aW9uID0gZmVhdHVyZXM/Lmxlbmd0aCA+IDAgJiYgZmVhdHVyZXNbMF1cbiAgICBpZiAodGhpcy5zZWxlY3Rpb24pIHtcbiAgICAgIHRoaXMuc2VsZWN0aW9uLnNldFN0eWxlKHRoaXMuc2VsZWN0aW9uU3R5bGUpXG4gICAgfVxuICAgIHRoaXMuY2hhbmdlUmVmLmRldGVjdENoYW5nZXMoKVxuICB9XG5cbiAgcmVzZXRTZWxlY3Rpb24oKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc2VsZWN0aW9uKSB7XG4gICAgICB0aGlzLnNlbGVjdGlvbi5zZXRTdHlsZShudWxsKVxuICAgIH1cbiAgICB0aGlzLnNlbGVjdGlvbiA9IG51bGxcbiAgfVxuXG4gIGdldExheWVyRnJvbUxpbmsoXG4gICAgbGluazogRGF0YXNldERpc3RyaWJ1dGlvblxuICApOiBPYnNlcnZhYmxlPE1hcENvbnRleHRMYXllck1vZGVsPiB7XG4gICAgaWYgKGxpbmsudHlwZSA9PT0gJ3NlcnZpY2UnICYmIGxpbmsuYWNjZXNzU2VydmljZVByb3RvY29sID09PSAnd21zJykge1xuICAgICAgcmV0dXJuIG9mKHtcbiAgICAgICAgdXJsOiBsaW5rLnVybC50b1N0cmluZygpLFxuICAgICAgICB0eXBlOiBNYXBDb250ZXh0TGF5ZXJUeXBlRW51bS5XTVMsXG4gICAgICAgIG5hbWU6IGxpbmsubmFtZSxcbiAgICAgIH0pXG4gICAgfSBlbHNlIGlmIChcbiAgICAgIGxpbmsudHlwZSA9PT0gJ3NlcnZpY2UnICYmXG4gICAgICBsaW5rLmFjY2Vzc1NlcnZpY2VQcm90b2NvbCA9PT0gJ3dtdHMnXG4gICAgKSB7XG4gICAgICByZXR1cm4gb2Yoe1xuICAgICAgICB1cmw6IGxpbmsudXJsLnRvU3RyaW5nKCksXG4gICAgICAgIHR5cGU6IE1hcENvbnRleHRMYXllclR5cGVFbnVtLldNVFMsXG4gICAgICAgIG5hbWU6IGxpbmsubmFtZSxcbiAgICAgIH0pXG4gICAgfSBlbHNlIGlmIChcbiAgICAgIChsaW5rLnR5cGUgPT09ICdzZXJ2aWNlJyAmJlxuICAgICAgICAobGluay5hY2Nlc3NTZXJ2aWNlUHJvdG9jb2wgPT09ICd3ZnMnIHx8XG4gICAgICAgICAgbGluay5hY2Nlc3NTZXJ2aWNlUHJvdG9jb2wgPT09ICdlc3JpUmVzdCcpKSB8fFxuICAgICAgbGluay50eXBlID09PSAnZG93bmxvYWQnXG4gICAgKSB7XG4gICAgICByZXR1cm4gdGhpcy5kYXRhU2VydmljZS5yZWFkQXNHZW9Kc29uKGxpbmspLnBpcGUoXG4gICAgICAgIG1hcCgoZGF0YSkgPT4gKHtcbiAgICAgICAgICB0eXBlOiBNYXBDb250ZXh0TGF5ZXJUeXBlRW51bS5HRU9KU09OLFxuICAgICAgICAgIGRhdGEsXG4gICAgICAgIH0pKVxuICAgICAgKVxuICAgIH1cbiAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiAncHJvdG9jb2wgbm90IHN1cHBvcnRlZCcpXG4gIH1cblxuICBzZWxlY3RMaW5rVG9EaXNwbGF5KGxpbms6IG51bWJlcikge1xuICAgIHRoaXMuc2VsZWN0ZWRMaW5rSW5kZXgkLm5leHQobGluaylcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInctZnVsbCBoLWZ1bGwgZmxleCBmbGV4LWNvbCBwLTFcIj5cbiAgPGRpdiBjbGFzcz1cInctZnVsbCBmbGV4IGp1c3RpZnktZW5kIG1iLTcgbXQtMVwiPlxuICAgIDxnbi11aS1kcm9wZG93bi1zZWxlY3RvclxuICAgICAgY2xhc3M9XCJ0cnVuY2F0ZSBwLTEgLW14LTFcIlxuICAgICAgZXh0cmFCdG5DbGFzcz1cIiF0ZXh0LXByaW1hcnkgZm9udC1zYW5zIGZvbnQtbWVkaXVtXCJcbiAgICAgIFt0aXRsZV09XCInbWFwLnNlbGVjdC5sYXllcicgfCB0cmFuc2xhdGVcIlxuICAgICAgW2Nob2ljZXNdPVwiZHJvcGRvd25DaG9pY2VzJCB8IGFzeW5jXCJcbiAgICAgIChzZWxlY3RWYWx1ZSk9XCJzZWxlY3RMaW5rVG9EaXNwbGF5KCRldmVudClcIlxuICAgID48L2duLXVpLWRyb3Bkb3duLXNlbGVjdG9yPlxuICAgIDxnbi11aS1leHRlcm5hbC12aWV3ZXItYnV0dG9uXG4gICAgICBjbGFzcz1cInNocmluay0wIHB5LTEgcGxhY2Utc2VsZi1lbmRcIlxuICAgICAgW2xpbmtdPVwic2VsZWN0ZWRMaW5rJCB8IGFzeW5jXCJcbiAgICAgIFttYXBDb25maWddPVwibWFwQ29uZmlnXCJcbiAgICA+XG4gICAgPC9nbi11aS1leHRlcm5hbC12aWV3ZXItYnV0dG9uPlxuICA8L2Rpdj5cbiAgPGRpdlxuICAgIGNsYXNzPVwicmVsYXRpdmUgdy1mdWxsIGgtZnVsbCBiZy13aGl0ZSBib3JkZXIgYm9yZGVyLWdyYXktMzAwIHJvdW5kZWQtbGcgb3ZlcmZsb3ctaGlkZGVuXCJcbiAgPlxuICAgIDxnbi11aS1tYXAtY29udGV4dFxuICAgICAgW2NvbnRleHRdPVwibWFwQ29udGV4dCQgfCBhc3luY1wiXG4gICAgICBbbWFwQ29uZmlnXT1cIm1hcENvbmZpZ1wiXG4gICAgPjwvZ24tdWktbWFwLWNvbnRleHQ+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJ0b3AtWzFlbV0gcmlnaHQtWzFlbV0gcC0zIGJnLXdoaXRlIGFic29sdXRlIG92ZXJmbG93LXktYXV0byBvdmVyZmxvdy14LWhpZGRlbiBtYXgtaC03MiB3LTU2XCJcbiAgICAgIFtjbGFzcy5oaWRkZW5dPVwiIXNlbGVjdGlvblwiXG4gICAgPlxuICAgICAgPGJ1dHRvblxuICAgICAgICAoY2xpY2spPVwicmVzZXRTZWxlY3Rpb24oKVwiXG4gICAgICAgIGNsYXNzPVwicm91bmRlZCBiZy1wcmltYXJ5LW9wYWNpdHktMjUgdGV4dC13aGl0ZSBhYnNvbHV0ZSByaWdodC1bMC41ZW1dXCJcbiAgICAgID5cbiAgICAgICAgPG1hdC1pY29uXG4gICAgICAgICAgY2xhc3M9XCJtYXRlcmlhbC1zeW1ib2xzLW91dGxpbmVkIGFsaWduLW1pZGRsZSB0ZXh0LXNtXCJcbiAgICAgICAgICBzdHlsZT1cImhlaWdodDogMjFweFwiXG4gICAgICAgICAgPmNsb3NlPC9tYXQtaWNvblxuICAgICAgICA+XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxnbi11aS1mZWF0dXJlLWRldGFpbCBbZmVhdHVyZV09XCJzZWxlY3Rpb25cIj48L2duLXVpLWZlYXR1cmUtZGV0YWlsPlxuICAgIDwvZGl2PlxuICAgIDxnbi11aS1sb2FkaW5nLW1hc2tcbiAgICAgICpuZ0lmPVwibG9hZGluZ1wiXG4gICAgICBjbGFzcz1cImFic29sdXRlIGluc2V0LTBcIlxuICAgICAgW21lc3NhZ2VdPVwiJ21hcC5sb2FkaW5nLmRhdGEnIHwgdHJhbnNsYXRlXCJcbiAgICA+PC9nbi11aS1sb2FkaW5nLW1hc2s+XG4gICAgPGduLXVpLXBvcHVwLWFsZXJ0XG4gICAgICAqbmdJZj1cImVycm9yXCJcbiAgICAgIHR5cGU9XCJ3YXJuaW5nXCJcbiAgICAgIGljb249XCJlcnJvcl9vdXRsaW5lXCJcbiAgICAgIGNsYXNzPVwiYWJzb2x1dGUgbS0yIGluc2V0LTBcIlxuICAgID5cbiAgICAgIDxzcGFuIHRyYW5zbGF0ZT57eyBlcnJvciB9fTwvc3Bhbj5cbiAgICA8L2duLXVpLXBvcHVwLWFsZXJ0PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -1,9 +1,27 @@
1
1
  import { createAction, props } from '@ngrx/store';
2
+ /*
3
+ Metadata actions
4
+ */
2
5
  export const loadFullMetadata = createAction('[Metadata view] Load full metadata', props());
3
6
  export const setIncompleteMetadata = createAction('[Metadata view] Set incomplete metadata', props());
4
- export const loadFullSuccess = createAction('[Metadata view] Load full success', props());
5
- export const loadFullFailure = createAction('[Metadata view] Load full failure', props());
7
+ export const loadFullMetadataSuccess = createAction('[Metadata view] Load full metadata success', props());
8
+ export const loadFullMetadataFailure = createAction('[Metadata view] Load full metadata failure', props());
9
+ export const closeMetadata = createAction('[Metadata view] close');
10
+ /*
11
+ Related actions
12
+ */
6
13
  export const setRelated = createAction('[Metadata view] Set related records', props());
14
+ /*
15
+ ChartConfig actions
16
+ */
7
17
  export const setChartConfig = createAction('[Metadata view] Set chart config', props());
8
- export const close = createAction('[Metadata view] close');
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWR2aWV3LmFjdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ZlYXR1cmUvcmVjb3JkL3NyYy9saWIvc3RhdGUvbWR2aWV3LmFjdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUE7QUFHakQsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsWUFBWSxDQUMxQyxvQ0FBb0MsRUFDcEMsS0FBSyxFQUFvQixDQUMxQixDQUFBO0FBRUQsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsWUFBWSxDQUMvQyx5Q0FBeUMsRUFDekMsS0FBSyxFQUEwQyxDQUNoRCxDQUFBO0FBRUQsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLFlBQVksQ0FDekMsbUNBQW1DLEVBQ25DLEtBQUssRUFBMkIsQ0FDakMsQ0FBQTtBQUVELE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxZQUFZLENBQ3pDLG1DQUFtQyxFQUNuQyxLQUFLLEVBQStDLENBQ3JELENBQUE7QUFFRCxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsWUFBWSxDQUNwQyxxQ0FBcUMsRUFDckMsS0FBSyxFQUFnQyxDQUN0QyxDQUFBO0FBRUQsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLFlBQVksQ0FDeEMsa0NBQWtDLEVBQ2xDLEtBQUssRUFBOEMsQ0FDcEQsQ0FBQTtBQUVELE1BQU0sQ0FBQyxNQUFNLEtBQUssR0FBRyxZQUFZLENBQUMsdUJBQXVCLENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERhdGF2aXpDb25maWd1cmF0aW9uTW9kZWwgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9tb2RlbC9kYXRhdml6L2RhdGF2aXotY29uZmlndXJhdGlvbi5tb2RlbCdcbmltcG9ydCB7IGNyZWF0ZUFjdGlvbiwgcHJvcHMgfSBmcm9tICdAbmdyeC9zdG9yZSdcbmltcG9ydCB7IENhdGFsb2dSZWNvcmQgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9tb2RlbC9yZWNvcmQnXG5cbmV4cG9ydCBjb25zdCBsb2FkRnVsbE1ldGFkYXRhID0gY3JlYXRlQWN0aW9uKFxuICAnW01ldGFkYXRhIHZpZXddIExvYWQgZnVsbCBtZXRhZGF0YScsXG4gIHByb3BzPHsgdXVpZDogc3RyaW5nIH0+KClcbilcblxuZXhwb3J0IGNvbnN0IHNldEluY29tcGxldGVNZXRhZGF0YSA9IGNyZWF0ZUFjdGlvbihcbiAgJ1tNZXRhZGF0YSB2aWV3XSBTZXQgaW5jb21wbGV0ZSBtZXRhZGF0YScsXG4gIHByb3BzPHsgaW5jb21wbGV0ZTogUGFydGlhbDxDYXRhbG9nUmVjb3JkPiB9PigpXG4pXG5cbmV4cG9ydCBjb25zdCBsb2FkRnVsbFN1Y2Nlc3MgPSBjcmVhdGVBY3Rpb24oXG4gICdbTWV0YWRhdGEgdmlld10gTG9hZCBmdWxsIHN1Y2Nlc3MnLFxuICBwcm9wczx7IGZ1bGw6IENhdGFsb2dSZWNvcmQgfT4oKVxuKVxuXG5leHBvcnQgY29uc3QgbG9hZEZ1bGxGYWlsdXJlID0gY3JlYXRlQWN0aW9uKFxuICAnW01ldGFkYXRhIHZpZXddIExvYWQgZnVsbCBmYWlsdXJlJyxcbiAgcHJvcHM8eyBvdGhlckVycm9yPzogc3RyaW5nOyBub3RGb3VuZD86IGJvb2xlYW4gfT4oKVxuKVxuXG5leHBvcnQgY29uc3Qgc2V0UmVsYXRlZCA9IGNyZWF0ZUFjdGlvbihcbiAgJ1tNZXRhZGF0YSB2aWV3XSBTZXQgcmVsYXRlZCByZWNvcmRzJyxcbiAgcHJvcHM8eyByZWxhdGVkOiBDYXRhbG9nUmVjb3JkW10gfT4oKVxuKVxuXG5leHBvcnQgY29uc3Qgc2V0Q2hhcnRDb25maWcgPSBjcmVhdGVBY3Rpb24oXG4gICdbTWV0YWRhdGEgdmlld10gU2V0IGNoYXJ0IGNvbmZpZycsXG4gIHByb3BzPHsgY2hhcnRDb25maWc6IERhdGF2aXpDb25maWd1cmF0aW9uTW9kZWwgfT4oKVxuKVxuXG5leHBvcnQgY29uc3QgY2xvc2UgPSBjcmVhdGVBY3Rpb24oJ1tNZXRhZGF0YSB2aWV3XSBjbG9zZScpXG4iXX0=
18
+ /*
19
+ User Feedbacks actions
20
+ */
21
+ export const addUserFeedback = createAction('[Metadata view] Add UserFeedback', props());
22
+ export const addUserFeedbackSuccess = createAction('[Metadata view] Add UserFeedback Success', props());
23
+ export const addUserFeedbackFailure = createAction('[Metadata view] Add UserFeedback Failure', props());
24
+ export const loadUserFeedbacks = createAction('[Metadata view] Load UserFeedbacks', props());
25
+ export const loadUserFeedbacksSuccess = createAction('[Metadata view] Load UserFeedbacks Success', props());
26
+ export const loadUserFeedbacksFailure = createAction('[Metadata view] Load UserFeedbacks Failure', props());
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWR2aWV3LmFjdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ZlYXR1cmUvcmVjb3JkL3NyYy9saWIvc3RhdGUvbWR2aWV3LmFjdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUE7QUFNakQ7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxZQUFZLENBQzFDLG9DQUFvQyxFQUNwQyxLQUFLLEVBQW9CLENBQzFCLENBQUE7QUFFRCxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxZQUFZLENBQy9DLHlDQUF5QyxFQUN6QyxLQUFLLEVBQTBDLENBQ2hELENBQUE7QUFFRCxNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxZQUFZLENBQ2pELDRDQUE0QyxFQUM1QyxLQUFLLEVBQTJCLENBQ2pDLENBQUE7QUFFRCxNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxZQUFZLENBQ2pELDRDQUE0QyxFQUM1QyxLQUFLLEVBQStDLENBQ3JELENBQUE7QUFFRCxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsWUFBWSxDQUFDLHVCQUF1QixDQUFDLENBQUE7QUFFbEU7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsWUFBWSxDQUNwQyxxQ0FBcUMsRUFDckMsS0FBSyxFQUFnQyxDQUN0QyxDQUFBO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsWUFBWSxDQUN4QyxrQ0FBa0MsRUFDbEMsS0FBSyxFQUE4QyxDQUNwRCxDQUFBO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsWUFBWSxDQUN6QyxrQ0FBa0MsRUFDbEMsS0FBSyxFQUFrQyxDQUN4QyxDQUFBO0FBRUQsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsWUFBWSxDQUNoRCwwQ0FBMEMsRUFDMUMsS0FBSyxFQUEyQixDQUNqQyxDQUFBO0FBRUQsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsWUFBWSxDQUNoRCwwQ0FBMEMsRUFDMUMsS0FBSyxFQUErQyxDQUNyRCxDQUFBO0FBRUQsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsWUFBWSxDQUMzQyxvQ0FBb0MsRUFDcEMsS0FBSyxFQUEyQixDQUNqQyxDQUFBO0FBRUQsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsWUFBWSxDQUNsRCw0Q0FBNEMsRUFDNUMsS0FBSyxFQUFxQyxDQUMzQyxDQUFBO0FBRUQsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsWUFBWSxDQUNsRCw0Q0FBNEMsRUFDNUMsS0FBSyxFQUErQyxDQUNyRCxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGF0YXZpekNvbmZpZ3VyYXRpb25Nb2RlbCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL2RvbWFpbi9zcmMvbGliL21vZGVsL2RhdGF2aXovZGF0YXZpei1jb25maWd1cmF0aW9uLm1vZGVsJ1xuaW1wb3J0IHsgY3JlYXRlQWN0aW9uLCBwcm9wcyB9IGZyb20gJ0BuZ3J4L3N0b3JlJ1xuaW1wb3J0IHtcbiAgQ2F0YWxvZ1JlY29yZCxcbiAgVXNlckZlZWRiYWNrLFxufSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9tb2RlbC9yZWNvcmQnXG5cbi8qXG4gIE1ldGFkYXRhIGFjdGlvbnNcbiAqL1xuZXhwb3J0IGNvbnN0IGxvYWRGdWxsTWV0YWRhdGEgPSBjcmVhdGVBY3Rpb24oXG4gICdbTWV0YWRhdGEgdmlld10gTG9hZCBmdWxsIG1ldGFkYXRhJyxcbiAgcHJvcHM8eyB1dWlkOiBzdHJpbmcgfT4oKVxuKVxuXG5leHBvcnQgY29uc3Qgc2V0SW5jb21wbGV0ZU1ldGFkYXRhID0gY3JlYXRlQWN0aW9uKFxuICAnW01ldGFkYXRhIHZpZXddIFNldCBpbmNvbXBsZXRlIG1ldGFkYXRhJyxcbiAgcHJvcHM8eyBpbmNvbXBsZXRlOiBQYXJ0aWFsPENhdGFsb2dSZWNvcmQ+IH0+KClcbilcblxuZXhwb3J0IGNvbnN0IGxvYWRGdWxsTWV0YWRhdGFTdWNjZXNzID0gY3JlYXRlQWN0aW9uKFxuICAnW01ldGFkYXRhIHZpZXddIExvYWQgZnVsbCBtZXRhZGF0YSBzdWNjZXNzJyxcbiAgcHJvcHM8eyBmdWxsOiBDYXRhbG9nUmVjb3JkIH0+KClcbilcblxuZXhwb3J0IGNvbnN0IGxvYWRGdWxsTWV0YWRhdGFGYWlsdXJlID0gY3JlYXRlQWN0aW9uKFxuICAnW01ldGFkYXRhIHZpZXddIExvYWQgZnVsbCBtZXRhZGF0YSBmYWlsdXJlJyxcbiAgcHJvcHM8eyBvdGhlckVycm9yPzogc3RyaW5nOyBub3RGb3VuZD86IGJvb2xlYW4gfT4oKVxuKVxuXG5leHBvcnQgY29uc3QgY2xvc2VNZXRhZGF0YSA9IGNyZWF0ZUFjdGlvbignW01ldGFkYXRhIHZpZXddIGNsb3NlJylcblxuLypcbiAgUmVsYXRlZCBhY3Rpb25zXG4gKi9cbmV4cG9ydCBjb25zdCBzZXRSZWxhdGVkID0gY3JlYXRlQWN0aW9uKFxuICAnW01ldGFkYXRhIHZpZXddIFNldCByZWxhdGVkIHJlY29yZHMnLFxuICBwcm9wczx7IHJlbGF0ZWQ6IENhdGFsb2dSZWNvcmRbXSB9PigpXG4pXG5cbi8qXG4gIENoYXJ0Q29uZmlnIGFjdGlvbnNcbiAqL1xuZXhwb3J0IGNvbnN0IHNldENoYXJ0Q29uZmlnID0gY3JlYXRlQWN0aW9uKFxuICAnW01ldGFkYXRhIHZpZXddIFNldCBjaGFydCBjb25maWcnLFxuICBwcm9wczx7IGNoYXJ0Q29uZmlnOiBEYXRhdml6Q29uZmlndXJhdGlvbk1vZGVsIH0+KClcbilcblxuLypcbiAgVXNlciBGZWVkYmFja3MgYWN0aW9uc1xuICovXG5leHBvcnQgY29uc3QgYWRkVXNlckZlZWRiYWNrID0gY3JlYXRlQWN0aW9uKFxuICAnW01ldGFkYXRhIHZpZXddIEFkZCBVc2VyRmVlZGJhY2snLFxuICBwcm9wczx7IHVzZXJGZWVkYmFjazogVXNlckZlZWRiYWNrIH0+KClcbilcblxuZXhwb3J0IGNvbnN0IGFkZFVzZXJGZWVkYmFja1N1Y2Nlc3MgPSBjcmVhdGVBY3Rpb24oXG4gICdbTWV0YWRhdGEgdmlld10gQWRkIFVzZXJGZWVkYmFjayBTdWNjZXNzJyxcbiAgcHJvcHM8eyBkYXRhc2V0VXVpZDogc3RyaW5nIH0+KClcbilcblxuZXhwb3J0IGNvbnN0IGFkZFVzZXJGZWVkYmFja0ZhaWx1cmUgPSBjcmVhdGVBY3Rpb24oXG4gICdbTWV0YWRhdGEgdmlld10gQWRkIFVzZXJGZWVkYmFjayBGYWlsdXJlJyxcbiAgcHJvcHM8eyBvdGhlckVycm9yPzogc3RyaW5nOyBub3RGb3VuZD86IGJvb2xlYW4gfT4oKVxuKVxuXG5leHBvcnQgY29uc3QgbG9hZFVzZXJGZWVkYmFja3MgPSBjcmVhdGVBY3Rpb24oXG4gICdbTWV0YWRhdGEgdmlld10gTG9hZCBVc2VyRmVlZGJhY2tzJyxcbiAgcHJvcHM8eyBkYXRhc2V0VXVpZDogc3RyaW5nIH0+KClcbilcblxuZXhwb3J0IGNvbnN0IGxvYWRVc2VyRmVlZGJhY2tzU3VjY2VzcyA9IGNyZWF0ZUFjdGlvbihcbiAgJ1tNZXRhZGF0YSB2aWV3XSBMb2FkIFVzZXJGZWVkYmFja3MgU3VjY2VzcycsXG4gIHByb3BzPHsgdXNlckZlZWRiYWNrczogVXNlckZlZWRiYWNrW10gfT4oKVxuKVxuXG5leHBvcnQgY29uc3QgbG9hZFVzZXJGZWVkYmFja3NGYWlsdXJlID0gY3JlYXRlQWN0aW9uKFxuICAnW01ldGFkYXRhIHZpZXddIExvYWQgVXNlckZlZWRiYWNrcyBGYWlsdXJlJyxcbiAgcHJvcHM8eyBvdGhlckVycm9yPzogc3RyaW5nOyBub3RGb3VuZD86IGJvb2xlYW4gfT4oKVxuKVxuIl19