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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (379) hide show
  1. package/esm2022/libs/api/metadata-converter/src/lib/gn4/atomic-operations.mjs +27 -1
  2. package/esm2022/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.mjs +64 -61
  3. package/esm2022/libs/api/metadata-converter/src/lib/gn4/gn4.metadata.mapper.mjs +7 -4
  4. package/esm2022/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.mjs +1 -1
  5. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/codelists/keyword.mapper.mjs +14 -0
  6. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/converter.mjs +25 -17
  7. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/read-parts.mjs +55 -23
  8. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/write-parts.mjs +52 -32
  9. package/esm2022/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.mjs +2 -2
  10. package/esm2022/libs/api/repository/src/lib/gn4/organizations/organizations-from-metadata.service.mjs +10 -3
  11. package/esm2022/libs/api/repository/src/lib/gn4/platform/gn4-platform.mapper.mjs +14 -5
  12. package/esm2022/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.mjs +33 -8
  13. package/esm2022/libs/api/repository/src/lib/gn4/selection/selection.service.mjs +13 -26
  14. package/esm2022/libs/common/domain/src/lib/model/record/metadata.model.mjs +1 -1
  15. package/esm2022/libs/common/domain/src/lib/model/search/aggregation.model.mjs +1 -1
  16. package/esm2022/libs/common/domain/src/lib/model/search/field.model.mjs +2 -0
  17. package/esm2022/libs/common/domain/src/lib/model/search/filter.model.mjs +1 -1
  18. package/esm2022/libs/common/domain/src/lib/model/search/index.mjs +2 -1
  19. package/esm2022/libs/common/domain/src/lib/model/search/search.model.mjs +1 -1
  20. package/esm2022/libs/common/domain/src/lib/model/thesaurus/thesaurus.model.mjs +1 -1
  21. package/esm2022/libs/common/domain/src/lib/platform.service.interface.mjs +1 -1
  22. package/esm2022/libs/feature/catalog/src/lib/my-org/my-org.service.mjs +4 -10
  23. package/esm2022/libs/feature/editor/src/index.mjs +6 -1
  24. package/esm2022/libs/feature/editor/src/lib/+state/editor.actions.mjs +8 -0
  25. package/esm2022/libs/feature/editor/src/lib/+state/editor.effects.mjs +26 -0
  26. package/esm2022/libs/feature/editor/src/lib/+state/editor.facade.mjs +30 -0
  27. package/esm2022/libs/feature/editor/src/lib/+state/editor.models.mjs +2 -0
  28. package/esm2022/libs/feature/editor/src/lib/+state/editor.reducer.mjs +42 -0
  29. package/esm2022/libs/feature/editor/src/lib/+state/editor.selectors.mjs +13 -0
  30. package/esm2022/libs/feature/editor/src/lib/expressions.mjs +13 -0
  31. package/esm2022/libs/feature/editor/src/lib/feature-editor.module.mjs +16 -4
  32. package/esm2022/libs/feature/editor/src/lib/fields.config.mjs +34 -0
  33. package/esm2022/libs/feature/editor/src/lib/models/fields.model.mjs +2 -0
  34. package/esm2022/libs/feature/editor/src/lib/record-form/record-form.component.mjs +15 -11
  35. package/esm2022/libs/feature/editor/src/lib/services/editor.service.mjs +22 -44
  36. package/esm2022/libs/feature/map/src/lib/feature-map.module.mjs +10 -1
  37. package/esm2022/libs/feature/map/src/lib/geocoding/geocoding.component.mjs +32 -15
  38. package/esm2022/libs/feature/map/src/lib/geocoding.service.mjs +40 -0
  39. package/esm2022/libs/feature/map/src/lib/map-context/map-context.service.mjs +9 -1
  40. package/esm2022/libs/feature/record/src/lib/data-view-permalink/data-view-permalink.component.mjs +13 -13
  41. package/esm2022/libs/feature/record/src/lib/state/mdview.reducer.mjs +2 -2
  42. package/esm2022/libs/feature/router/src/lib/default/index.mjs +2 -1
  43. package/esm2022/libs/feature/router/src/lib/default/router.service.mjs +1 -1
  44. package/esm2022/libs/feature/search/src/index.mjs +4 -1
  45. package/esm2022/libs/feature/search/src/lib/favorites/favorite-star/favorite-star.component.mjs +3 -3
  46. package/esm2022/libs/feature/search/src/lib/feature-search.module.mjs +2 -6
  47. package/esm2022/libs/feature/search/src/lib/filter-dropdown/filter-dropdown.component.mjs +1 -1
  48. package/esm2022/libs/feature/search/src/lib/filter-geometry.token.mjs +4 -0
  49. package/esm2022/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.mjs +7 -3
  50. package/esm2022/libs/feature/search/src/lib/record-url.token.mjs +4 -0
  51. package/esm2022/libs/feature/search/src/lib/results-list/results-list.container.component.mjs +2 -2
  52. package/esm2022/libs/feature/search/src/lib/results-table/results-table.component.mjs +128 -0
  53. package/esm2022/libs/feature/search/src/lib/state/effects.mjs +6 -4
  54. package/esm2022/libs/feature/search/src/lib/state/search.facade.mjs +3 -2
  55. package/esm2022/libs/feature/search/src/lib/utils/service/fields.mjs +41 -26
  56. package/esm2022/libs/feature/search/src/lib/utils/service/fields.service.mjs +11 -9
  57. package/esm2022/libs/ui/catalog/src/lib/language-switcher/language-switcher.component.mjs +3 -3
  58. package/esm2022/libs/ui/elements/src/lib/image-overlay-preview/image-overlay-preview.component.mjs +3 -3
  59. package/esm2022/libs/ui/elements/src/lib/markdown-parser/markdown-parser.component.mjs +3 -3
  60. package/esm2022/libs/ui/elements/src/lib/max-lines/max-lines.component.mjs +5 -3
  61. package/esm2022/libs/ui/elements/src/lib/metadata-contact/metadata-contact.component.mjs +3 -3
  62. package/esm2022/libs/ui/elements/src/lib/metadata-info/metadata-info.component.mjs +47 -22
  63. package/esm2022/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.mjs +3 -4
  64. package/esm2022/libs/ui/elements/src/lib/record-api-form/record-api-form.component.mjs +9 -6
  65. package/esm2022/libs/ui/elements/src/lib/thumbnail/thumbnail.component.mjs +3 -3
  66. package/esm2022/libs/ui/elements/src/lib/ui-elements.module.mjs +4 -4
  67. package/esm2022/libs/ui/inputs/src/index.mjs +2 -1
  68. package/esm2022/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.mjs +3 -3
  69. package/esm2022/libs/ui/inputs/src/lib/button/button.component.mjs +9 -9
  70. package/esm2022/libs/ui/inputs/src/lib/checkbox/checkbox.component.mjs +3 -3
  71. package/esm2022/libs/ui/inputs/src/lib/dropdown-multiselect/dropdown-multiselect.component.mjs +3 -3
  72. package/esm2022/libs/ui/inputs/src/lib/dropdown-selector/dropdown-selector.component.mjs +3 -3
  73. package/esm2022/libs/ui/inputs/src/lib/editable-label/editable-label.directive.mjs +3 -2
  74. package/esm2022/libs/ui/inputs/src/lib/form-field/form-field.component.mjs +4 -2
  75. package/esm2022/libs/ui/inputs/src/lib/form-field/form-field.model.mjs +1 -1
  76. package/esm2022/libs/ui/inputs/src/lib/navigation-button/navigation-button.component.mjs +3 -3
  77. package/esm2022/libs/ui/inputs/src/lib/text-area/text-area.component.mjs +3 -3
  78. package/esm2022/libs/ui/inputs/src/lib/ui-inputs.module.mjs +9 -9
  79. package/esm2022/libs/ui/layout/src/index.mjs +3 -1
  80. package/esm2022/libs/ui/layout/src/lib/carousel/carousel.component.mjs +3 -3
  81. package/esm2022/libs/ui/layout/src/lib/interactive-table/interactive-table-column/interactive-table-column.component.mjs +36 -0
  82. package/esm2022/libs/ui/layout/src/lib/interactive-table/interactive-table.component.mjs +37 -0
  83. package/esm2022/libs/ui/search/src/index.mjs +1 -2
  84. package/esm2022/libs/ui/search/src/lib/ui-search.module.mjs +9 -10
  85. package/esm2022/libs/ui/widgets/src/lib/badge/badge.component.mjs +3 -3
  86. package/esm2022/libs/util/i18n/src/index.mjs +1 -2
  87. package/esm2022/libs/util/i18n/src/lib/i18n.constants.mjs +18 -1
  88. package/esm2022/libs/util/shared/src/lib/utils/index.mjs +2 -1
  89. package/esm2022/libs/util/shared/src/lib/utils/temporal-extent-union.mjs +32 -0
  90. package/esm2022/translations/de.json +37 -26
  91. package/esm2022/translations/en.json +37 -26
  92. package/esm2022/translations/es.json +31 -20
  93. package/esm2022/translations/fr.json +51 -40
  94. package/esm2022/translations/it.json +44 -33
  95. package/esm2022/translations/nl.json +32 -21
  96. package/esm2022/translations/pt.json +31 -20
  97. package/fesm2022/geonetwork-ui.mjs +1290 -881
  98. package/fesm2022/geonetwork-ui.mjs.map +1 -1
  99. package/libs/api/metadata-converter/src/lib/gn4/atomic-operations.d.ts +2 -0
  100. package/libs/api/metadata-converter/src/lib/gn4/atomic-operations.d.ts.map +1 -1
  101. package/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.d.ts +0 -1
  102. package/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.d.ts.map +1 -1
  103. package/libs/api/metadata-converter/src/lib/gn4/gn4.metadata.mapper.d.ts.map +1 -1
  104. package/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.d.ts +4 -5
  105. package/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.d.ts.map +1 -1
  106. package/libs/api/metadata-converter/src/lib/iso19139/codelists/keyword.mapper.d.ts +3 -0
  107. package/libs/api/metadata-converter/src/lib/iso19139/codelists/keyword.mapper.d.ts.map +1 -0
  108. package/libs/api/metadata-converter/src/lib/iso19139/converter.d.ts.map +1 -1
  109. package/libs/api/metadata-converter/src/lib/iso19139/read-parts.d.ts +7 -6
  110. package/libs/api/metadata-converter/src/lib/iso19139/read-parts.d.ts.map +1 -1
  111. package/libs/api/metadata-converter/src/lib/iso19139/write-parts.d.ts +4 -3
  112. package/libs/api/metadata-converter/src/lib/iso19139/write-parts.d.ts.map +1 -1
  113. package/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.d.ts.map +1 -1
  114. package/libs/api/repository/src/lib/gn4/organizations/organizations-from-metadata.service.d.ts.map +1 -1
  115. package/libs/api/repository/src/lib/gn4/platform/gn4-platform.mapper.d.ts +1 -1
  116. package/libs/api/repository/src/lib/gn4/platform/gn4-platform.mapper.d.ts.map +1 -1
  117. package/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.d.ts +9 -2
  118. package/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.d.ts.map +1 -1
  119. package/libs/api/repository/src/lib/gn4/selection/selection.service.d.ts +4 -5
  120. package/libs/api/repository/src/lib/gn4/selection/selection.service.d.ts.map +1 -1
  121. package/libs/common/domain/src/lib/model/record/metadata.model.d.ts +21 -12
  122. package/libs/common/domain/src/lib/model/record/metadata.model.d.ts.map +1 -1
  123. package/libs/common/domain/src/lib/model/search/aggregation.model.d.ts +1 -1
  124. package/libs/common/domain/src/lib/model/search/aggregation.model.d.ts.map +1 -1
  125. package/libs/common/domain/src/lib/model/search/field.model.d.ts +2 -0
  126. package/libs/common/domain/src/lib/model/search/field.model.d.ts.map +1 -0
  127. package/libs/common/domain/src/lib/model/search/filter.model.d.ts +1 -1
  128. package/libs/common/domain/src/lib/model/search/filter.model.d.ts.map +1 -1
  129. package/libs/common/domain/src/lib/model/search/index.d.ts +1 -0
  130. package/libs/common/domain/src/lib/model/search/index.d.ts.map +1 -1
  131. package/libs/common/domain/src/lib/model/search/search.model.d.ts +2 -3
  132. package/libs/common/domain/src/lib/model/search/search.model.d.ts.map +1 -1
  133. package/libs/common/domain/src/lib/model/thesaurus/thesaurus.model.d.ts +1 -0
  134. package/libs/common/domain/src/lib/model/thesaurus/thesaurus.model.d.ts.map +1 -1
  135. package/libs/common/domain/src/lib/platform.service.interface.d.ts +1 -1
  136. package/libs/common/domain/src/lib/platform.service.interface.d.ts.map +1 -1
  137. package/libs/feature/catalog/src/lib/my-org/my-org.service.d.ts +0 -1
  138. package/libs/feature/catalog/src/lib/my-org/my-org.service.d.ts.map +1 -1
  139. package/libs/feature/editor/src/index.d.ts +5 -0
  140. package/libs/feature/editor/src/index.d.ts.map +1 -1
  141. package/libs/feature/editor/src/lib/+state/editor.actions.d.ts +23 -0
  142. package/libs/feature/editor/src/lib/+state/editor.actions.d.ts.map +1 -0
  143. package/libs/feature/editor/src/lib/+state/editor.effects.d.ts +15 -0
  144. package/libs/feature/editor/src/lib/+state/editor.effects.d.ts.map +1 -0
  145. package/libs/feature/editor/src/lib/+state/editor.facade.d.ts +19 -0
  146. package/libs/feature/editor/src/lib/+state/editor.facade.d.ts.map +1 -0
  147. package/libs/feature/editor/src/lib/+state/editor.models.d.ts +2 -0
  148. package/libs/feature/editor/src/lib/+state/editor.models.d.ts.map +1 -0
  149. package/libs/feature/editor/src/lib/+state/editor.reducer.d.ts +18 -0
  150. package/libs/feature/editor/src/lib/+state/editor.reducer.d.ts.map +1 -0
  151. package/libs/feature/editor/src/lib/+state/editor.selectors.d.ts +15 -0
  152. package/libs/feature/editor/src/lib/+state/editor.selectors.d.ts.map +1 -0
  153. package/libs/feature/editor/src/lib/expressions.d.ts +4 -0
  154. package/libs/feature/editor/src/lib/expressions.d.ts.map +1 -0
  155. package/libs/feature/editor/src/lib/feature-editor.module.d.ts +3 -1
  156. package/libs/feature/editor/src/lib/feature-editor.module.d.ts.map +1 -1
  157. package/libs/feature/editor/src/lib/fields.config.d.ts +3 -0
  158. package/libs/feature/editor/src/lib/fields.config.d.ts.map +1 -0
  159. package/libs/feature/editor/src/lib/models/fields.model.d.ts +15 -0
  160. package/libs/feature/editor/src/lib/models/fields.model.d.ts.map +1 -0
  161. package/libs/feature/editor/src/lib/record-form/record-form.component.d.ts +10 -5
  162. package/libs/feature/editor/src/lib/record-form/record-form.component.d.ts.map +1 -1
  163. package/libs/feature/editor/src/lib/services/editor.service.d.ts +3 -13
  164. package/libs/feature/editor/src/lib/services/editor.service.d.ts.map +1 -1
  165. package/libs/feature/map/src/lib/feature-map.module.d.ts.map +1 -1
  166. package/libs/feature/map/src/lib/geocoding/geocoding.component.d.ts +6 -1
  167. package/libs/feature/map/src/lib/geocoding/geocoding.component.d.ts.map +1 -1
  168. package/libs/feature/map/src/lib/geocoding.service.d.ts +18 -0
  169. package/libs/feature/map/src/lib/geocoding.service.d.ts.map +1 -0
  170. package/libs/feature/map/src/lib/map-context/map-context.service.d.ts +1 -0
  171. package/libs/feature/map/src/lib/map-context/map-context.service.d.ts.map +1 -1
  172. package/libs/feature/router/src/lib/default/index.d.ts +1 -0
  173. package/libs/feature/router/src/lib/default/index.d.ts.map +1 -1
  174. package/libs/feature/router/src/lib/default/router.service.d.ts +1 -1
  175. package/libs/feature/router/src/lib/default/router.service.d.ts.map +1 -1
  176. package/libs/feature/search/src/index.d.ts +3 -0
  177. package/libs/feature/search/src/index.d.ts.map +1 -1
  178. package/libs/feature/search/src/lib/favorites/favorite-star/favorite-star.component.d.ts +3 -3
  179. package/libs/feature/search/src/lib/favorites/favorite-star/favorite-star.component.d.ts.map +1 -1
  180. package/libs/feature/search/src/lib/feature-search.module.d.ts +0 -4
  181. package/libs/feature/search/src/lib/feature-search.module.d.ts.map +1 -1
  182. package/libs/feature/search/src/lib/filter-dropdown/filter-dropdown.component.d.ts +3 -2
  183. package/libs/feature/search/src/lib/filter-dropdown/filter-dropdown.component.d.ts.map +1 -1
  184. package/libs/feature/search/src/lib/filter-geometry.token.d.ts +4 -0
  185. package/libs/feature/search/src/lib/filter-geometry.token.d.ts.map +1 -0
  186. package/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.d.ts +1 -1
  187. package/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.d.ts.map +1 -1
  188. package/libs/feature/search/src/lib/record-url.token.d.ts +3 -0
  189. package/libs/feature/search/src/lib/record-url.token.d.ts.map +1 -0
  190. package/libs/feature/search/src/lib/results-table/results-table.component.d.ts +33 -0
  191. package/libs/feature/search/src/lib/results-table/results-table.component.d.ts.map +1 -0
  192. package/libs/feature/search/src/lib/state/effects.d.ts.map +1 -1
  193. package/libs/feature/search/src/lib/state/search.facade.d.ts +1 -1
  194. package/libs/feature/search/src/lib/state/search.facade.d.ts.map +1 -1
  195. package/libs/feature/search/src/lib/utils/service/fields.d.ts +21 -8
  196. package/libs/feature/search/src/lib/utils/service/fields.d.ts.map +1 -1
  197. package/libs/feature/search/src/lib/utils/service/fields.service.d.ts.map +1 -1
  198. package/libs/ui/dataviz/src/lib/chart/chart.component.d.ts +1 -1
  199. package/libs/ui/elements/src/lib/markdown-parser/markdown-parser.component.d.ts +1 -1
  200. package/libs/ui/elements/src/lib/markdown-parser/markdown-parser.component.d.ts.map +1 -1
  201. package/libs/ui/elements/src/lib/max-lines/max-lines.component.d.ts.map +1 -1
  202. package/libs/ui/elements/src/lib/metadata-info/metadata-info.component.d.ts +16 -6
  203. package/libs/ui/elements/src/lib/metadata-info/metadata-info.component.d.ts.map +1 -1
  204. package/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.d.ts.map +1 -1
  205. package/libs/ui/elements/src/lib/record-api-form/record-api-form.component.d.ts +3 -1
  206. package/libs/ui/elements/src/lib/record-api-form/record-api-form.component.d.ts.map +1 -1
  207. package/libs/ui/elements/src/lib/ui-elements.module.d.ts +13 -13
  208. package/libs/ui/inputs/src/index.d.ts +1 -0
  209. package/libs/ui/inputs/src/index.d.ts.map +1 -1
  210. package/libs/ui/inputs/src/lib/button/button.component.d.ts +1 -1
  211. package/libs/ui/inputs/src/lib/button/button.component.d.ts.map +1 -1
  212. package/libs/ui/inputs/src/lib/editable-label/editable-label.directive.d.ts +1 -1
  213. package/libs/ui/inputs/src/lib/editable-label/editable-label.directive.d.ts.map +1 -1
  214. package/libs/ui/inputs/src/lib/form-field/form-field.component.d.ts.map +1 -1
  215. package/libs/ui/inputs/src/lib/form-field/form-field.model.d.ts +0 -1
  216. package/libs/ui/inputs/src/lib/form-field/form-field.model.d.ts.map +1 -1
  217. package/libs/ui/inputs/src/lib/text-area/text-area.component.d.ts +1 -1
  218. package/libs/ui/inputs/src/lib/text-area/text-area.component.d.ts.map +1 -1
  219. package/libs/ui/inputs/src/lib/ui-inputs.module.d.ts +40 -40
  220. package/libs/ui/layout/src/index.d.ts +2 -0
  221. package/libs/ui/layout/src/index.d.ts.map +1 -1
  222. package/libs/ui/layout/src/lib/interactive-table/interactive-table-column/interactive-table-column.component.d.ts +14 -0
  223. package/libs/ui/layout/src/lib/interactive-table/interactive-table-column/interactive-table-column.component.d.ts.map +1 -0
  224. package/libs/ui/layout/src/lib/interactive-table/interactive-table.component.d.ts +15 -0
  225. package/libs/ui/layout/src/lib/interactive-table/interactive-table.component.d.ts.map +1 -0
  226. package/libs/ui/search/src/index.d.ts +0 -1
  227. package/libs/ui/search/src/index.d.ts.map +1 -1
  228. package/libs/ui/search/src/lib/ui-search.module.d.ts +15 -15
  229. package/libs/ui/search/src/lib/ui-search.module.d.ts.map +1 -1
  230. package/libs/util/i18n/src/index.d.ts +0 -1
  231. package/libs/util/i18n/src/index.d.ts.map +1 -1
  232. package/libs/util/i18n/src/lib/i18n.constants.d.ts +17 -0
  233. package/libs/util/i18n/src/lib/i18n.constants.d.ts.map +1 -1
  234. package/libs/util/shared/src/lib/utils/index.d.ts +1 -0
  235. package/libs/util/shared/src/lib/utils/index.d.ts.map +1 -1
  236. package/libs/util/shared/src/lib/utils/temporal-extent-union.d.ts +5 -0
  237. package/libs/util/shared/src/lib/utils/temporal-extent-union.d.ts.map +1 -0
  238. package/package.json +2 -2
  239. package/src/libs/api/metadata-converter/src/lib/fixtures/generic.records.ts +63 -8
  240. package/src/libs/api/metadata-converter/src/lib/fixtures/geo2france.records.ts +57 -9
  241. package/src/libs/api/metadata-converter/src/lib/fixtures/geocat-ch.records.ts +229 -24
  242. package/src/libs/api/metadata-converter/src/lib/gn4/atomic-operations.ts +29 -0
  243. package/src/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.ts +99 -76
  244. package/src/libs/api/metadata-converter/src/lib/gn4/gn4.metadata.mapper.ts +6 -3
  245. package/src/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.ts +4 -5
  246. package/src/libs/api/metadata-converter/src/lib/iso19139/codelists/keyword.mapper.ts +16 -0
  247. package/src/libs/api/metadata-converter/src/lib/iso19139/converter.ts +30 -21
  248. package/src/libs/api/metadata-converter/src/lib/iso19139/read-parts.ts +120 -63
  249. package/src/libs/api/metadata-converter/src/lib/iso19139/write-parts.ts +177 -97
  250. package/src/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.ts +1 -1
  251. package/src/libs/api/repository/src/lib/gn4/organizations/organizations-from-metadata.service.ts +22 -2
  252. package/src/libs/api/repository/src/lib/gn4/platform/gn4-platform.mapper.ts +15 -4
  253. package/src/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.ts +47 -8
  254. package/src/libs/api/repository/src/lib/gn4/selection/selection.service.ts +14 -38
  255. package/src/libs/common/domain/src/lib/model/record/metadata.model.ts +25 -14
  256. package/src/libs/common/domain/src/lib/model/search/aggregation.model.ts +1 -1
  257. package/src/libs/common/domain/src/lib/model/search/field.model.ts +1 -0
  258. package/src/libs/common/domain/src/lib/model/search/filter.model.ts +1 -1
  259. package/src/libs/common/domain/src/lib/model/search/index.ts +1 -0
  260. package/src/libs/common/domain/src/lib/model/search/search.model.ts +2 -2
  261. package/src/libs/common/domain/src/lib/model/thesaurus/thesaurus.model.ts +1 -0
  262. package/src/libs/common/domain/src/lib/model/user/index.ts +1 -0
  263. package/src/libs/common/domain/src/lib/platform.service.interface.ts +1 -4
  264. package/src/libs/common/fixtures/src/lib/elasticsearch/full-response.ts +1 -1
  265. package/src/libs/common/fixtures/src/lib/gn4/groups.fixtures.ts +1 -1
  266. package/src/libs/common/fixtures/src/lib/records.fixtures.ts +52 -10
  267. package/src/libs/feature/catalog/src/lib/my-org/my-org.service.ts +4 -16
  268. package/src/libs/feature/editor/src/index.ts +5 -0
  269. package/src/libs/feature/editor/src/lib/+state/editor.actions.ts +24 -0
  270. package/src/libs/feature/editor/src/lib/+state/editor.effects.ts +49 -0
  271. package/src/libs/feature/editor/src/lib/+state/editor.facade.ts +30 -0
  272. package/src/libs/feature/editor/src/lib/+state/editor.models.ts +1 -0
  273. package/src/libs/feature/editor/src/lib/+state/editor.reducer.ts +68 -0
  274. package/src/libs/feature/editor/src/lib/+state/editor.selectors.ts +39 -0
  275. package/src/libs/feature/editor/src/lib/expressions.ts +16 -0
  276. package/src/libs/feature/editor/src/lib/feature-editor.module.ts +11 -0
  277. package/src/libs/feature/editor/src/lib/fields.config.ts +35 -0
  278. package/src/libs/feature/editor/src/lib/models/fields.model.ts +29 -0
  279. package/src/libs/feature/editor/src/lib/record-form/record-form.component.html +9 -7
  280. package/src/libs/feature/editor/src/lib/record-form/record-form.component.ts +11 -5
  281. package/src/libs/feature/editor/src/lib/services/editor.service.ts +34 -73
  282. package/src/libs/feature/map/src/lib/feature-map.module.ts +5 -0
  283. package/src/libs/feature/map/src/lib/geocoding/geocoding.component.ts +27 -11
  284. package/src/libs/feature/map/src/lib/geocoding.service.ts +59 -0
  285. package/src/libs/feature/map/src/lib/map-context/map-context.service.ts +10 -0
  286. package/src/libs/feature/record/src/lib/data-view-permalink/data-view-permalink.component.ts +12 -12
  287. package/src/libs/feature/record/src/lib/state/mdview.reducer.ts +1 -1
  288. package/src/libs/feature/router/src/lib/default/index.ts +1 -0
  289. package/src/libs/feature/router/src/lib/default/router.service.ts +1 -1
  290. package/src/libs/feature/search/src/index.ts +3 -0
  291. package/src/libs/feature/search/src/lib/favorites/favorite-star/favorite-star.component.html +5 -4
  292. package/src/libs/feature/search/src/lib/favorites/favorite-star/favorite-star.component.ts +1 -1
  293. package/src/libs/feature/search/src/lib/feature-search.module.ts +1 -10
  294. package/src/libs/feature/search/src/lib/filter-dropdown/filter-dropdown.component.ts +4 -4
  295. package/src/libs/feature/search/src/lib/filter-geometry.token.ts +7 -0
  296. package/src/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.ts +9 -3
  297. package/src/libs/feature/search/src/lib/record-url.token.ts +4 -0
  298. package/src/libs/feature/search/src/lib/results-list/results-list.container.component.ts +1 -1
  299. package/src/libs/feature/search/src/lib/results-table/results-table.component.css +0 -0
  300. package/src/libs/feature/search/src/lib/results-table/results-table.component.html +112 -0
  301. package/src/libs/feature/search/src/lib/results-table/results-table.component.ts +164 -0
  302. package/src/libs/feature/search/src/lib/state/effects.ts +5 -4
  303. package/src/libs/feature/search/src/lib/state/search.facade.ts +2 -1
  304. package/src/libs/feature/search/src/lib/utils/service/fields.service.ts +21 -16
  305. package/src/libs/feature/search/src/lib/utils/service/fields.ts +43 -34
  306. package/src/libs/ui/catalog/src/lib/language-switcher/language-switcher.component.html +1 -1
  307. package/src/libs/ui/elements/src/lib/image-overlay-preview/image-overlay-preview.component.html +3 -2
  308. package/src/libs/ui/elements/src/lib/markdown-editor/markdown-editor.component.css +5 -0
  309. package/src/libs/ui/elements/src/lib/markdown-editor/markdown-editor.component.html +39 -0
  310. package/src/libs/ui/elements/src/lib/markdown-editor/markdown-editor.component.ts +58 -0
  311. package/src/libs/ui/elements/src/lib/markdown-parser/markdown-parser.component.css +2 -2
  312. package/src/libs/ui/elements/src/lib/markdown-parser/markdown-parser.component.ts +1 -0
  313. package/src/libs/ui/elements/src/lib/max-lines/max-lines.component.html +5 -1
  314. package/src/libs/ui/elements/src/lib/max-lines/max-lines.component.ts +1 -0
  315. package/src/libs/ui/elements/src/lib/metadata-contact/metadata-contact.component.html +2 -2
  316. package/src/libs/ui/elements/src/lib/metadata-info/metadata-info.component.html +169 -52
  317. package/src/libs/ui/elements/src/lib/metadata-info/metadata-info.component.ts +51 -15
  318. package/src/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.ts +2 -3
  319. package/src/libs/ui/elements/src/lib/record-api-form/record-api-form.component.html +5 -5
  320. package/src/libs/ui/elements/src/lib/record-api-form/record-api-form.component.ts +12 -4
  321. package/src/libs/ui/elements/src/lib/thumbnail/thumbnail.component.html +2 -2
  322. package/src/libs/ui/elements/src/lib/ui-elements.module.ts +1 -1
  323. package/src/libs/ui/inputs/src/index.ts +1 -0
  324. package/src/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.html +1 -1
  325. package/src/libs/ui/inputs/src/lib/button/button.component.css +0 -5
  326. package/src/libs/ui/inputs/src/lib/button/button.component.html +0 -1
  327. package/src/libs/ui/inputs/src/lib/button/button.component.ts +7 -6
  328. package/src/libs/ui/inputs/src/lib/checkbox/checkbox.component.html +0 -1
  329. package/src/libs/ui/inputs/src/lib/dropdown-multiselect/dropdown-multiselect.component.html +2 -2
  330. package/src/libs/ui/inputs/src/lib/dropdown-selector/dropdown-selector.component.html +3 -1
  331. package/src/libs/ui/inputs/src/lib/editable-label/editable-label.directive.ts +1 -0
  332. package/src/libs/ui/inputs/src/lib/form-field/form-field.component.ts +3 -1
  333. package/src/libs/ui/inputs/src/lib/form-field/form-field.model.ts +0 -1
  334. package/src/libs/ui/inputs/src/lib/navigation-button/navigation-button.component.css +3 -0
  335. package/src/libs/ui/inputs/src/lib/navigation-button/navigation-button.component.html +1 -1
  336. package/src/libs/ui/inputs/src/lib/text-area/text-area.component.ts +1 -0
  337. package/src/libs/ui/inputs/src/lib/ui-inputs.module.ts +3 -3
  338. package/src/libs/ui/layout/src/index.ts +2 -0
  339. package/src/libs/ui/layout/src/lib/carousel/carousel.component.html +1 -0
  340. package/src/libs/ui/layout/src/lib/interactive-table/interactive-table-column/interactive-table-column.component.css +0 -0
  341. package/src/libs/ui/layout/src/lib/interactive-table/interactive-table-column/interactive-table-column.component.html +1 -0
  342. package/src/libs/ui/layout/src/lib/interactive-table/interactive-table-column/interactive-table-column.component.ts +33 -0
  343. package/src/libs/ui/layout/src/lib/interactive-table/interactive-table.component.css +15 -0
  344. package/src/libs/ui/layout/src/lib/interactive-table/interactive-table.component.html +54 -0
  345. package/src/libs/ui/layout/src/lib/interactive-table/interactive-table.component.ts +42 -0
  346. package/src/libs/ui/search/src/index.ts +0 -1
  347. package/src/libs/ui/search/src/lib/ui-search.module.ts +2 -3
  348. package/src/libs/ui/widgets/src/lib/badge/badge.component.html +3 -1
  349. package/src/libs/util/i18n/src/index.ts +0 -1
  350. package/src/libs/util/i18n/src/lib/i18n.constants.ts +18 -0
  351. package/src/libs/util/shared/src/lib/utils/index.ts +1 -0
  352. package/src/libs/util/shared/src/lib/utils/temporal-extent-union.ts +32 -0
  353. package/tailwind.base.css +44 -15
  354. package/translations/de.json +37 -26
  355. package/translations/en.json +37 -26
  356. package/translations/es.json +31 -20
  357. package/translations/fr.json +51 -40
  358. package/translations/it.json +44 -33
  359. package/translations/nl.json +32 -21
  360. package/translations/pt.json +31 -20
  361. package/translations/sk.json +119 -108
  362. package/esm2022/libs/ui/search/src/lib/record-table/record-table.component.mjs +0 -145
  363. package/esm2022/libs/util/i18n/src/lib/testing/test.translate.loader.mjs +0 -24
  364. package/esm2022/libs/util/i18n/src/lib/testing/test.translate.module.mjs +0 -109
  365. package/esm2022/libs/util/i18n/src/lib/testing/translations.model.mjs +0 -6
  366. package/libs/ui/search/src/lib/record-table/record-table.component.d.ts +0 -31
  367. package/libs/ui/search/src/lib/record-table/record-table.component.d.ts.map +0 -1
  368. package/libs/util/i18n/src/lib/testing/test.translate.loader.d.ts +0 -17
  369. package/libs/util/i18n/src/lib/testing/test.translate.loader.d.ts.map +0 -1
  370. package/libs/util/i18n/src/lib/testing/test.translate.module.d.ts +0 -131
  371. package/libs/util/i18n/src/lib/testing/test.translate.module.d.ts.map +0 -1
  372. package/libs/util/i18n/src/lib/testing/translations.model.d.ts +0 -21
  373. package/libs/util/i18n/src/lib/testing/translations.model.d.ts.map +0 -1
  374. package/src/libs/ui/search/src/lib/record-table/record-table.component.css +0 -7
  375. package/src/libs/ui/search/src/lib/record-table/record-table.component.html +0 -215
  376. package/src/libs/ui/search/src/lib/record-table/record-table.component.ts +0 -149
  377. package/src/libs/util/i18n/src/lib/testing/test.translate.loader.ts +0 -26
  378. package/src/libs/util/i18n/src/lib/testing/test.translate.module.ts +0 -235
  379. package/src/libs/util/i18n/src/lib/testing/translations.model.ts +0 -28
@@ -0,0 +1,8 @@
1
+ import { createAction, props } from '@ngrx/store';
2
+ export const openRecord = createAction('[Editor] Open record', props());
3
+ export const updateRecordField = createAction('[Editor] Update record field', props());
4
+ export const markRecordAsChanged = createAction('[Editor] Mark record as changed');
5
+ export const saveRecord = createAction('[Editor] Save record');
6
+ export const saveRecordSuccess = createAction('[Editor] Save record success');
7
+ export const saveRecordFailure = createAction('[Editor] Save record failure', props());
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLmFjdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ZlYXR1cmUvZWRpdG9yL3NyYy9saWIvK3N0YXRlL2VkaXRvci5hY3Rpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFBO0FBSWpELE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxZQUFZLENBQ3BDLHNCQUFzQixFQUN0QixLQUFLLEVBQTZCLENBQ25DLENBQUE7QUFFRCxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxZQUFZLENBQzNDLDhCQUE4QixFQUM5QixLQUFLLEVBQXFDLENBQzNDLENBQUE7QUFFRCxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxZQUFZLENBQzdDLGlDQUFpQyxDQUNsQyxDQUFBO0FBRUQsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLFlBQVksQ0FBQyxzQkFBc0IsQ0FBQyxDQUFBO0FBQzlELE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLFlBQVksQ0FBQyw4QkFBOEIsQ0FBQyxDQUFBO0FBQzdFLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLFlBQVksQ0FDM0MsOEJBQThCLEVBQzlCLEtBQUssRUFBOEIsQ0FDcEMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNyZWF0ZUFjdGlvbiwgcHJvcHMgfSBmcm9tICdAbmdyeC9zdG9yZSdcbmltcG9ydCB7IENhdGFsb2dSZWNvcmQgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9tb2RlbC9yZWNvcmQnXG5pbXBvcnQgeyBTYXZlUmVjb3JkRXJyb3IgfSBmcm9tICcuL2VkaXRvci5tb2RlbHMnXG5cbmV4cG9ydCBjb25zdCBvcGVuUmVjb3JkID0gY3JlYXRlQWN0aW9uKFxuICAnW0VkaXRvcl0gT3BlbiByZWNvcmQnLFxuICBwcm9wczx7IHJlY29yZDogQ2F0YWxvZ1JlY29yZCB9PigpXG4pXG5cbmV4cG9ydCBjb25zdCB1cGRhdGVSZWNvcmRGaWVsZCA9IGNyZWF0ZUFjdGlvbihcbiAgJ1tFZGl0b3JdIFVwZGF0ZSByZWNvcmQgZmllbGQnLFxuICBwcm9wczx7IGZpZWxkOiBzdHJpbmc7IHZhbHVlOiB1bmtub3duIH0+KClcbilcblxuZXhwb3J0IGNvbnN0IG1hcmtSZWNvcmRBc0NoYW5nZWQgPSBjcmVhdGVBY3Rpb24oXG4gICdbRWRpdG9yXSBNYXJrIHJlY29yZCBhcyBjaGFuZ2VkJ1xuKVxuXG5leHBvcnQgY29uc3Qgc2F2ZVJlY29yZCA9IGNyZWF0ZUFjdGlvbignW0VkaXRvcl0gU2F2ZSByZWNvcmQnKVxuZXhwb3J0IGNvbnN0IHNhdmVSZWNvcmRTdWNjZXNzID0gY3JlYXRlQWN0aW9uKCdbRWRpdG9yXSBTYXZlIHJlY29yZCBzdWNjZXNzJylcbmV4cG9ydCBjb25zdCBzYXZlUmVjb3JkRmFpbHVyZSA9IGNyZWF0ZUFjdGlvbihcbiAgJ1tFZGl0b3JdIFNhdmUgcmVjb3JkIGZhaWx1cmUnLFxuICBwcm9wczx7IGVycm9yOiBTYXZlUmVjb3JkRXJyb3IgfT4oKVxuKVxuIl19
@@ -0,0 +1,26 @@
1
+ import { inject, Injectable } from '@angular/core';
2
+ import { Actions, createEffect, ofType } from '@ngrx/effects';
3
+ import { of, withLatestFrom } from 'rxjs';
4
+ import { catchError, map, switchMap } from 'rxjs/operators';
5
+ import * as EditorActions from './editor.actions';
6
+ import { EditorService } from '../services/editor.service';
7
+ import { Store } from '@ngrx/store';
8
+ import { selectRecord, selectRecordFieldsConfig } from './editor.selectors';
9
+ import * as i0 from "@angular/core";
10
+ export class EditorEffects {
11
+ constructor() {
12
+ this.actions$ = inject(Actions);
13
+ this.editorService = inject(EditorService);
14
+ this.store = inject(Store);
15
+ this.saveRecord$ = createEffect(() => this.actions$.pipe(ofType(EditorActions.saveRecord), withLatestFrom(this.store.select(selectRecord), this.store.select(selectRecordFieldsConfig)), switchMap(([, record, fieldsConfig]) => this.editorService.saveRecord(record, fieldsConfig).pipe(switchMap((newRecord) => of(EditorActions.saveRecordSuccess(), EditorActions.openRecord({ record: newRecord }))), catchError((error) => of(EditorActions.saveRecordFailure({
16
+ error: error.message,
17
+ })))))));
18
+ this.markAsChanged$ = createEffect(() => this.actions$.pipe(ofType(EditorActions.updateRecordField), map(() => EditorActions.markRecordAsChanged())));
19
+ }
20
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: EditorEffects, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
21
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: EditorEffects }); }
22
+ }
23
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: EditorEffects, decorators: [{
24
+ type: Injectable
25
+ }] });
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLmVmZmVjdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ZlYXR1cmUvZWRpdG9yL3NyYy9saWIvK3N0YXRlL2VkaXRvci5lZmZlY3RzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ2xELE9BQU8sRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUM3RCxPQUFPLEVBQUUsRUFBRSxFQUFFLGNBQWMsRUFBRSxNQUFNLE1BQU0sQ0FBQTtBQUN6QyxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUMzRCxPQUFPLEtBQUssYUFBYSxNQUFNLGtCQUFrQixDQUFBO0FBQ2pELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQTtBQUMxRCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFBO0FBQ25DLE9BQU8sRUFBRSxZQUFZLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQTs7QUFHM0UsTUFBTSxPQUFPLGFBQWE7SUFEMUI7UUFFVSxhQUFRLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFBO1FBQzFCLGtCQUFhLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFBO1FBQ3JDLFVBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUE7UUFFN0IsZ0JBQVcsR0FBRyxZQUFZLENBQUMsR0FBRyxFQUFFLENBQzlCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUNoQixNQUFNLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxFQUNoQyxjQUFjLENBQ1osSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLEVBQy9CLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLHdCQUF3QixDQUFDLENBQzVDLEVBQ0QsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxZQUFZLENBQUMsRUFBRSxFQUFFLENBQ3JDLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxZQUFZLENBQUMsQ0FBQyxJQUFJLENBQ3RELFNBQVMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQ3RCLEVBQUUsQ0FDQSxhQUFhLENBQUMsaUJBQWlCLEVBQUUsRUFDakMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUNoRCxDQUNGLEVBQ0QsVUFBVSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FDbkIsRUFBRSxDQUNBLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQztZQUM5QixLQUFLLEVBQUUsS0FBSyxDQUFDLE9BQU87U0FDckIsQ0FBQyxDQUNILENBQ0YsQ0FDRixDQUNGLENBQ0YsQ0FDRixDQUFBO1FBRUQsbUJBQWMsR0FBRyxZQUFZLENBQUMsR0FBRyxFQUFFLENBQ2pDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUNoQixNQUFNLENBQUMsYUFBYSxDQUFDLGlCQUFpQixDQUFDLEVBQ3ZDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxhQUFhLENBQUMsbUJBQW1CLEVBQUUsQ0FBQyxDQUMvQyxDQUNGLENBQUE7S0FDRjs4R0F0Q1ksYUFBYTtrSEFBYixhQUFhOzsyRkFBYixhQUFhO2tCQUR6QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IEFjdGlvbnMsIGNyZWF0ZUVmZmVjdCwgb2ZUeXBlIH0gZnJvbSAnQG5ncngvZWZmZWN0cydcbmltcG9ydCB7IG9mLCB3aXRoTGF0ZXN0RnJvbSB9IGZyb20gJ3J4anMnXG5pbXBvcnQgeyBjYXRjaEVycm9yLCBtYXAsIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJ1xuaW1wb3J0ICogYXMgRWRpdG9yQWN0aW9ucyBmcm9tICcuL2VkaXRvci5hY3Rpb25zJ1xuaW1wb3J0IHsgRWRpdG9yU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2VkaXRvci5zZXJ2aWNlJ1xuaW1wb3J0IHsgU3RvcmUgfSBmcm9tICdAbmdyeC9zdG9yZSdcbmltcG9ydCB7IHNlbGVjdFJlY29yZCwgc2VsZWN0UmVjb3JkRmllbGRzQ29uZmlnIH0gZnJvbSAnLi9lZGl0b3Iuc2VsZWN0b3JzJ1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRWRpdG9yRWZmZWN0cyB7XG4gIHByaXZhdGUgYWN0aW9ucyQgPSBpbmplY3QoQWN0aW9ucylcbiAgcHJpdmF0ZSBlZGl0b3JTZXJ2aWNlID0gaW5qZWN0KEVkaXRvclNlcnZpY2UpXG4gIHByaXZhdGUgc3RvcmUgPSBpbmplY3QoU3RvcmUpXG5cbiAgc2F2ZVJlY29yZCQgPSBjcmVhdGVFZmZlY3QoKCkgPT5cbiAgICB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gICAgICBvZlR5cGUoRWRpdG9yQWN0aW9ucy5zYXZlUmVjb3JkKSxcbiAgICAgIHdpdGhMYXRlc3RGcm9tKFxuICAgICAgICB0aGlzLnN0b3JlLnNlbGVjdChzZWxlY3RSZWNvcmQpLFxuICAgICAgICB0aGlzLnN0b3JlLnNlbGVjdChzZWxlY3RSZWNvcmRGaWVsZHNDb25maWcpXG4gICAgICApLFxuICAgICAgc3dpdGNoTWFwKChbLCByZWNvcmQsIGZpZWxkc0NvbmZpZ10pID0+XG4gICAgICAgIHRoaXMuZWRpdG9yU2VydmljZS5zYXZlUmVjb3JkKHJlY29yZCwgZmllbGRzQ29uZmlnKS5waXBlKFxuICAgICAgICAgIHN3aXRjaE1hcCgobmV3UmVjb3JkKSA9PlxuICAgICAgICAgICAgb2YoXG4gICAgICAgICAgICAgIEVkaXRvckFjdGlvbnMuc2F2ZVJlY29yZFN1Y2Nlc3MoKSxcbiAgICAgICAgICAgICAgRWRpdG9yQWN0aW9ucy5vcGVuUmVjb3JkKHsgcmVjb3JkOiBuZXdSZWNvcmQgfSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICApLFxuICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PlxuICAgICAgICAgICAgb2YoXG4gICAgICAgICAgICAgIEVkaXRvckFjdGlvbnMuc2F2ZVJlY29yZEZhaWx1cmUoe1xuICAgICAgICAgICAgICAgIGVycm9yOiBlcnJvci5tZXNzYWdlLFxuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKVxuICAgICAgICAgIClcbiAgICAgICAgKVxuICAgICAgKVxuICAgIClcbiAgKVxuXG4gIG1hcmtBc0NoYW5nZWQkID0gY3JlYXRlRWZmZWN0KCgpID0+XG4gICAgdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgICAgb2ZUeXBlKEVkaXRvckFjdGlvbnMudXBkYXRlUmVjb3JkRmllbGQpLFxuICAgICAgbWFwKCgpID0+IEVkaXRvckFjdGlvbnMubWFya1JlY29yZEFzQ2hhbmdlZCgpKVxuICAgIClcbiAgKVxufVxuIl19
@@ -0,0 +1,30 @@
1
+ import { inject, Injectable } from '@angular/core';
2
+ import { select, Store } from '@ngrx/store';
3
+ import * as EditorActions from './editor.actions';
4
+ import * as EditorSelectors from './editor.selectors';
5
+ import * as i0 from "@angular/core";
6
+ export class EditorFacade {
7
+ constructor() {
8
+ this.store = inject(Store);
9
+ this.record$ = this.store.pipe(select(EditorSelectors.selectRecord));
10
+ this.saving$ = this.store.pipe(select(EditorSelectors.selectRecordSaving));
11
+ this.saveError$ = this.store.pipe(select(EditorSelectors.selectRecordSaveError));
12
+ this.changedSinceSave$ = this.store.pipe(select(EditorSelectors.selectRecordChangedSinceSave));
13
+ this.recordFields$ = this.store.pipe(select(EditorSelectors.selectRecordFields));
14
+ }
15
+ openRecord(record) {
16
+ this.store.dispatch(EditorActions.openRecord({ record }));
17
+ }
18
+ saveRecord() {
19
+ this.store.dispatch(EditorActions.saveRecord());
20
+ }
21
+ updateRecordField(field, value) {
22
+ this.store.dispatch(EditorActions.updateRecordField({ field, value }));
23
+ }
24
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: EditorFacade, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
25
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: EditorFacade }); }
26
+ }
27
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: EditorFacade, decorators: [{
28
+ type: Injectable
29
+ }] });
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLmZhY2FkZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZmVhdHVyZS9lZGl0b3Ivc3JjL2xpYi8rc3RhdGUvZWRpdG9yLmZhY2FkZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUNsRCxPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUMzQyxPQUFPLEtBQUssYUFBYSxNQUFNLGtCQUFrQixDQUFBO0FBQ2pELE9BQU8sS0FBSyxlQUFlLE1BQU0sb0JBQW9CLENBQUE7O0FBSXJELE1BQU0sT0FBTyxZQUFZO0lBRHpCO1FBRW1CLFVBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUE7UUFFdEMsWUFBTyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQTtRQUMvRCxZQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUE7UUFDckUsZUFBVSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFBO1FBQzNFLHNCQUFpQixHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUNqQyxNQUFNLENBQUMsZUFBZSxDQUFDLDRCQUE0QixDQUFDLENBQ3JELENBQUE7UUFDRCxrQkFBYSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFBO0tBYTVFO0lBWEMsVUFBVSxDQUFDLE1BQXFCO1FBQzlCLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUE7SUFDM0QsQ0FBQztJQUVELFVBQVU7UUFDUixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQTtJQUNqRCxDQUFDO0lBRUQsaUJBQWlCLENBQUMsS0FBYSxFQUFFLEtBQWM7UUFDN0MsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQTtJQUN4RSxDQUFDOzhHQXJCVSxZQUFZO2tIQUFaLFlBQVk7OzJGQUFaLFlBQVk7a0JBRHhCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgc2VsZWN0LCBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJ1xuaW1wb3J0ICogYXMgRWRpdG9yQWN0aW9ucyBmcm9tICcuL2VkaXRvci5hY3Rpb25zJ1xuaW1wb3J0ICogYXMgRWRpdG9yU2VsZWN0b3JzIGZyb20gJy4vZWRpdG9yLnNlbGVjdG9ycydcbmltcG9ydCB7IENhdGFsb2dSZWNvcmQgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9tb2RlbC9yZWNvcmQnXG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBFZGl0b3JGYWNhZGUge1xuICBwcml2YXRlIHJlYWRvbmx5IHN0b3JlID0gaW5qZWN0KFN0b3JlKVxuXG4gIHJlY29yZCQgPSB0aGlzLnN0b3JlLnBpcGUoc2VsZWN0KEVkaXRvclNlbGVjdG9ycy5zZWxlY3RSZWNvcmQpKVxuICBzYXZpbmckID0gdGhpcy5zdG9yZS5waXBlKHNlbGVjdChFZGl0b3JTZWxlY3RvcnMuc2VsZWN0UmVjb3JkU2F2aW5nKSlcbiAgc2F2ZUVycm9yJCA9IHRoaXMuc3RvcmUucGlwZShzZWxlY3QoRWRpdG9yU2VsZWN0b3JzLnNlbGVjdFJlY29yZFNhdmVFcnJvcikpXG4gIGNoYW5nZWRTaW5jZVNhdmUkID0gdGhpcy5zdG9yZS5waXBlKFxuICAgIHNlbGVjdChFZGl0b3JTZWxlY3RvcnMuc2VsZWN0UmVjb3JkQ2hhbmdlZFNpbmNlU2F2ZSlcbiAgKVxuICByZWNvcmRGaWVsZHMkID0gdGhpcy5zdG9yZS5waXBlKHNlbGVjdChFZGl0b3JTZWxlY3RvcnMuc2VsZWN0UmVjb3JkRmllbGRzKSlcblxuICBvcGVuUmVjb3JkKHJlY29yZDogQ2F0YWxvZ1JlY29yZCkge1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goRWRpdG9yQWN0aW9ucy5vcGVuUmVjb3JkKHsgcmVjb3JkIH0pKVxuICB9XG5cbiAgc2F2ZVJlY29yZCgpIHtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKEVkaXRvckFjdGlvbnMuc2F2ZVJlY29yZCgpKVxuICB9XG5cbiAgdXBkYXRlUmVjb3JkRmllbGQoZmllbGQ6IHN0cmluZywgdmFsdWU6IHVua25vd24pIHtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKEVkaXRvckFjdGlvbnMudXBkYXRlUmVjb3JkRmllbGQoeyBmaWVsZCwgdmFsdWUgfSkpXG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLm1vZGVscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZmVhdHVyZS9lZGl0b3Ivc3JjL2xpYi8rc3RhdGUvZWRpdG9yLm1vZGVscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgU2F2ZVJlY29yZEVycm9yID0gc3RyaW5nXG4iXX0=
@@ -0,0 +1,42 @@
1
+ import { createReducer, on } from '@ngrx/store';
2
+ import * as EditorActions from './editor.actions';
3
+ import { DEFAULT_FIELDS } from '../fields.config';
4
+ export const EDITOR_FEATURE_KEY = 'editor';
5
+ export const initialEditorState = {
6
+ record: null,
7
+ saving: false,
8
+ saveError: null,
9
+ changedSinceSave: false,
10
+ fieldsConfig: DEFAULT_FIELDS,
11
+ };
12
+ const reducer = createReducer(initialEditorState, on(EditorActions.openRecord, (state, { record }) => ({
13
+ ...state,
14
+ changedSinceSave: false,
15
+ record,
16
+ })), on(EditorActions.saveRecord, (state) => ({
17
+ ...state,
18
+ saving: true,
19
+ saveError: null,
20
+ })), on(EditorActions.saveRecordSuccess, (state) => ({
21
+ ...state,
22
+ saving: false,
23
+ saveError: null,
24
+ changedSinceSave: false,
25
+ })), on(EditorActions.saveRecordFailure, (state, { error }) => ({
26
+ ...state,
27
+ saving: false,
28
+ saveError: error,
29
+ })), on(EditorActions.updateRecordField, (state, { field, value }) => ({
30
+ ...state,
31
+ record: {
32
+ ...state.record,
33
+ [field]: value,
34
+ },
35
+ })), on(EditorActions.markRecordAsChanged, (state) => ({
36
+ ...state,
37
+ changedSinceSave: true,
38
+ })));
39
+ export function editorReducer(state, action) {
40
+ return reducer(state, action);
41
+ }
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLnJlZHVjZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ZlYXR1cmUvZWRpdG9yL3NyYy9saWIvK3N0YXRlL2VkaXRvci5yZWR1Y2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBVSxhQUFhLEVBQUUsRUFBRSxFQUFFLE1BQU0sYUFBYSxDQUFBO0FBQ3ZELE9BQU8sS0FBSyxhQUFhLE1BQU0sa0JBQWtCLENBQUE7QUFJakQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtCQUFrQixDQUFBO0FBRWpELE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLFFBQVEsQ0FBQTtBQWMxQyxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBZ0I7SUFDN0MsTUFBTSxFQUFFLElBQUk7SUFDWixNQUFNLEVBQUUsS0FBSztJQUNiLFNBQVMsRUFBRSxJQUFJO0lBQ2YsZ0JBQWdCLEVBQUUsS0FBSztJQUN2QixZQUFZLEVBQUUsY0FBYztDQUM3QixDQUFBO0FBRUQsTUFBTSxPQUFPLEdBQUcsYUFBYSxDQUMzQixrQkFBa0IsRUFDbEIsRUFBRSxDQUFDLGFBQWEsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNuRCxHQUFHLEtBQUs7SUFDUixnQkFBZ0IsRUFBRSxLQUFLO0lBQ3ZCLE1BQU07Q0FDUCxDQUFDLENBQUMsRUFDSCxFQUFFLENBQUMsYUFBYSxDQUFDLFVBQVUsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztJQUN2QyxHQUFHLEtBQUs7SUFDUixNQUFNLEVBQUUsSUFBSTtJQUNaLFNBQVMsRUFBRSxJQUFJO0NBQ2hCLENBQUMsQ0FBQyxFQUNILEVBQUUsQ0FBQyxhQUFhLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDOUMsR0FBRyxLQUFLO0lBQ1IsTUFBTSxFQUFFLEtBQUs7SUFDYixTQUFTLEVBQUUsSUFBSTtJQUNmLGdCQUFnQixFQUFFLEtBQUs7Q0FDeEIsQ0FBQyxDQUFDLEVBQ0gsRUFBRSxDQUFDLGFBQWEsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3pELEdBQUcsS0FBSztJQUNSLE1BQU0sRUFBRSxLQUFLO0lBQ2IsU0FBUyxFQUFFLEtBQUs7Q0FDakIsQ0FBQyxDQUFDLEVBQ0gsRUFBRSxDQUFDLGFBQWEsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNoRSxHQUFHLEtBQUs7SUFDUixNQUFNLEVBQUU7UUFDTixHQUFHLEtBQUssQ0FBQyxNQUFNO1FBQ2YsQ0FBQyxLQUFLLENBQUMsRUFBRSxLQUFLO0tBQ2Y7Q0FDRixDQUFDLENBQUMsRUFDSCxFQUFFLENBQUMsYUFBYSxDQUFDLG1CQUFtQixFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ2hELEdBQUcsS0FBSztJQUNSLGdCQUFnQixFQUFFLElBQUk7Q0FDdkIsQ0FBQyxDQUFDLENBQ0osQ0FBQTtBQUVELE1BQU0sVUFBVSxhQUFhLENBQUMsS0FBOEIsRUFBRSxNQUFjO0lBQzFFLE9BQU8sT0FBTyxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQTtBQUMvQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWN0aW9uLCBjcmVhdGVSZWR1Y2VyLCBvbiB9IGZyb20gJ0BuZ3J4L3N0b3JlJ1xuaW1wb3J0ICogYXMgRWRpdG9yQWN0aW9ucyBmcm9tICcuL2VkaXRvci5hY3Rpb25zJ1xuaW1wb3J0IHsgQ2F0YWxvZ1JlY29yZCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL2RvbWFpbi9zcmMvbGliL21vZGVsL3JlY29yZCdcbmltcG9ydCB7IFNhdmVSZWNvcmRFcnJvciB9IGZyb20gJy4vZWRpdG9yLm1vZGVscydcbmltcG9ydCB7IEVkaXRvckZpZWxkc0NvbmZpZyB9IGZyb20gJy4uL21vZGVscy9maWVsZHMubW9kZWwnXG5pbXBvcnQgeyBERUZBVUxUX0ZJRUxEUyB9IGZyb20gJy4uL2ZpZWxkcy5jb25maWcnXG5cbmV4cG9ydCBjb25zdCBFRElUT1JfRkVBVFVSRV9LRVkgPSAnZWRpdG9yJ1xuXG5leHBvcnQgaW50ZXJmYWNlIEVkaXRvclN0YXRlIHtcbiAgcmVjb3JkOiBDYXRhbG9nUmVjb3JkIHwgbnVsbFxuICBzYXZpbmc6IGJvb2xlYW5cbiAgc2F2ZUVycm9yOiBTYXZlUmVjb3JkRXJyb3IgfCBudWxsXG4gIGNoYW5nZWRTaW5jZVNhdmU6IGJvb2xlYW5cbiAgZmllbGRzQ29uZmlnOiBFZGl0b3JGaWVsZHNDb25maWdcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFZGl0b3JQYXJ0aWFsU3RhdGUge1xuICByZWFkb25seSBbRURJVE9SX0ZFQVRVUkVfS0VZXTogRWRpdG9yU3RhdGVcbn1cblxuZXhwb3J0IGNvbnN0IGluaXRpYWxFZGl0b3JTdGF0ZTogRWRpdG9yU3RhdGUgPSB7XG4gIHJlY29yZDogbnVsbCxcbiAgc2F2aW5nOiBmYWxzZSxcbiAgc2F2ZUVycm9yOiBudWxsLFxuICBjaGFuZ2VkU2luY2VTYXZlOiBmYWxzZSxcbiAgZmllbGRzQ29uZmlnOiBERUZBVUxUX0ZJRUxEUyxcbn1cblxuY29uc3QgcmVkdWNlciA9IGNyZWF0ZVJlZHVjZXIoXG4gIGluaXRpYWxFZGl0b3JTdGF0ZSxcbiAgb24oRWRpdG9yQWN0aW9ucy5vcGVuUmVjb3JkLCAoc3RhdGUsIHsgcmVjb3JkIH0pID0+ICh7XG4gICAgLi4uc3RhdGUsXG4gICAgY2hhbmdlZFNpbmNlU2F2ZTogZmFsc2UsXG4gICAgcmVjb3JkLFxuICB9KSksXG4gIG9uKEVkaXRvckFjdGlvbnMuc2F2ZVJlY29yZCwgKHN0YXRlKSA9PiAoe1xuICAgIC4uLnN0YXRlLFxuICAgIHNhdmluZzogdHJ1ZSxcbiAgICBzYXZlRXJyb3I6IG51bGwsXG4gIH0pKSxcbiAgb24oRWRpdG9yQWN0aW9ucy5zYXZlUmVjb3JkU3VjY2VzcywgKHN0YXRlKSA9PiAoe1xuICAgIC4uLnN0YXRlLFxuICAgIHNhdmluZzogZmFsc2UsXG4gICAgc2F2ZUVycm9yOiBudWxsLFxuICAgIGNoYW5nZWRTaW5jZVNhdmU6IGZhbHNlLFxuICB9KSksXG4gIG9uKEVkaXRvckFjdGlvbnMuc2F2ZVJlY29yZEZhaWx1cmUsIChzdGF0ZSwgeyBlcnJvciB9KSA9PiAoe1xuICAgIC4uLnN0YXRlLFxuICAgIHNhdmluZzogZmFsc2UsXG4gICAgc2F2ZUVycm9yOiBlcnJvcixcbiAgfSkpLFxuICBvbihFZGl0b3JBY3Rpb25zLnVwZGF0ZVJlY29yZEZpZWxkLCAoc3RhdGUsIHsgZmllbGQsIHZhbHVlIH0pID0+ICh7XG4gICAgLi4uc3RhdGUsXG4gICAgcmVjb3JkOiB7XG4gICAgICAuLi5zdGF0ZS5yZWNvcmQsXG4gICAgICBbZmllbGRdOiB2YWx1ZSxcbiAgICB9LFxuICB9KSksXG4gIG9uKEVkaXRvckFjdGlvbnMubWFya1JlY29yZEFzQ2hhbmdlZCwgKHN0YXRlKSA9PiAoe1xuICAgIC4uLnN0YXRlLFxuICAgIGNoYW5nZWRTaW5jZVNhdmU6IHRydWUsXG4gIH0pKVxuKVxuXG5leHBvcnQgZnVuY3Rpb24gZWRpdG9yUmVkdWNlcihzdGF0ZTogRWRpdG9yU3RhdGUgfCB1bmRlZmluZWQsIGFjdGlvbjogQWN0aW9uKSB7XG4gIHJldHVybiByZWR1Y2VyKHN0YXRlLCBhY3Rpb24pXG59XG4iXX0=
@@ -0,0 +1,13 @@
1
+ import { createFeatureSelector, createSelector } from '@ngrx/store';
2
+ import { EDITOR_FEATURE_KEY } from './editor.reducer';
3
+ export const selectEditorState = createFeatureSelector(EDITOR_FEATURE_KEY);
4
+ export const selectRecord = createSelector(selectEditorState, (state) => state.record);
5
+ export const selectRecordSaving = createSelector(selectEditorState, (state) => state.saving);
6
+ export const selectRecordSaveError = createSelector(selectEditorState, (state) => state.saveError);
7
+ export const selectRecordChangedSinceSave = createSelector(selectEditorState, (state) => state.changedSinceSave);
8
+ export const selectRecordFieldsConfig = createSelector(selectEditorState, (state) => state.fieldsConfig);
9
+ export const selectRecordFields = createSelector(selectEditorState, (state) => state.fieldsConfig.map((fieldConfig) => ({
10
+ config: fieldConfig,
11
+ value: state.record?.[fieldConfig.model] || null,
12
+ })));
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLnNlbGVjdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZmVhdHVyZS9lZGl0b3Ivc3JjL2xpYi8rc3RhdGUvZWRpdG9yLnNlbGVjdG9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsY0FBYyxFQUFFLE1BQU0sYUFBYSxDQUFBO0FBQ25FLE9BQU8sRUFBRSxrQkFBa0IsRUFBZSxNQUFNLGtCQUFrQixDQUFBO0FBRWxFLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUM1QixxQkFBcUIsQ0FBYyxrQkFBa0IsQ0FBQyxDQUFBO0FBRXhELE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxjQUFjLENBQ3hDLGlCQUFpQixFQUNqQixDQUFDLEtBQWtCLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQ3JDLENBQUE7QUFFRCxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxjQUFjLENBQzlDLGlCQUFpQixFQUNqQixDQUFDLEtBQWtCLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQ3JDLENBQUE7QUFFRCxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxjQUFjLENBQ2pELGlCQUFpQixFQUNqQixDQUFDLEtBQWtCLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQ3hDLENBQUE7QUFFRCxNQUFNLENBQUMsTUFBTSw0QkFBNEIsR0FBRyxjQUFjLENBQ3hELGlCQUFpQixFQUNqQixDQUFDLEtBQWtCLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FDL0MsQ0FBQTtBQUVELE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLGNBQWMsQ0FDcEQsaUJBQWlCLEVBQ2pCLENBQUMsS0FBa0IsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FDM0MsQ0FBQTtBQUVELE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLGNBQWMsQ0FDOUMsaUJBQWlCLEVBQ2pCLENBQUMsS0FBa0IsRUFBRSxFQUFFLENBQ3JCLEtBQUssQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZDLE1BQU0sRUFBRSxXQUFXO0lBQ25CLEtBQUssRUFBRSxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxJQUFJLElBQUk7Q0FDakQsQ0FBQyxDQUFDLENBQ04sQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNyZWF0ZUZlYXR1cmVTZWxlY3RvciwgY3JlYXRlU2VsZWN0b3IgfSBmcm9tICdAbmdyeC9zdG9yZSdcbmltcG9ydCB7IEVESVRPUl9GRUFUVVJFX0tFWSwgRWRpdG9yU3RhdGUgfSBmcm9tICcuL2VkaXRvci5yZWR1Y2VyJ1xuXG5leHBvcnQgY29uc3Qgc2VsZWN0RWRpdG9yU3RhdGUgPVxuICBjcmVhdGVGZWF0dXJlU2VsZWN0b3I8RWRpdG9yU3RhdGU+KEVESVRPUl9GRUFUVVJFX0tFWSlcblxuZXhwb3J0IGNvbnN0IHNlbGVjdFJlY29yZCA9IGNyZWF0ZVNlbGVjdG9yKFxuICBzZWxlY3RFZGl0b3JTdGF0ZSxcbiAgKHN0YXRlOiBFZGl0b3JTdGF0ZSkgPT4gc3RhdGUucmVjb3JkXG4pXG5cbmV4cG9ydCBjb25zdCBzZWxlY3RSZWNvcmRTYXZpbmcgPSBjcmVhdGVTZWxlY3RvcihcbiAgc2VsZWN0RWRpdG9yU3RhdGUsXG4gIChzdGF0ZTogRWRpdG9yU3RhdGUpID0+IHN0YXRlLnNhdmluZ1xuKVxuXG5leHBvcnQgY29uc3Qgc2VsZWN0UmVjb3JkU2F2ZUVycm9yID0gY3JlYXRlU2VsZWN0b3IoXG4gIHNlbGVjdEVkaXRvclN0YXRlLFxuICAoc3RhdGU6IEVkaXRvclN0YXRlKSA9PiBzdGF0ZS5zYXZlRXJyb3JcbilcblxuZXhwb3J0IGNvbnN0IHNlbGVjdFJlY29yZENoYW5nZWRTaW5jZVNhdmUgPSBjcmVhdGVTZWxlY3RvcihcbiAgc2VsZWN0RWRpdG9yU3RhdGUsXG4gIChzdGF0ZTogRWRpdG9yU3RhdGUpID0+IHN0YXRlLmNoYW5nZWRTaW5jZVNhdmVcbilcblxuZXhwb3J0IGNvbnN0IHNlbGVjdFJlY29yZEZpZWxkc0NvbmZpZyA9IGNyZWF0ZVNlbGVjdG9yKFxuICBzZWxlY3RFZGl0b3JTdGF0ZSxcbiAgKHN0YXRlOiBFZGl0b3JTdGF0ZSkgPT4gc3RhdGUuZmllbGRzQ29uZmlnXG4pXG5cbmV4cG9ydCBjb25zdCBzZWxlY3RSZWNvcmRGaWVsZHMgPSBjcmVhdGVTZWxlY3RvcihcbiAgc2VsZWN0RWRpdG9yU3RhdGUsXG4gIChzdGF0ZTogRWRpdG9yU3RhdGUpID0+XG4gICAgc3RhdGUuZmllbGRzQ29uZmlnLm1hcCgoZmllbGRDb25maWcpID0+ICh7XG4gICAgICBjb25maWc6IGZpZWxkQ29uZmlnLFxuICAgICAgdmFsdWU6IHN0YXRlLnJlY29yZD8uW2ZpZWxkQ29uZmlnLm1vZGVsXSB8fCBudWxsLFxuICAgIH0pKVxuKVxuIl19
@@ -0,0 +1,13 @@
1
+ export function evaluate(expression) {
2
+ if (expression.match(/^\${.*}$/)) {
3
+ return evaluate(expression.slice(2, -1));
4
+ }
5
+ const operator = expression.split('(')[0];
6
+ switch (operator) {
7
+ case 'dateNow':
8
+ return () => new Date();
9
+ default:
10
+ throw new Error(`Unknown operator: ${operator}`);
11
+ }
12
+ }
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwcmVzc2lvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ZlYXR1cmUvZWRpdG9yL3NyYy9saWIvZXhwcmVzc2lvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsTUFBTSxVQUFVLFFBQVEsQ0FBQyxVQUFrQjtJQUN6QyxJQUFJLFVBQVUsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLEVBQUU7UUFDaEMsT0FBTyxRQUFRLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO0tBQ3pDO0lBQ0QsTUFBTSxRQUFRLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUN6QyxRQUFRLFFBQVEsRUFBRTtRQUNoQixLQUFLLFNBQVM7WUFDWixPQUFPLEdBQUcsRUFBRSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUE7UUFDekI7WUFDRSxNQUFNLElBQUksS0FBSyxDQUFDLHFCQUFxQixRQUFRLEVBQUUsQ0FBQyxDQUFBO0tBQ25EO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVkaXRvckZpZWxkU3RhdGUsIEVkaXRvckZpZWxkVmFsdWUgfSBmcm9tICcuL21vZGVscy9maWVsZHMubW9kZWwnXG5cbmV4cG9ydCB0eXBlIEV4cHJlc3Npb25FdmFsdWF0b3IgPSAoZmllbGQ6IEVkaXRvckZpZWxkU3RhdGUpID0+IEVkaXRvckZpZWxkVmFsdWVcblxuZXhwb3J0IGZ1bmN0aW9uIGV2YWx1YXRlKGV4cHJlc3Npb246IHN0cmluZyk6IEV4cHJlc3Npb25FdmFsdWF0b3Ige1xuICBpZiAoZXhwcmVzc2lvbi5tYXRjaCgvXlxcJHsuKn0kLykpIHtcbiAgICByZXR1cm4gZXZhbHVhdGUoZXhwcmVzc2lvbi5zbGljZSgyLCAtMSkpXG4gIH1cbiAgY29uc3Qgb3BlcmF0b3IgPSBleHByZXNzaW9uLnNwbGl0KCcoJylbMF1cbiAgc3dpdGNoIChvcGVyYXRvcikge1xuICAgIGNhc2UgJ2RhdGVOb3cnOlxuICAgICAgcmV0dXJuICgpID0+IG5ldyBEYXRlKClcbiAgICBkZWZhdWx0OlxuICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmtub3duIG9wZXJhdG9yOiAke29wZXJhdG9yfWApXG4gIH1cbn1cbiJdfQ==
@@ -10,8 +10,15 @@ import { TranslateModule } from '@ngx-translate/core';
10
10
  import { WizardSummarizeComponent } from './components/wizard-summarize/wizard-summarize.component';
11
11
  import { CommonModule } from '@angular/common';
12
12
  import { HttpClientModule, HttpClientXsrfModule } from '@angular/common/http';
13
+ import { StoreModule } from '@ngrx/store';
14
+ import { EffectsModule } from '@ngrx/effects';
15
+ import * as fromEditor from './+state/editor.reducer';
16
+ import { EditorEffects } from './+state/editor.effects';
17
+ import { EditorFacade } from './+state/editor.facade';
13
18
  import * as i0 from "@angular/core";
14
19
  import * as i1 from "@ngx-translate/core";
20
+ import * as i2 from "@ngrx/store";
21
+ import * as i3 from "@ngrx/effects";
15
22
  export class FeatureEditorModule {
16
23
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: FeatureEditorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
17
24
  static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.1.7", ngImport: i0, type: FeatureEditorModule, declarations: [WizardComponent,
@@ -22,8 +29,8 @@ export class FeatureEditorModule {
22
29
  MatNativeDateModule,
23
30
  MatFormFieldModule,
24
31
  HttpClientModule,
25
- HttpClientXsrfModule], exports: [WizardComponent, WizardSummarizeComponent] }); }
26
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: FeatureEditorModule, imports: [CommonModule,
32
+ HttpClientXsrfModule, i2.StoreFeatureModule, i3.EffectsFeatureModule], exports: [WizardComponent, WizardSummarizeComponent] }); }
33
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: FeatureEditorModule, providers: [EditorFacade], imports: [CommonModule,
27
34
  UiInputsModule,
28
35
  UiWidgetsModule,
29
36
  TranslateModule.forChild(),
@@ -31,7 +38,9 @@ export class FeatureEditorModule {
31
38
  MatNativeDateModule,
32
39
  MatFormFieldModule,
33
40
  HttpClientModule,
34
- HttpClientXsrfModule] }); }
41
+ HttpClientXsrfModule,
42
+ StoreModule.forFeature(fromEditor.EDITOR_FEATURE_KEY, fromEditor.editorReducer),
43
+ EffectsModule.forFeature([EditorEffects])] }); }
35
44
  }
36
45
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: FeatureEditorModule, decorators: [{
37
46
  type: NgModule,
@@ -51,10 +60,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
51
60
  MatFormFieldModule,
52
61
  HttpClientModule,
53
62
  HttpClientXsrfModule,
63
+ StoreModule.forFeature(fromEditor.EDITOR_FEATURE_KEY, fromEditor.editorReducer),
64
+ EffectsModule.forFeature([EditorEffects]),
54
65
  ],
55
66
  exports: [WizardComponent, WizardSummarizeComponent],
67
+ providers: [EditorFacade],
56
68
  }]
57
69
  }] });
58
70
  export * from './services/wizard.service';
59
71
  export * from './models/index';
60
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZS1lZGl0b3IubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9mZWF0dXJlL2VkaXRvci9zcmMvbGliL2ZlYXR1cmUtZWRpdG9yLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ3hDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHdCQUF3QixDQUFBO0FBQzVELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDhCQUE4QixDQUFBO0FBQ2xFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFBO0FBQ2pFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQTtBQUN0RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxrREFBa0QsQ0FBQTtBQUN2RixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUNBQW1DLENBQUE7QUFDbEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9DQUFvQyxDQUFBO0FBQ3BFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUNyRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwwREFBMEQsQ0FBQTtBQUNuRyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDOUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLG9CQUFvQixFQUFFLE1BQU0sc0JBQXNCLENBQUE7OztBQXFCN0UsTUFBTSxPQUFPLG1CQUFtQjs4R0FBbkIsbUJBQW1COytHQUFuQixtQkFBbUIsaUJBakI1QixlQUFlO1lBQ2Ysb0JBQW9CO1lBQ3BCLHdCQUF3QixhQUd4QixZQUFZO1lBQ1osY0FBYztZQUNkLGVBQWUsc0JBRWYsbUJBQW1CO1lBQ25CLG1CQUFtQjtZQUNuQixrQkFBa0I7WUFDbEIsZ0JBQWdCO1lBQ2hCLG9CQUFvQixhQUVaLGVBQWUsRUFBRSx3QkFBd0I7K0dBRXhDLG1CQUFtQixZQVo1QixZQUFZO1lBQ1osY0FBYztZQUNkLGVBQWU7WUFDZixlQUFlLENBQUMsUUFBUSxFQUFFO1lBQzFCLG1CQUFtQjtZQUNuQixtQkFBbUI7WUFDbkIsa0JBQWtCO1lBQ2xCLGdCQUFnQjtZQUNoQixvQkFBb0I7OzJGQUlYLG1CQUFtQjtrQkFuQi9CLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFO3dCQUNaLGVBQWU7d0JBQ2Ysb0JBQW9CO3dCQUNwQix3QkFBd0I7cUJBQ3pCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLGNBQWM7d0JBQ2QsZUFBZTt3QkFDZixlQUFlLENBQUMsUUFBUSxFQUFFO3dCQUMxQixtQkFBbUI7d0JBQ25CLG1CQUFtQjt3QkFDbkIsa0JBQWtCO3dCQUNsQixnQkFBZ0I7d0JBQ2hCLG9CQUFvQjtxQkFDckI7b0JBQ0QsT0FBTyxFQUFFLENBQUMsZUFBZSxFQUFFLHdCQUF3QixDQUFDO2lCQUNyRDs7QUFFRCxjQUFjLDJCQUEyQixDQUFBO0FBQ3pDLGNBQWMsZ0JBQWdCLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBNYXROYXRpdmVEYXRlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSdcbmltcG9ydCB7IE1hdERhdGVwaWNrZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kYXRlcGlja2VyJ1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCdcbmltcG9ydCB7IFdpemFyZENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy93aXphcmQvd2l6YXJkLmNvbXBvbmVudCdcbmltcG9ydCB7IFdpemFyZEZpZWxkQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3dpemFyZC1maWVsZC93aXphcmQtZmllbGQuY29tcG9uZW50J1xuaW1wb3J0IHsgVWlJbnB1dHNNb2R1bGUgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9saWJzL3VpL2lucHV0cy9zcmMnXG5pbXBvcnQgeyBVaVdpZGdldHNNb2R1bGUgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9saWJzL3VpL3dpZGdldHMvc3JjJ1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSdcbmltcG9ydCB7IFdpemFyZFN1bW1hcml6ZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy93aXphcmQtc3VtbWFyaXplL3dpemFyZC1zdW1tYXJpemUuY29tcG9uZW50J1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xuaW1wb3J0IHsgSHR0cENsaWVudE1vZHVsZSwgSHR0cENsaWVudFhzcmZNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCdcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgV2l6YXJkQ29tcG9uZW50LFxuICAgIFdpemFyZEZpZWxkQ29tcG9uZW50LFxuICAgIFdpemFyZFN1bW1hcml6ZUNvbXBvbmVudCxcbiAgXSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBVaUlucHV0c01vZHVsZSxcbiAgICBVaVdpZGdldHNNb2R1bGUsXG4gICAgVHJhbnNsYXRlTW9kdWxlLmZvckNoaWxkKCksXG4gICAgTWF0RGF0ZXBpY2tlck1vZHVsZSxcbiAgICBNYXROYXRpdmVEYXRlTW9kdWxlLFxuICAgIE1hdEZvcm1GaWVsZE1vZHVsZSxcbiAgICBIdHRwQ2xpZW50TW9kdWxlLFxuICAgIEh0dHBDbGllbnRYc3JmTW9kdWxlLFxuICBdLFxuICBleHBvcnRzOiBbV2l6YXJkQ29tcG9uZW50LCBXaXphcmRTdW1tYXJpemVDb21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBGZWF0dXJlRWRpdG9yTW9kdWxlIHt9XG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2VzL3dpemFyZC5zZXJ2aWNlJ1xuZXhwb3J0ICogZnJvbSAnLi9tb2RlbHMvaW5kZXgnXG4iXX0=
72
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZS1lZGl0b3IubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9mZWF0dXJlL2VkaXRvci9zcmMvbGliL2ZlYXR1cmUtZWRpdG9yLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ3hDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHdCQUF3QixDQUFBO0FBQzVELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDhCQUE4QixDQUFBO0FBQ2xFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFBO0FBQ2pFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQTtBQUN0RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxrREFBa0QsQ0FBQTtBQUN2RixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUNBQW1DLENBQUE7QUFDbEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9DQUFvQyxDQUFBO0FBQ3BFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUNyRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwwREFBMEQsQ0FBQTtBQUNuRyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDOUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLG9CQUFvQixFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFDN0UsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUN6QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQzdDLE9BQU8sS0FBSyxVQUFVLE1BQU0seUJBQXlCLENBQUE7QUFDckQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHlCQUF5QixDQUFBO0FBQ3ZELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQTs7Ozs7QUEyQnJELE1BQU0sT0FBTyxtQkFBbUI7OEdBQW5CLG1CQUFtQjsrR0FBbkIsbUJBQW1CLGlCQXZCNUIsZUFBZTtZQUNmLG9CQUFvQjtZQUNwQix3QkFBd0IsYUFHeEIsWUFBWTtZQUNaLGNBQWM7WUFDZCxlQUFlLHNCQUVmLG1CQUFtQjtZQUNuQixtQkFBbUI7WUFDbkIsa0JBQWtCO1lBQ2xCLGdCQUFnQjtZQUNoQixvQkFBb0IsNkRBT1osZUFBZSxFQUFFLHdCQUF3QjsrR0FHeEMsbUJBQW1CLGFBRm5CLENBQUMsWUFBWSxDQUFDLFlBaEJ2QixZQUFZO1lBQ1osY0FBYztZQUNkLGVBQWU7WUFDZixlQUFlLENBQUMsUUFBUSxFQUFFO1lBQzFCLG1CQUFtQjtZQUNuQixtQkFBbUI7WUFDbkIsa0JBQWtCO1lBQ2xCLGdCQUFnQjtZQUNoQixvQkFBb0I7WUFDcEIsV0FBVyxDQUFDLFVBQVUsQ0FDcEIsVUFBVSxDQUFDLGtCQUFrQixFQUM3QixVQUFVLENBQUMsYUFBYSxDQUN6QjtZQUNELGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQzs7MkZBS2hDLG1CQUFtQjtrQkF6Qi9CLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFO3dCQUNaLGVBQWU7d0JBQ2Ysb0JBQW9CO3dCQUNwQix3QkFBd0I7cUJBQ3pCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLGNBQWM7d0JBQ2QsZUFBZTt3QkFDZixlQUFlLENBQUMsUUFBUSxFQUFFO3dCQUMxQixtQkFBbUI7d0JBQ25CLG1CQUFtQjt3QkFDbkIsa0JBQWtCO3dCQUNsQixnQkFBZ0I7d0JBQ2hCLG9CQUFvQjt3QkFDcEIsV0FBVyxDQUFDLFVBQVUsQ0FDcEIsVUFBVSxDQUFDLGtCQUFrQixFQUM3QixVQUFVLENBQUMsYUFBYSxDQUN6Qjt3QkFDRCxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUM7cUJBQzFDO29CQUNELE9BQU8sRUFBRSxDQUFDLGVBQWUsRUFBRSx3QkFBd0IsQ0FBQztvQkFDcEQsU0FBUyxFQUFFLENBQUMsWUFBWSxDQUFDO2lCQUMxQjs7QUFFRCxjQUFjLDJCQUEyQixDQUFBO0FBQ3pDLGNBQWMsZ0JBQWdCLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBNYXROYXRpdmVEYXRlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSdcbmltcG9ydCB7IE1hdERhdGVwaWNrZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kYXRlcGlja2VyJ1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCdcbmltcG9ydCB7IFdpemFyZENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy93aXphcmQvd2l6YXJkLmNvbXBvbmVudCdcbmltcG9ydCB7IFdpemFyZEZpZWxkQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3dpemFyZC1maWVsZC93aXphcmQtZmllbGQuY29tcG9uZW50J1xuaW1wb3J0IHsgVWlJbnB1dHNNb2R1bGUgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9saWJzL3VpL2lucHV0cy9zcmMnXG5pbXBvcnQgeyBVaVdpZGdldHNNb2R1bGUgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9saWJzL3VpL3dpZGdldHMvc3JjJ1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSdcbmltcG9ydCB7IFdpemFyZFN1bW1hcml6ZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy93aXphcmQtc3VtbWFyaXplL3dpemFyZC1zdW1tYXJpemUuY29tcG9uZW50J1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xuaW1wb3J0IHsgSHR0cENsaWVudE1vZHVsZSwgSHR0cENsaWVudFhzcmZNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCdcbmltcG9ydCB7IFN0b3JlTW9kdWxlIH0gZnJvbSAnQG5ncngvc3RvcmUnXG5pbXBvcnQgeyBFZmZlY3RzTW9kdWxlIH0gZnJvbSAnQG5ncngvZWZmZWN0cydcbmltcG9ydCAqIGFzIGZyb21FZGl0b3IgZnJvbSAnLi8rc3RhdGUvZWRpdG9yLnJlZHVjZXInXG5pbXBvcnQgeyBFZGl0b3JFZmZlY3RzIH0gZnJvbSAnLi8rc3RhdGUvZWRpdG9yLmVmZmVjdHMnXG5pbXBvcnQgeyBFZGl0b3JGYWNhZGUgfSBmcm9tICcuLytzdGF0ZS9lZGl0b3IuZmFjYWRlJ1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBXaXphcmRDb21wb25lbnQsXG4gICAgV2l6YXJkRmllbGRDb21wb25lbnQsXG4gICAgV2l6YXJkU3VtbWFyaXplQ29tcG9uZW50LFxuICBdLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFVpSW5wdXRzTW9kdWxlLFxuICAgIFVpV2lkZ2V0c01vZHVsZSxcbiAgICBUcmFuc2xhdGVNb2R1bGUuZm9yQ2hpbGQoKSxcbiAgICBNYXREYXRlcGlja2VyTW9kdWxlLFxuICAgIE1hdE5hdGl2ZURhdGVNb2R1bGUsXG4gICAgTWF0Rm9ybUZpZWxkTW9kdWxlLFxuICAgIEh0dHBDbGllbnRNb2R1bGUsXG4gICAgSHR0cENsaWVudFhzcmZNb2R1bGUsXG4gICAgU3RvcmVNb2R1bGUuZm9yRmVhdHVyZShcbiAgICAgIGZyb21FZGl0b3IuRURJVE9SX0ZFQVRVUkVfS0VZLFxuICAgICAgZnJvbUVkaXRvci5lZGl0b3JSZWR1Y2VyXG4gICAgKSxcbiAgICBFZmZlY3RzTW9kdWxlLmZvckZlYXR1cmUoW0VkaXRvckVmZmVjdHNdKSxcbiAgXSxcbiAgZXhwb3J0czogW1dpemFyZENvbXBvbmVudCwgV2l6YXJkU3VtbWFyaXplQ29tcG9uZW50XSxcbiAgcHJvdmlkZXJzOiBbRWRpdG9yRmFjYWRlXSxcbn0pXG5leHBvcnQgY2xhc3MgRmVhdHVyZUVkaXRvck1vZHVsZSB7fVxuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy93aXphcmQuc2VydmljZSdcbmV4cG9ydCAqIGZyb20gJy4vbW9kZWxzL2luZGV4J1xuIl19
@@ -0,0 +1,34 @@
1
+ export const DEFAULT_FIELDS = [
2
+ {
3
+ model: 'title',
4
+ formFieldConfig: {
5
+ labelKey: 'Metadata title',
6
+ type: 'text',
7
+ },
8
+ },
9
+ {
10
+ model: 'abstract',
11
+ formFieldConfig: {
12
+ labelKey: 'Abstract',
13
+ type: 'rich',
14
+ },
15
+ },
16
+ {
17
+ model: 'uniqueIdentifier',
18
+ formFieldConfig: {
19
+ labelKey: 'Unique identifier',
20
+ type: 'text',
21
+ locked: true,
22
+ },
23
+ },
24
+ {
25
+ model: 'recordUpdated',
26
+ formFieldConfig: {
27
+ labelKey: 'Record Updated',
28
+ type: 'text',
29
+ locked: true,
30
+ },
31
+ onSaveProcess: '${dateNow()}',
32
+ },
33
+ ];
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGRzLmNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZmVhdHVyZS9lZGl0b3Ivc3JjL2xpYi9maWVsZHMuY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBdUI7SUFDaEQ7UUFDRSxLQUFLLEVBQUUsT0FBTztRQUNkLGVBQWUsRUFBRTtZQUNmLFFBQVEsRUFBRSxnQkFBZ0I7WUFDMUIsSUFBSSxFQUFFLE1BQU07U0FDYjtLQUNGO0lBQ0Q7UUFDRSxLQUFLLEVBQUUsVUFBVTtRQUNqQixlQUFlLEVBQUU7WUFDZixRQUFRLEVBQUUsVUFBVTtZQUNwQixJQUFJLEVBQUUsTUFBTTtTQUNiO0tBQ0Y7SUFDRDtRQUNFLEtBQUssRUFBRSxrQkFBa0I7UUFDekIsZUFBZSxFQUFFO1lBQ2YsUUFBUSxFQUFFLG1CQUFtQjtZQUM3QixJQUFJLEVBQUUsTUFBTTtZQUNaLE1BQU0sRUFBRSxJQUFJO1NBQ2I7S0FDRjtJQUNEO1FBQ0UsS0FBSyxFQUFFLGVBQWU7UUFDdEIsZUFBZSxFQUFFO1lBQ2YsUUFBUSxFQUFFLGdCQUFnQjtZQUMxQixJQUFJLEVBQUUsTUFBTTtZQUNaLE1BQU0sRUFBRSxJQUFJO1NBQ2I7UUFDRCxhQUFhLEVBQUUsY0FBYztLQUM5QjtDQUNGLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFZGl0b3JGaWVsZHNDb25maWcgfSBmcm9tICcuL21vZGVscy9maWVsZHMubW9kZWwnXG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX0ZJRUxEUzogRWRpdG9yRmllbGRzQ29uZmlnID0gW1xuICB7XG4gICAgbW9kZWw6ICd0aXRsZScsXG4gICAgZm9ybUZpZWxkQ29uZmlnOiB7XG4gICAgICBsYWJlbEtleTogJ01ldGFkYXRhIHRpdGxlJyxcbiAgICAgIHR5cGU6ICd0ZXh0JyxcbiAgICB9LFxuICB9LFxuICB7XG4gICAgbW9kZWw6ICdhYnN0cmFjdCcsXG4gICAgZm9ybUZpZWxkQ29uZmlnOiB7XG4gICAgICBsYWJlbEtleTogJ0Fic3RyYWN0JyxcbiAgICAgIHR5cGU6ICdyaWNoJyxcbiAgICB9LFxuICB9LFxuICB7XG4gICAgbW9kZWw6ICd1bmlxdWVJZGVudGlmaWVyJyxcbiAgICBmb3JtRmllbGRDb25maWc6IHtcbiAgICAgIGxhYmVsS2V5OiAnVW5pcXVlIGlkZW50aWZpZXInLFxuICAgICAgdHlwZTogJ3RleHQnLFxuICAgICAgbG9ja2VkOiB0cnVlLFxuICAgIH0sXG4gIH0sXG4gIHtcbiAgICBtb2RlbDogJ3JlY29yZFVwZGF0ZWQnLFxuICAgIGZvcm1GaWVsZENvbmZpZzoge1xuICAgICAgbGFiZWxLZXk6ICdSZWNvcmQgVXBkYXRlZCcsXG4gICAgICB0eXBlOiAndGV4dCcsXG4gICAgICBsb2NrZWQ6IHRydWUsXG4gICAgfSxcbiAgICBvblNhdmVQcm9jZXNzOiAnJHtkYXRlTm93KCl9JyxcbiAgfSxcbl1cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGRzLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9mZWF0dXJlL2VkaXRvci9zcmMvbGliL21vZGVscy9maWVsZHMubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZvcm1GaWVsZENvbmZpZyB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvaW5wdXRzL3NyYydcblxuLy8gRXhwcmVzc2lvbnMgc2hvdWxkIGJlIGVuY2xvc2VkIGluIGAke31gIHRvIGJlIHJlY29nbml6ZWQgYXMgc3VjaFxuLy8gZWcuICR7ZGF0ZU5vdygpfVxuZXhwb3J0IHR5cGUgRWRpdG9yRmllbGRFeHByZXNzaW9uID0gYCRcXHske3N0cmluZ319YFxuXG5leHBvcnQgaW50ZXJmYWNlIEVkaXRvckZpZWxkQ29uZmlnIHtcbiAgLy8gY29uZmlndXJhdGlvbiBvZiB0aGUgZm9ybSBmaWVsZCB1c2VkIGFzIHByZXNlbnRhdGlvbjsgb3B0aW9uYWwsIG5vdGhpbmcgc2hvd24gaWYgbm90IGRlZmluZWRcbiAgZm9ybUZpZWxkQ29uZmlnPzogRm9ybUZpZWxkQ29uZmlnXG5cbiAgLy8gbmFtZSBvZiB0aGUgdGFyZ2V0IGZpZWxkIGluIHRoZSByZWNvcmQ7IHdpbGwgbm90IGNoYW5nZSB0aGUgcmVjb3JkIGRpcmVjdGx5IGlmIG5vdCBkZWZpbmVkXG4gIG1vZGVsPzogc3RyaW5nXG5cbiAgLy8gYSBoaWRkZW4gZmllbGQgd29uJ3Qgc2hvdyBidXQgY2FuIHN0aWxsIGJlIHVzZWQgdG8gbW9kaWZ5IHRoZSByZWNvcmRcbiAgLy8gRklYTUU6IGN1cnJlbnRseSB0aGlzIGlzIHJlZHVuZGFudCB3aXRoIGFuIGFic2VuY2Ugb2YgZm9ybUZpZWxkQ29uZmlnIGJ1dCBuZWNlc3NhcnkgZm9yIGNsYXJpdHlcbiAgaGlkZGVuPzogYm9vbGVhblxuXG4gIC8vIHRoZSByZXN1bHQgb2YgdGhpcyBleHByZXNzaW9uIHdpbGwgcmVwbGFjZSB0aGUgZmllbGQgdmFsdWUgb24gc2F2ZVxuICBvblNhdmVQcm9jZXNzPzogRWRpdG9yRmllbGRFeHByZXNzaW9uXG59XG5cbmV4cG9ydCB0eXBlIEVkaXRvckZpZWxkc0NvbmZpZyA9IEVkaXRvckZpZWxkQ29uZmlnW11cblxuZXhwb3J0IHR5cGUgRWRpdG9yRmllbGRWYWx1ZSA9IHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4gfCB1bmtub3duXG5cbmV4cG9ydCBpbnRlcmZhY2UgRWRpdG9yRmllbGRTdGF0ZSB7XG4gIGNvbmZpZzogRWRpdG9yRmllbGRDb25maWdcbiAgdmFsdWU6IHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4gfCB1bmtub3duXG59XG4iXX0=
@@ -1,26 +1,30 @@
1
1
  import { CommonModule } from '@angular/common';
2
2
  import { ChangeDetectionStrategy, Component } from '@angular/core';
3
- import { EditorService } from '../services/editor.service';
4
3
  import { UiInputsModule } from '../../../../../../libs/ui/inputs/src';
4
+ import { EditorFacade } from '../+state/editor.facade';
5
5
  import * as i0 from "@angular/core";
6
- import * as i1 from "../services/editor.service";
6
+ import * as i1 from "../+state/editor.facade";
7
7
  import * as i2 from "@angular/common";
8
8
  import * as i3 from "../../../../../ui/inputs/src/lib/form-field/form-field.component";
9
9
  export class RecordFormComponent {
10
- constructor(editorService) {
11
- this.editorService = editorService;
10
+ constructor(facade) {
11
+ this.facade = facade;
12
+ this.fields$ = this.facade.recordFields$;
12
13
  }
13
- handleFieldValueChange(fieldName, value) {
14
- this.editorService.updateRecordField(fieldName, value);
14
+ handleFieldValueChange(field, newValue) {
15
+ if (!field.config.model) {
16
+ return;
17
+ }
18
+ this.facade.updateRecordField(field.config.model, newValue);
15
19
  }
16
20
  fieldTracker(index, field) {
17
21
  return field.config.model;
18
22
  }
19
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: RecordFormComponent, deps: [{ token: i1.EditorService }], target: i0.ɵɵFactoryTarget.Component }); }
20
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: RecordFormComponent, isStandalone: true, selector: "gn-ui-record-form", ngImport: i0, template: "<div class=\"flex flex-col gap-6\">\n <gn-ui-form-field\n *ngFor=\"let field of editorService.fields$ | async; trackBy: fieldTracker\"\n [config]=\"field.config\"\n [value]=\"field.value\"\n (valueChange)=\"handleFieldValueChange(field.config.model, $event)\"\n ></gn-ui-form-field>\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: "ngmodule", type: UiInputsModule }, { kind: "component", type: i3.FormFieldComponent, selector: "gn-ui-form-field", inputs: ["config", "value"], outputs: ["valueChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
23
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: RecordFormComponent, deps: [{ token: i1.EditorFacade }], target: i0.ɵɵFactoryTarget.Component }); }
24
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: RecordFormComponent, isStandalone: true, selector: "gn-ui-record-form", ngImport: i0, template: "<div class=\"flex flex-col gap-6 p-6\">\n <ng-container *ngFor=\"let field of fields$ | async; trackBy: fieldTracker\">\n <gn-ui-form-field\n *ngIf=\"field.config.formFieldConfig && !field.config.hidden\"\n [config]=\"field.config.formFieldConfig\"\n [value]=\"field.value\"\n (valueChange)=\"handleFieldValueChange(field, $event)\"\n ></gn-ui-form-field>\n </ng-container>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "ngmodule", type: UiInputsModule }, { kind: "component", type: i3.FormFieldComponent, selector: "gn-ui-form-field", inputs: ["config", "value"], outputs: ["valueChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
21
25
  }
22
26
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: RecordFormComponent, decorators: [{
23
27
  type: Component,
24
- args: [{ selector: 'gn-ui-record-form', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CommonModule, UiInputsModule], template: "<div class=\"flex flex-col gap-6\">\n <gn-ui-form-field\n *ngFor=\"let field of editorService.fields$ | async; trackBy: fieldTracker\"\n [config]=\"field.config\"\n [value]=\"field.value\"\n (valueChange)=\"handleFieldValueChange(field.config.model, $event)\"\n ></gn-ui-form-field>\n</div>\n" }]
25
- }], ctorParameters: function () { return [{ type: i1.EditorService }]; } });
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjb3JkLWZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9mZWF0dXJlL2VkaXRvci9zcmMvbGliL3JlY29yZC1mb3JtL3JlY29yZC1mb3JtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZmVhdHVyZS9lZGl0b3Ivc3JjL2xpYi9yZWNvcmQtZm9ybS9yZWNvcmQtZm9ybS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDOUMsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUNsRSxPQUFPLEVBQUUsYUFBYSxFQUFhLE1BQU0sNEJBQTRCLENBQUE7QUFDckUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHNDQUFzQyxDQUFBOzs7OztBQVVyRSxNQUFNLE9BQU8sbUJBQW1CO0lBQzlCLFlBQW1CLGFBQTRCO1FBQTVCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO0lBQUcsQ0FBQztJQUVuRCxzQkFBc0IsQ0FBQyxTQUFpQixFQUFFLEtBQWM7UUFDdEQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLENBQUE7SUFDeEQsQ0FBQztJQUVELFlBQVksQ0FBQyxLQUFhLEVBQUUsS0FBZ0I7UUFDMUMsT0FBTyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQTtJQUMzQixDQUFDOzhHQVRVLG1CQUFtQjtrR0FBbkIsbUJBQW1CLDZFQ2JoQyxvVEFRQSx5RERHWSxZQUFZLGdOQUFFLGNBQWM7OzJGQUUzQixtQkFBbUI7a0JBUi9CLFNBQVM7K0JBQ0UsbUJBQW1CLG1CQUdaLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbidcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgRWRpdG9yU2VydmljZSwgRm9ybUZpZWxkIH0gZnJvbSAnLi4vc2VydmljZXMvZWRpdG9yLnNlcnZpY2UnXG5pbXBvcnQgeyBVaUlucHV0c01vZHVsZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvaW5wdXRzL3NyYydcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ24tdWktcmVjb3JkLWZvcm0nLFxuICB0ZW1wbGF0ZVVybDogJy4vcmVjb3JkLWZvcm0uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9yZWNvcmQtZm9ybS5jb21wb25lbnQuY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBVaUlucHV0c01vZHVsZV0sXG59KVxuZXhwb3J0IGNsYXNzIFJlY29yZEZvcm1Db21wb25lbnQge1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgZWRpdG9yU2VydmljZTogRWRpdG9yU2VydmljZSkge31cblxuICBoYW5kbGVGaWVsZFZhbHVlQ2hhbmdlKGZpZWxkTmFtZTogc3RyaW5nLCB2YWx1ZTogdW5rbm93bikge1xuICAgIHRoaXMuZWRpdG9yU2VydmljZS51cGRhdGVSZWNvcmRGaWVsZChmaWVsZE5hbWUsIHZhbHVlKVxuICB9XG5cbiAgZmllbGRUcmFja2VyKGluZGV4OiBudW1iZXIsIGZpZWxkOiBGb3JtRmllbGQpIHtcbiAgICByZXR1cm4gZmllbGQuY29uZmlnLm1vZGVsXG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGdhcC02XCI+XG4gIDxnbi11aS1mb3JtLWZpZWxkXG4gICAgKm5nRm9yPVwibGV0IGZpZWxkIG9mIGVkaXRvclNlcnZpY2UuZmllbGRzJCB8IGFzeW5jOyB0cmFja0J5OiBmaWVsZFRyYWNrZXJcIlxuICAgIFtjb25maWddPVwiZmllbGQuY29uZmlnXCJcbiAgICBbdmFsdWVdPVwiZmllbGQudmFsdWVcIlxuICAgICh2YWx1ZUNoYW5nZSk9XCJoYW5kbGVGaWVsZFZhbHVlQ2hhbmdlKGZpZWxkLmNvbmZpZy5tb2RlbCwgJGV2ZW50KVwiXG4gID48L2duLXVpLWZvcm0tZmllbGQ+XG48L2Rpdj5cbiJdfQ==
28
+ args: [{ selector: 'gn-ui-record-form', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CommonModule, UiInputsModule], template: "<div class=\"flex flex-col gap-6 p-6\">\n <ng-container *ngFor=\"let field of fields$ | async; trackBy: fieldTracker\">\n <gn-ui-form-field\n *ngIf=\"field.config.formFieldConfig && !field.config.hidden\"\n [config]=\"field.config.formFieldConfig\"\n [value]=\"field.value\"\n (valueChange)=\"handleFieldValueChange(field, $event)\"\n ></gn-ui-form-field>\n </ng-container>\n</div>\n" }]
29
+ }], ctorParameters: function () { return [{ type: i1.EditorFacade }]; } });
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjb3JkLWZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9mZWF0dXJlL2VkaXRvci9zcmMvbGliL3JlY29yZC1mb3JtL3JlY29yZC1mb3JtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZmVhdHVyZS9lZGl0b3Ivc3JjL2xpYi9yZWNvcmQtZm9ybS9yZWNvcmQtZm9ybS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDOUMsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUNsRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sc0NBQXNDLENBQUE7QUFDckUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFBOzs7OztBQVd0RCxNQUFNLE9BQU8sbUJBQW1CO0lBRzlCLFlBQW1CLE1BQW9CO1FBQXBCLFdBQU0sR0FBTixNQUFNLENBQWM7UUFGdkMsWUFBTyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFBO0lBRU8sQ0FBQztJQUUzQyxzQkFBc0IsQ0FBQyxLQUF1QixFQUFFLFFBQTBCO1FBQ3hFLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRTtZQUN2QixPQUFNO1NBQ1A7UUFDRCxJQUFJLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFBO0lBQzdELENBQUM7SUFFRCxZQUFZLENBQUMsS0FBYSxFQUFFLEtBQXVCO1FBQ2pELE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUE7SUFDM0IsQ0FBQzs4R0FkVSxtQkFBbUI7a0dBQW5CLG1CQUFtQiw2RUNkaEMsNlpBVUEseURERVksWUFBWSxvVEFBRSxjQUFjOzsyRkFFM0IsbUJBQW1CO2tCQVIvQixTQUFTOytCQUNFLG1CQUFtQixtQkFHWix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nXG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IFVpSW5wdXRzTW9kdWxlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS9pbnB1dHMvc3JjJ1xuaW1wb3J0IHsgRWRpdG9yRmFjYWRlIH0gZnJvbSAnLi4vK3N0YXRlL2VkaXRvci5mYWNhZGUnXG5pbXBvcnQgeyBFZGl0b3JGaWVsZFN0YXRlLCBFZGl0b3JGaWVsZFZhbHVlIH0gZnJvbSAnLi4vbW9kZWxzL2ZpZWxkcy5tb2RlbCdcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ24tdWktcmVjb3JkLWZvcm0nLFxuICB0ZW1wbGF0ZVVybDogJy4vcmVjb3JkLWZvcm0uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9yZWNvcmQtZm9ybS5jb21wb25lbnQuY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBVaUlucHV0c01vZHVsZV0sXG59KVxuZXhwb3J0IGNsYXNzIFJlY29yZEZvcm1Db21wb25lbnQge1xuICBmaWVsZHMkID0gdGhpcy5mYWNhZGUucmVjb3JkRmllbGRzJFxuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBmYWNhZGU6IEVkaXRvckZhY2FkZSkge31cblxuICBoYW5kbGVGaWVsZFZhbHVlQ2hhbmdlKGZpZWxkOiBFZGl0b3JGaWVsZFN0YXRlLCBuZXdWYWx1ZTogRWRpdG9yRmllbGRWYWx1ZSkge1xuICAgIGlmICghZmllbGQuY29uZmlnLm1vZGVsKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgdGhpcy5mYWNhZGUudXBkYXRlUmVjb3JkRmllbGQoZmllbGQuY29uZmlnLm1vZGVsLCBuZXdWYWx1ZSlcbiAgfVxuXG4gIGZpZWxkVHJhY2tlcihpbmRleDogbnVtYmVyLCBmaWVsZDogRWRpdG9yRmllbGRTdGF0ZSkge1xuICAgIHJldHVybiBmaWVsZC5jb25maWcubW9kZWxcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgZ2FwLTYgcC02XCI+XG4gIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGZpZWxkIG9mIGZpZWxkcyQgfCBhc3luYzsgdHJhY2tCeTogZmllbGRUcmFja2VyXCI+XG4gICAgPGduLXVpLWZvcm0tZmllbGRcbiAgICAgICpuZ0lmPVwiZmllbGQuY29uZmlnLmZvcm1GaWVsZENvbmZpZyAmJiAhZmllbGQuY29uZmlnLmhpZGRlblwiXG4gICAgICBbY29uZmlnXT1cImZpZWxkLmNvbmZpZy5mb3JtRmllbGRDb25maWdcIlxuICAgICAgW3ZhbHVlXT1cImZpZWxkLnZhbHVlXCJcbiAgICAgICh2YWx1ZUNoYW5nZSk9XCJoYW5kbGVGaWVsZFZhbHVlQ2hhbmdlKGZpZWxkLCAkZXZlbnQpXCJcbiAgICA+PC9nbi11aS1mb3JtLWZpZWxkPlxuICA8L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuIl19
@@ -1,9 +1,9 @@
1
1
  import { Inject, Injectable, Optional } from '@angular/core';
2
2
  import { toModel, toXml } from '../../../../../../libs/api/metadata-converter/src';
3
3
  import { Configuration } from '../../../../../../libs/data-access/gn4/src';
4
- import { BehaviorSubject } from 'rxjs';
5
- import { finalize, map, switchMap, take, tap } from 'rxjs/operators';
4
+ import { map } from 'rxjs/operators';
6
5
  import { HttpClient } from '@angular/common/http';
6
+ import { evaluate } from '../expressions';
7
7
  import * as i0 from "@angular/core";
8
8
  import * as i1 from "@angular/common/http";
9
9
  import * as i2 from "../../../../../../libs/data-access/gn4/src";
@@ -11,32 +11,9 @@ export class EditorService {
11
11
  constructor(http, apiConfiguration) {
12
12
  this.http = http;
13
13
  this.apiConfiguration = apiConfiguration;
14
- this.record$ = new BehaviorSubject(null);
15
- this.fieldsConfig = [
16
- {
17
- model: 'title',
18
- labelKey: 'Metadata title',
19
- type: 'text',
20
- },
21
- {
22
- model: 'abstract',
23
- labelKey: 'Abstract',
24
- type: 'rich',
25
- },
26
- {
27
- model: 'uniqueIdentifier',
28
- labelKey: 'Unique identifier',
29
- type: 'text',
30
- locked: true,
31
- },
32
- ];
33
14
  this.apiUrl = `${this.apiConfiguration?.basePath || '/geonetwork/srv/api'}`;
34
- this.fields$ = this.record$.pipe(map((record) => this.fieldsConfig.map((fieldConfig) => ({
35
- config: fieldConfig,
36
- value: record?.[fieldConfig.model] || null,
37
- }))));
38
- this.saving$ = new BehaviorSubject(false);
39
15
  }
16
+ // TODO: use the catalog repository instead
40
17
  loadRecordByUuid(uuid) {
41
18
  return this.http
42
19
  .get(`${this.apiUrl}/records/${uuid}/formatters/xml`, {
@@ -47,27 +24,28 @@ export class EditorService {
47
24
  })
48
25
  .pipe(map((response) => toModel(response.toString())));
49
26
  }
50
- saveCurrentRecord() {
51
- return this.record$.pipe(take(1), tap((record) => {
52
- if (!record)
53
- throw new Error('Save record failed: no record currently open');
54
- this.saving$.next(true);
55
- }), switchMap((record) => this.http.put(`${this.apiUrl}/records?metadataType=METADATA&uuidProcessing=OVERWRITE&transformWith=_none_&publishToAll=on`, toXml(record), {
27
+ // returns the record as it was when saved
28
+ saveRecord(record, fieldsConfig) {
29
+ const savedRecord = { ...record };
30
+ // run onSave processes
31
+ for (const field of fieldsConfig) {
32
+ if (field.onSaveProcess && field.model) {
33
+ const evaluator = evaluate(field.onSaveProcess);
34
+ savedRecord[field.model] = evaluator({
35
+ config: field,
36
+ value: record[field.model],
37
+ });
38
+ }
39
+ }
40
+ // TODO: use the catalog repository instead
41
+ return this.http
42
+ .put(`${this.apiUrl}/records?metadataType=METADATA&uuidProcessing=OVERWRITE&transformWith=_none_&publishToAll=on`, toXml(savedRecord), {
56
43
  headers: {
57
44
  'Content-Type': 'application/xml',
58
45
  },
59
46
  withCredentials: true,
60
- })), map(() => undefined), finalize(() => {
61
- this.saving$.next(false);
62
- }));
63
- }
64
- setCurrentRecord(record) {
65
- this.record$.next(record);
66
- }
67
- updateRecordField(fieldName, value) {
68
- this.record$
69
- .pipe(take(1), map((record) => ({ ...record, [fieldName]: value })))
70
- .subscribe((record) => this.record$.next(record));
47
+ })
48
+ .pipe(map(() => savedRecord));
71
49
  }
72
50
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: EditorService, deps: [{ token: i1.HttpClient }, { token: Configuration, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
73
51
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: EditorService, providedIn: 'root' }); }
@@ -83,4 +61,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
83
61
  type: Inject,
84
62
  args: [Configuration]
85
63
  }] }]; } });
86
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ZlYXR1cmUvZWRpdG9yL3NyYy9saWIvc2VydmljZXMvZWRpdG9yLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQzVELE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sbURBQW1ELENBQUE7QUFDbEYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDRDQUE0QyxDQUFBO0FBQzFFLE9BQU8sRUFBRSxlQUFlLEVBQWMsTUFBTSxNQUFNLENBQUE7QUFDbEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUNwRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUE7Ozs7QUFZakQsTUFBTSxPQUFPLGFBQWE7SUFpQ3hCLFlBQ1UsSUFBZ0IsRUFHaEIsZ0JBQStCO1FBSC9CLFNBQUksR0FBSixJQUFJLENBQVk7UUFHaEIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFlO1FBcENqQyxZQUFPLEdBQUcsSUFBSSxlQUFlLENBQXVCLElBQUksQ0FBQyxDQUFBO1FBQ3pELGlCQUFZLEdBQXNCO1lBQ3hDO2dCQUNFLEtBQUssRUFBRSxPQUFPO2dCQUNkLFFBQVEsRUFBRSxnQkFBZ0I7Z0JBQzFCLElBQUksRUFBRSxNQUFNO2FBQ2I7WUFDRDtnQkFDRSxLQUFLLEVBQUUsVUFBVTtnQkFDakIsUUFBUSxFQUFFLFVBQVU7Z0JBQ3BCLElBQUksRUFBRSxNQUFNO2FBQ2I7WUFDRDtnQkFDRSxLQUFLLEVBQUUsa0JBQWtCO2dCQUN6QixRQUFRLEVBQUUsbUJBQW1CO2dCQUM3QixJQUFJLEVBQUUsTUFBTTtn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QW9DSSxRQUFROzswQkFDUixNQUFNOzJCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IHRvTW9kZWwsIHRvWG1sIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hcGkvbWV0YWRhdGEtY29udmVydGVyL3NyYydcbmltcG9ydCB7IENvbmZpZ3VyYXRpb24gfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2RhdGEtYWNjZXNzL2duNC9zcmMnXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJ1xuaW1wb3J0IHsgZmluYWxpemUsIG1hcCwgc3dpdGNoTWFwLCB0YWtlLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycydcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCdcbmltcG9ydCB7IEZvcm1GaWVsZENvbmZpZyB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvaW5wdXRzL3NyYydcbmltcG9ydCB7IENhdGFsb2dSZWNvcmQgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9tb2RlbC9yZWNvcmQnXG5cbmV4cG9ydCBpbnRlcmZhY2UgRm9ybUZpZWxkIHtcbiAgY29uZmlnOiBGb3JtRmllbGRDb25maWdcbiAgdmFsdWU6IHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4gfCB1bmtub3duXG59XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBFZGl0b3JTZXJ2aWNlIHtcbiAgcHJpdmF0ZSByZWNvcmQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxDYXRhbG9nUmVjb3JkIHwgbnVsbD4obnVsbClcbiAgcHJpdmF0ZSBmaWVsZHNDb25maWc6IEZvcm1GaWVsZENvbmZpZ1tdID0gW1xuICAgIHtcbiAgICAgIG1vZGVsOiAndGl0bGUnLFxuICAgICAgbGFiZWxLZXk6ICdNZXRhZGF0YSB0aXRsZScsXG4gICAgICB0eXBlOiAndGV4dCcsXG4gICAgfSxcbiAgICB7XG4gICAgICBtb2RlbDogJ2Fic3RyYWN0JyxcbiAgICAgIGxhYmVsS2V5OiAnQWJzdHJhY3QnLFxuICAgICAgdHlwZTogJ3JpY2gnLFxuICAgIH0sXG4gICAge1xuICAgICAgbW9kZWw6ICd1bmlxdWVJZGVudGlmaWVyJyxcbiAgICAgIGxhYmVsS2V5OiAnVW5pcXVlIGlkZW50aWZpZXInLFxuICAgICAgdHlwZTogJ3RleHQnLFxuICAgICAgbG9ja2VkOiB0cnVlLFxuICAgIH0sXG4gIF1cblxuICBwcml2YXRlIGFwaVVybCA9IGAke3RoaXMuYXBpQ29uZmlndXJhdGlvbj8uYmFzZVBhdGggfHwgJy9nZW9uZXR3b3JrL3Nydi9hcGknfWBcblxuICBmaWVsZHMkOiBPYnNlcnZhYmxlPEZvcm1GaWVsZFtdPiA9IHRoaXMucmVjb3JkJC5waXBlKFxuICAgIG1hcCgocmVjb3JkKSA9PlxuICAgICAgdGhpcy5maWVsZHNDb25maWcubWFwKChmaWVsZENvbmZpZykgPT4gKHtcbiAgICAgICAgY29uZmlnOiBmaWVsZENvbmZpZyxcbiAgICAgICAgdmFsdWU6IHJlY29yZD8uW2ZpZWxkQ29uZmlnLm1vZGVsXSB8fCBudWxsLFxuICAgICAgfSkpXG4gICAgKVxuICApXG4gIHNhdmluZyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcbiAgICBAT3B0aW9uYWwoKVxuICAgIEBJbmplY3QoQ29uZmlndXJhdGlvbilcbiAgICBwcml2YXRlIGFwaUNvbmZpZ3VyYXRpb246IENvbmZpZ3VyYXRpb25cbiAgKSB7fVxuICBsb2FkUmVjb3JkQnlVdWlkKHV1aWQ6IHN0cmluZyk6IE9ic2VydmFibGU8Q2F0YWxvZ1JlY29yZD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5nZXQoYCR7dGhpcy5hcGlVcmx9L3JlY29yZHMvJHt1dWlkfS9mb3JtYXR0ZXJzL3htbGAsIHtcbiAgICAgICAgcmVzcG9uc2VUeXBlOiAndGV4dCcsXG4gICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICBBY2NlcHQ6ICdhcHBsaWNhdGlvbi94bWwnLFxuICAgICAgICB9LFxuICAgICAgfSlcbiAgICAgIC5waXBlKG1hcCgocmVzcG9uc2UpID0+IHRvTW9kZWwocmVzcG9uc2UudG9TdHJpbmcoKSkpKVxuICB9XG5cbiAgc2F2ZUN1cnJlbnRSZWNvcmQoKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMucmVjb3JkJC5waXBlKFxuICAgICAgdGFrZSgxKSxcbiAgICAgIHRhcCgocmVjb3JkKSA9PiB7XG4gICAgICAgIGlmICghcmVjb3JkKVxuICAgICAgICAgIHRocm93IG5ldyBFcnJvcignU2F2ZSByZWNvcmQgZmFpbGVkOiBubyByZWNvcmQgY3VycmVudGx5IG9wZW4nKVxuICAgICAgICB0aGlzLnNhdmluZyQubmV4dCh0cnVlKVxuICAgICAgfSksXG4gICAgICBzd2l0Y2hNYXAoKHJlY29yZCkgPT5cbiAgICAgICAgdGhpcy5odHRwLnB1dChcbiAgICAgICAgICBgJHt0aGlzLmFwaVVybH0vcmVjb3Jkcz9tZXRhZGF0YVR5cGU9TUVUQURBVEEmdXVpZFByb2Nlc3Npbmc9T1ZFUldSSVRFJnRyYW5zZm9ybVdpdGg9X25vbmVfJnB1Ymxpc2hUb0FsbD1vbmAsXG4gICAgICAgICAgdG9YbWwocmVjb3JkKSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24veG1sJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgICAgICAgfVxuICAgICAgICApXG4gICAgICApLFxuICAgICAgbWFwKCgpID0+IHVuZGVmaW5lZCksXG4gICAgICBmaW5hbGl6ZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuc2F2aW5nJC5uZXh0KGZhbHNlKVxuICAgICAgfSlcbiAgICApXG4gIH1cblxuICBzZXRDdXJyZW50UmVjb3JkKHJlY29yZDogQ2F0YWxvZ1JlY29yZCkge1xuICAgIHRoaXMucmVjb3JkJC5uZXh0KHJlY29yZClcbiAgfVxuXG4gIHVwZGF0ZVJlY29yZEZpZWxkKGZpZWxkTmFtZTogc3RyaW5nLCB2YWx1ZTogdW5rbm93bikge1xuICAgIHRoaXMucmVjb3JkJFxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2UoMSksXG4gICAgICAgIG1hcCgocmVjb3JkKSA9PiAoeyAuLi5yZWNvcmQsIFtmaWVsZE5hbWVdOiB2YWx1ZSB9KSlcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKHJlY29yZCkgPT4gdGhpcy5yZWNvcmQkLm5leHQocmVjb3JkKSlcbiAgfVxufVxuIl19
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ZlYXR1cmUvZWRpdG9yL3NyYy9saWIvc2VydmljZXMvZWRpdG9yLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQzVELE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sbURBQW1ELENBQUE7QUFDbEYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDRDQUE0QyxDQUFBO0FBRTFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUNwQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFHakQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFBOzs7O0FBS3pDLE1BQU0sT0FBTyxhQUFhO0lBR3hCLFlBQ1UsSUFBZ0IsRUFHaEIsZ0JBQStCO1FBSC9CLFNBQUksR0FBSixJQUFJLENBQVk7UUFHaEIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFlO1FBTmpDLFdBQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxRQUFRLElBQUkscUJBQXFCLEVBQUUsQ0FBQTtJQU8zRSxDQUFDO0lBRUosMkNBQTJDO0lBQzNDLGdCQUFnQixDQUFDLElBQVk7UUFDM0IsT0FBTyxJQUFJLENBQUMsSUFBSTthQUNiLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLFlBQVksSUFBSSxpQkFBaUIsRUFBRTtZQUNwRCxZQUFZLEVBQUUsTUFBTTtZQUNwQixPQUFPLEVBQUU7Z0JBQ1AsTUFBTSxFQUFFLGlCQUFpQjthQUMxQjtTQUNGLENBQUM7YUFDRCxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQzFELENBQUM7SUFFRCwwQ0FBMEM7SUFDMUMsVUFBVSxDQUNSLE1BQXFCLEVBQ3JCLFlBQWdDO1FBRWhDLE1BQU0sV0FBVyxHQUFHLEVBQUUsR0FBRyxNQUFNLEVBQUUsQ0FBQTtRQUVqQyx1QkFBdUI7UUFDdkIsS0FBSyxNQUFNLEtBQUssSUFBSSxZQUFZLEVBQUU7WUFDaEMsSUFBSSxLQUFLLENBQUMsYUFBYSxJQUFJLEtBQUssQ0FBQyxLQUFLLEVBQUU7Z0JBQ3RDLE1BQU0sU0FBUyxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUE7Z0JBQy9DLFdBQVcsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsU0FBUyxDQUFDO29CQUNuQyxNQUFNLEVBQUUsS0FBSztvQkFDYixLQUFLLEVBQUUsTUFBTSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUM7aUJBQzNCLENBQUMsQ0FBQTthQUNIO1NBQ0Y7UUFFRCwyQ0FBMkM7UUFDM0MsT0FBTyxJQUFJLENBQUMsSUFBSTthQUNiLEdBQUcsQ0FDRixHQUFHLElBQUksQ0FBQyxNQUFNLDhGQUE4RixFQUM1RyxLQUFLLENBQUMsV0FBVyxDQUFDLEVBQ2xCO1lBQ0UsT0FBTyxFQUFFO2dCQUNQLGNBQWMsRUFBRSxpQkFBaUI7YUFDbEM7WUFDRCxlQUFlLEVBQUUsSUFBSTtTQUN0QixDQUNGO2FBQ0EsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFBO0lBQ2pDLENBQUM7OEdBckRVLGFBQWEsNENBTWQsYUFBYTtrSEFOWixhQUFhLGNBRlosTUFBTTs7MkZBRVAsYUFBYTtrQkFIekIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQU1JLFFBQVE7OzBCQUNSLE1BQU07MkJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgdG9Nb2RlbCwgdG9YbWwgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FwaS9tZXRhZGF0YS1jb252ZXJ0ZXIvc3JjJ1xuaW1wb3J0IHsgQ29uZmlndXJhdGlvbiB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZGF0YS1hY2Nlc3MvZ240L3NyYydcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJ1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnXG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnXG5pbXBvcnQgeyBDYXRhbG9nUmVjb3JkIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vZG9tYWluL3NyYy9saWIvbW9kZWwvcmVjb3JkJ1xuaW1wb3J0IHsgRWRpdG9yRmllbGRzQ29uZmlnIH0gZnJvbSAnLi4vbW9kZWxzL2ZpZWxkcy5tb2RlbCdcbmltcG9ydCB7IGV2YWx1YXRlIH0gZnJvbSAnLi4vZXhwcmVzc2lvbnMnXG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBFZGl0b3JTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBhcGlVcmwgPSBgJHt0aGlzLmFwaUNvbmZpZ3VyYXRpb24/LmJhc2VQYXRoIHx8ICcvZ2VvbmV0d29yay9zcnYvYXBpJ31gXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxuICAgIEBPcHRpb25hbCgpXG4gICAgQEluamVjdChDb25maWd1cmF0aW9uKVxuICAgIHByaXZhdGUgYXBpQ29uZmlndXJhdGlvbjogQ29uZmlndXJhdGlvblxuICApIHt9XG5cbiAgLy8gVE9ETzogdXNlIHRoZSBjYXRhbG9nIHJlcG9zaXRvcnkgaW5zdGVhZFxuICBsb2FkUmVjb3JkQnlVdWlkKHV1aWQ6IHN0cmluZyk6IE9ic2VydmFibGU8Q2F0YWxvZ1JlY29yZD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5nZXQoYCR7dGhpcy5hcGlVcmx9L3JlY29yZHMvJHt1dWlkfS9mb3JtYXR0ZXJzL3htbGAsIHtcbiAgICAgICAgcmVzcG9uc2VUeXBlOiAndGV4dCcsXG4gICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICBBY2NlcHQ6ICdhcHBsaWNhdGlvbi94bWwnLFxuICAgICAgICB9LFxuICAgICAgfSlcbiAgICAgIC5waXBlKG1hcCgocmVzcG9uc2UpID0+IHRvTW9kZWwocmVzcG9uc2UudG9TdHJpbmcoKSkpKVxuICB9XG5cbiAgLy8gcmV0dXJucyB0aGUgcmVjb3JkIGFzIGl0IHdhcyB3aGVuIHNhdmVkXG4gIHNhdmVSZWNvcmQoXG4gICAgcmVjb3JkOiBDYXRhbG9nUmVjb3JkLFxuICAgIGZpZWxkc0NvbmZpZzogRWRpdG9yRmllbGRzQ29uZmlnXG4gICk6IE9ic2VydmFibGU8Q2F0YWxvZ1JlY29yZD4ge1xuICAgIGNvbnN0IHNhdmVkUmVjb3JkID0geyAuLi5yZWNvcmQgfVxuXG4gICAgLy8gcnVuIG9uU2F2ZSBwcm9jZXNzZXNcbiAgICBmb3IgKGNvbnN0IGZpZWxkIG9mIGZpZWxkc0NvbmZpZykge1xuICAgICAgaWYgKGZpZWxkLm9uU2F2ZVByb2Nlc3MgJiYgZmllbGQubW9kZWwpIHtcbiAgICAgICAgY29uc3QgZXZhbHVhdG9yID0gZXZhbHVhdGUoZmllbGQub25TYXZlUHJvY2VzcylcbiAgICAgICAgc2F2ZWRSZWNvcmRbZmllbGQubW9kZWxdID0gZXZhbHVhdG9yKHtcbiAgICAgICAgICBjb25maWc6IGZpZWxkLFxuICAgICAgICAgIHZhbHVlOiByZWNvcmRbZmllbGQubW9kZWxdLFxuICAgICAgICB9KVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFRPRE86IHVzZSB0aGUgY2F0YWxvZyByZXBvc2l0b3J5IGluc3RlYWRcbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAucHV0KFxuICAgICAgICBgJHt0aGlzLmFwaVVybH0vcmVjb3Jkcz9tZXRhZGF0YVR5cGU9TUVUQURBVEEmdXVpZFByb2Nlc3Npbmc9T1ZFUldSSVRFJnRyYW5zZm9ybVdpdGg9X25vbmVfJnB1Ymxpc2hUb0FsbD1vbmAsXG4gICAgICAgIHRvWG1sKHNhdmVkUmVjb3JkKSxcbiAgICAgICAge1xuICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24veG1sJyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICAgICAgfVxuICAgICAgKVxuICAgICAgLnBpcGUobWFwKCgpID0+IHNhdmVkUmVjb3JkKSlcbiAgfVxufVxuIl19
@@ -24,6 +24,7 @@ import { AddLayerFromWmsComponent } from './add-layer-from-wms/add-layer-from-wm
24
24
  import { AddLayerFromFileComponent } from './add-layer-from-file/add-layer-from-file.component';
25
25
  import { AddLayerFromWfsComponent } from './add-layer-from-wfs/add-layer-from-wfs.component';
26
26
  import { GeocodingComponent } from './geocoding/geocoding.component';
27
+ import { GEOCODING_PROVIDER } from './geocoding.service';
27
28
  import * as i0 from "@angular/core";
28
29
  import * as i1 from "@ngrx/store";
29
30
  import * as i2 from "@ngrx/effects";
@@ -57,6 +58,10 @@ export class FeatureMapModule {
57
58
  useValue: defaultMapOptions,
58
59
  },
59
60
  MapFacade,
61
+ {
62
+ provide: GEOCODING_PROVIDER,
63
+ useValue: ['geonames', { maxRows: 5 }],
64
+ },
60
65
  ], imports: [CommonModule,
61
66
  UiMapModule,
62
67
  UiLayoutModule,
@@ -111,7 +116,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
111
116
  useValue: defaultMapOptions,
112
117
  },
113
118
  MapFacade,
119
+ {
120
+ provide: GEOCODING_PROVIDER,
121
+ useValue: ['geonames', { maxRows: 5 }],
122
+ },
114
123
  ],
115
124
  }]
116
125
  }] });
117
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZS1tYXAubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9mZWF0dXJlL21hcC9zcmMvbGliL2ZlYXR1cmUtbWFwLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ3hDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUM5QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0NBQWdDLENBQUE7QUFDNUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sWUFBWSxDQUFBO0FBQ25FLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFBO0FBQ3ZFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLCtDQUErQyxDQUFBO0FBQ25GLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFBO0FBQzVFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQTtBQUNsRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUE7QUFDdEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFBO0FBQ3RELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUNyRCxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSwyREFBMkQsQ0FBQTtBQUN4RyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQTtBQUM1RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFBO0FBQ3pDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDN0MsT0FBTyxLQUFLLE9BQU8sTUFBTSxzQkFBc0IsQ0FBQTtBQUMvQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFDakQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBQy9DLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFBO0FBQy9FLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLHNGQUFzRixDQUFBO0FBQ3JJLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFBO0FBQ3RFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQTtBQUNsRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQTtBQUM1RixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxxREFBcUQsQ0FBQTtBQUMvRixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQTtBQUM1RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQTs7OztBQTRDcEUsTUFBTSxPQUFPLGdCQUFnQjs4R0FBaEIsZ0JBQWdCOytHQUFoQixnQkFBZ0IsaUJBeEN6QixtQkFBbUI7WUFDbkIsb0JBQW9CO1lBQ3BCLG9CQUFvQjtZQUNwQiw0QkFBNEI7WUFDNUIscUJBQXFCO1lBQ3JCLDhCQUE4QjtZQUM5Qix3QkFBd0I7WUFDeEIseUJBQXlCO1lBQ3pCLHdCQUF3QjtZQUN4QixrQkFBa0IsYUFXbEIsWUFBWTtZQUNaLFdBQVc7WUFDWCxjQUFjO1lBQ2QsYUFBYTtZQUNiLGFBQWE7WUFDYixlQUFlO1lBQ2YsbUJBQW1CLGtEQUduQixnQkFBZ0I7WUFDaEIsY0FBYyxhQWxCZCxtQkFBbUI7WUFDbkIsb0JBQW9CO1lBQ3BCLG9CQUFvQjtZQUNwQiw0QkFBNEI7WUFDNUIscUJBQXFCO1lBQ3JCLGtCQUFrQjsrR0F1QlQsZ0JBQWdCLGFBUmhCO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLG1CQUFtQjtnQkFDNUIsUUFBUSxFQUFFLGlCQUFpQjthQUM1QjtZQUNELFNBQVM7U0FDVixZQWxCQyxZQUFZO1lBQ1osV0FBVztZQUNYLGNBQWM7WUFDZCxhQUFhO1lBQ2IsYUFBYTtZQUNiLGVBQWU7WUFDZixtQkFBbUI7WUFDbkIsV0FBVyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsZUFBZSxFQUFFLE9BQU8sQ0FBQyxVQUFVLENBQUM7WUFDbkUsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ3RDLGdCQUFnQjtZQUNoQixjQUFjOzsyRkFVTCxnQkFBZ0I7a0JBMUM1QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRTt3QkFDWixtQkFBbUI7d0JBQ25CLG9CQUFvQjt3QkFDcEIsb0JBQW9CO3dCQUNwQiw0QkFBNEI7d0JBQzVCLHFCQUFxQjt3QkFDckIsOEJBQThCO3dCQUM5Qix3QkFBd0I7d0JBQ3hCLHlCQUF5Qjt3QkFDekIsd0JBQXdCO3dCQUN4QixrQkFBa0I7cUJBQ25CO29CQUNELE9BQU8sRUFBRTt3QkFDUCxtQkFBbUI7d0JBQ25CLG9CQUFvQjt3QkFDcEIsb0JBQW9CO3dCQUNwQiw0QkFBNEI7d0JBQzVCLHFCQUFxQjt3QkFDckIsa0JBQWtCO3FCQUNuQjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixXQUFXO3dCQUNYLGNBQWM7d0JBQ2QsYUFBYTt3QkFDYixhQUFhO3dCQUNiLGVBQWU7d0JBQ2YsbUJBQW1CO3dCQUNuQixXQUFXLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxlQUFlLEVBQUUsT0FBTyxDQUFDLFVBQVUsQ0FBQzt3QkFDbkUsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDO3dCQUN0QyxnQkFBZ0I7d0JBQ2hCLGNBQWM7cUJBQ2Y7b0JBQ0QsU0FBUyxFQUFFO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxtQkFBbUI7NEJBQzVCLFFBQVEsRUFBRSxpQkFBaUI7eUJBQzVCO3dCQUNELFNBQVM7cUJBQ1Y7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nXG5pbXBvcnQgeyBVaU1hcE1vZHVsZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvbWFwL3NyYydcbmltcG9ydCB7IGRlZmF1bHRNYXBPcHRpb25zLCBGRUFUVVJFX01BUF9PUFRJT05TIH0gZnJvbSAnLi9jb25zdGFudCdcbmltcG9ydCB7IE1hcEluc3RhbmNlRGlyZWN0aXZlIH0gZnJvbSAnLi9tYW5hZ2VyL21hcC1pbnN0YW5jZS5kaXJlY3RpdmUnXG5pbXBvcnQgeyBNYXBDb250ZXh0Q29tcG9uZW50IH0gZnJvbSAnLi9tYXAtY29udGV4dC9jb21wb25lbnQvbWFwLWNvbnRleHQuY29tcG9uZW50J1xuaW1wb3J0IHsgTGF5ZXJzUGFuZWxDb21wb25lbnQgfSBmcm9tICcuL2xheWVycy1wYW5lbC9sYXllcnMtcGFuZWwuY29tcG9uZW50J1xuaW1wb3J0IHsgVWlMYXlvdXRNb2R1bGUgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9saWJzL3VpL2xheW91dC9zcmMnXG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbidcbmltcG9ydCB7IE1hdFRhYnNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90YWJzJ1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSdcbmltcG9ydCB7IEFkZExheWVyRnJvbUNhdGFsb2dDb21wb25lbnQgfSBmcm9tICcuL2FkZC1sYXllci1mcm9tLWNhdGFsb2cvYWRkLWxheWVyLWZyb20tY2F0YWxvZy5jb21wb25lbnQnXG5pbXBvcnQgeyBGZWF0dXJlU2VhcmNoTW9kdWxlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vbGlicy9mZWF0dXJlL3NlYXJjaC9zcmMnXG5pbXBvcnQgeyBTdG9yZU1vZHVsZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJ1xuaW1wb3J0IHsgRWZmZWN0c01vZHVsZSB9IGZyb20gJ0BuZ3J4L2VmZmVjdHMnXG5pbXBvcnQgKiBhcyBmcm9tTWFwIGZyb20gJy4vK3N0YXRlL21hcC5yZWR1Y2VyJ1xuaW1wb3J0IHsgTWFwRWZmZWN0cyB9IGZyb20gJy4vK3N0YXRlL21hcC5lZmZlY3RzJ1xuaW1wb3J0IHsgTWFwRmFjYWRlIH0gZnJvbSAnLi8rc3RhdGUvbWFwLmZhY2FkZSdcbmltcG9ydCB7IE1hcENvbnRhaW5lckNvbXBvbmVudCB9IGZyb20gJy4vbWFwLWNvbnRhaW5lci9tYXAtY29udGFpbmVyLmNvbXBvbmVudCdcbmltcG9ydCB7IEFkZExheWVyUmVjb3JkUHJldmlld0NvbXBvbmVudCB9IGZyb20gJy4vYWRkLWxheWVyLWZyb20tY2F0YWxvZy9hZGQtbGF5ZXItcmVjb3JkLXByZXZpZXcvYWRkLWxheWVyLXJlY29yZC1wcmV2aWV3LmNvbXBvbmVudCdcbmltcG9ydCB7IFVpRWxlbWVudHNNb2R1bGUgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9saWJzL3VpL2VsZW1lbnRzL3NyYydcbmltcG9ydCB7IFVpSW5wdXRzTW9kdWxlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vbGlicy91aS9pbnB1dHMvc3JjJ1xuaW1wb3J0IHsgQWRkTGF5ZXJGcm9tV21zQ29tcG9uZW50IH0gZnJvbSAnLi9hZGQtbGF5ZXItZnJvbS13bXMvYWRkLWxheWVyLWZyb20td21zLmNvbXBvbmVudCdcbmltcG9ydCB7IEFkZExheWVyRnJvbUZpbGVDb21wb25lbnQgfSBmcm9tICcuL2FkZC1sYXllci1mcm9tLWZpbGUvYWRkLWxheWVyLWZyb20tZmlsZS5jb21wb25lbnQnXG5pbXBvcnQgeyBBZGRMYXllckZyb21XZnNDb21wb25lbnQgfSBmcm9tICcuL2FkZC1sYXllci1mcm9tLXdmcy9hZGQtbGF5ZXItZnJvbS13ZnMuY29tcG9uZW50J1xuaW1wb3J0IHsgR2VvY29kaW5nQ29tcG9uZW50IH0gZnJvbSAnLi9nZW9jb2RpbmcvZ2VvY29kaW5nLmNvbXBvbmVudCdcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgTWFwQ29udGV4dENvbXBvbmVudCxcbiAgICBNYXBJbnN0YW5jZURpcmVjdGl2ZSxcbiAgICBMYXllcnNQYW5lbENvbXBvbmVudCxcbiAgICBBZGRMYXllckZyb21DYXRhbG9nQ29tcG9uZW50LFxuICAgIE1hcENvbnRhaW5lckNvbXBvbmVudCxcbiAgICBBZGRMYXllclJlY29yZFByZXZpZXdDb21wb25lbnQsXG4gICAgQWRkTGF5ZXJGcm9tV21zQ29tcG9uZW50LFxuICAgIEFkZExheWVyRnJvbUZpbGVDb21wb25lbnQsXG4gICAgQWRkTGF5ZXJGcm9tV2ZzQ29tcG9uZW50LFxuICAgIEdlb2NvZGluZ0NvbXBvbmVudCxcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIE1hcENvbnRleHRDb21wb25lbnQsXG4gICAgTWFwSW5zdGFuY2VEaXJlY3RpdmUsXG4gICAgTGF5ZXJzUGFuZWxDb21wb25lbnQsXG4gICAgQWRkTGF5ZXJGcm9tQ2F0YWxvZ0NvbXBvbmVudCxcbiAgICBNYXBDb250YWluZXJDb21wb25lbnQsXG4gICAgR2VvY29kaW5nQ29tcG9uZW50LFxuICBdLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFVpTWFwTW9kdWxlLFxuICAgIFVpTGF5b3V0TW9kdWxlLFxuICAgIE1hdEljb25Nb2R1bGUsXG4gICAgTWF0VGFic01vZHVsZSxcbiAgICBUcmFuc2xhdGVNb2R1bGUsXG4gICAgRmVhdHVyZVNlYXJjaE1vZHVsZSxcbiAgICBTdG9yZU1vZHVsZS5mb3JGZWF0dXJlKGZyb21NYXAuTUFQX0ZFQVRVUkVfS0VZLCBmcm9tTWFwLm1hcFJlZHVjZXIpLFxuICAgIEVmZmVjdHNNb2R1bGUuZm9yRmVhdHVyZShbTWFwRWZmZWN0c10pLFxuICAgIFVpRWxlbWVudHNNb2R1bGUsXG4gICAgVWlJbnB1dHNNb2R1bGUsXG4gIF0sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IEZFQVRVUkVfTUFQX09QVElPTlMsXG4gICAgICB1c2VWYWx1ZTogZGVmYXVsdE1hcE9wdGlvbnMsXG4gICAgfSxcbiAgICBNYXBGYWNhZGUsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEZlYXR1cmVNYXBNb2R1bGUge31cbiJdfQ==
126
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZS1tYXAubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9mZWF0dXJlL21hcC9zcmMvbGliL2ZlYXR1cmUtbWFwLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ3hDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUM5QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0NBQWdDLENBQUE7QUFDNUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sWUFBWSxDQUFBO0FBQ25FLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFBO0FBQ3ZFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLCtDQUErQyxDQUFBO0FBQ25GLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFBO0FBQzVFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQTtBQUNsRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUE7QUFDdEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFBO0FBQ3RELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUNyRCxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSwyREFBMkQsQ0FBQTtBQUN4RyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQTtBQUM1RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFBO0FBQ3pDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDN0MsT0FBTyxLQUFLLE9BQU8sTUFBTSxzQkFBc0IsQ0FBQTtBQUMvQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNC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Qjs0QkFDNUIsUUFBUSxFQUFFLGlCQUFpQjt5QkFDNUI7d0JBQ0QsU0FBUzt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsa0JBQWtCOzRCQUMzQixRQUFRLEVBQUUsQ0FBQyxVQUFVLEVBQUUsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQXNCO3lCQUM1RDtxQkFDRjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbidcbmltcG9ydCB7IFVpTWFwTW9kdWxlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vbGlicy91aS9tYXAvc3JjJ1xuaW1wb3J0IHsgZGVmYXVsdE1hcE9wdGlvbnMsIEZFQVRVUkVfTUFQX09QVElPTlMgfSBmcm9tICcuL2NvbnN0YW50J1xuaW1wb3J0IHsgTWFwSW5zdGFuY2VEaXJlY3RpdmUgfSBmcm9tICcuL21hbmFnZXIvbWFwLWluc3RhbmNlLmRpcmVjdGl2ZSdcbmltcG9ydCB7IE1hcENvbnRleHRDb21wb25lbnQgfSBmcm9tICcuL21hcC1jb250ZXh0L2NvbXBvbmVudC9tYXAtY29udGV4dC5jb21wb25lbnQnXG5pbXBvcnQgeyBMYXllcnNQYW5lbENvbXBvbmVudCB9IGZyb20gJy4vbGF5ZXJzLXBhbmVsL2xheWVycy1wYW5lbC5jb21wb25lbnQnXG5pbXBvcnQgeyBVaUxheW91dE1vZHVsZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvbGF5b3V0L3NyYydcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJ1xuaW1wb3J0IHsgTWF0VGFic01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RhYnMnXG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJ1xuaW1wb3J0IHsgQWRkTGF5ZXJGcm9tQ2F0YWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vYWRkLWxheWVyLWZyb20tY2F0YWxvZy9hZGQtbGF5ZXItZnJvbS1jYXRhbG9nLmNvbXBvbmVudCdcbmltcG9ydCB7IEZlYXR1cmVTZWFyY2hNb2R1bGUgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9saWJzL2ZlYXR1cmUvc2VhcmNoL3NyYydcbmltcG9ydCB7IFN0b3JlTW9kdWxlIH0gZnJvbSAnQG5ncngvc3RvcmUnXG5pbXBvcnQgeyBFZmZlY3RzTW9kdWxlIH0gZnJvbSAnQG5ncngvZWZmZWN0cydcbmltcG9ydCAqIGFzIGZyb21NYXAgZnJvbSAnLi8rc3RhdGUvbWFwLnJlZHVjZXInXG5pbXBvcnQgeyBNYXBFZmZlY3RzIH0gZnJvbSAnLi8rc3RhdGUvbWFwLmVmZmVjdHMnXG5pbXBvcnQgeyBNYXBGYWNhZGUgfSBmcm9tICcuLytzdGF0ZS9tYXAuZmFjYWRlJ1xuaW1wb3J0IHsgTWFwQ29udGFpbmVyQ29tcG9uZW50IH0gZnJvbSAnLi9tYXAtY29udGFpbmVyL21hcC1jb250YWluZXIuY29tcG9uZW50J1xuaW1wb3J0IHsgQWRkTGF5ZXJSZWNvcmRQcmV2aWV3Q29tcG9uZW50IH0gZnJvbSAnLi9hZGQtbGF5ZXItZnJvbS1jYXRhbG9nL2FkZC1sYXllci1yZWNvcmQtcHJldmlldy9hZGQtbGF5ZXItcmVjb3JkLXByZXZpZXcuY29tcG9uZW50J1xuaW1wb3J0IHsgVWlFbGVtZW50c01vZHVsZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvZWxlbWVudHMvc3JjJ1xuaW1wb3J0IHsgVWlJbnB1dHNNb2R1bGUgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9saWJzL3VpL2lucHV0cy9zcmMnXG5pbXBvcnQgeyBBZGRMYXllckZyb21XbXNDb21wb25lbnQgfSBmcm9tICcuL2FkZC1sYXllci1mcm9tLXdtcy9hZGQtbGF5ZXItZnJvbS13bXMuY29tcG9uZW50J1xuaW1wb3J0IHsgQWRkTGF5ZXJGcm9tRmlsZUNvbXBvbmVudCB9IGZyb20gJy4vYWRkLWxheWVyLWZyb20tZmlsZS9hZGQtbGF5ZXItZnJvbS1maWxlLmNvbXBvbmVudCdcbmltcG9ydCB7IEFkZExheWVyRnJvbVdmc0NvbXBvbmVudCB9IGZyb20gJy4vYWRkLWxheWVyLWZyb20td2ZzL2FkZC1sYXllci1mcm9tLXdmcy5jb21wb25lbnQnXG5pbXBvcnQgeyBHZW9jb2RpbmdDb21wb25lbnQgfSBmcm9tICcuL2dlb2NvZGluZy9nZW9jb2RpbmcuY29tcG9uZW50J1xuaW1wb3J0IHsgR0VPQ09ESU5HX1BST1ZJREVSLCBHZW9jb2RpbmdQcm92aWRlciB9IGZyb20gJy4vZ2VvY29kaW5nLnNlcnZpY2UnXG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1xuICAgIE1hcENvbnRleHRDb21wb25lbnQsXG4gICAgTWFwSW5zdGFuY2VEaXJlY3RpdmUsXG4gICAgTGF5ZXJzUGFuZWxDb21wb25lbnQsXG4gICAgQWRkTGF5ZXJGcm9tQ2F0YWxvZ0NvbXBvbmVudCxcbiAgICBNYXBDb250YWluZXJDb21wb25lbnQsXG4gICAgQWRkTGF5ZXJSZWNvcmRQcmV2aWV3Q29tcG9uZW50LFxuICAgIEFkZExheWVyRnJvbVdtc0NvbXBvbmVudCxcbiAgICBBZGRMYXllckZyb21GaWxlQ29tcG9uZW50LFxuICAgIEFkZExheWVyRnJvbVdmc0NvbXBvbmVudCxcbiAgICBHZW9jb2RpbmdDb21wb25lbnQsXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBNYXBDb250ZXh0Q29tcG9uZW50LFxuICAgIE1hcEluc3RhbmNlRGlyZWN0aXZlLFxuICAgIExheWVyc1BhbmVsQ29tcG9uZW50LFxuICAgIEFkZExheWVyRnJvbUNhdGFsb2dDb21wb25lbnQsXG4gICAgTWFwQ29udGFpbmVyQ29tcG9uZW50LFxuICAgIEdlb2NvZGluZ0NvbXBvbmVudCxcbiAgXSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBVaU1hcE1vZHVsZSxcbiAgICBVaUxheW91dE1vZHVsZSxcbiAgICBNYXRJY29uTW9kdWxlLFxuICAgIE1hdFRhYnNNb2R1bGUsXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxuICAgIEZlYXR1cmVTZWFyY2hNb2R1bGUsXG4gICAgU3RvcmVNb2R1bGUuZm9yRmVhdHVyZShmcm9tTWFwLk1BUF9GRUFUVVJFX0tFWSwgZnJvbU1hcC5tYXBSZWR1Y2VyKSxcbiAgICBFZmZlY3RzTW9kdWxlLmZvckZlYXR1cmUoW01hcEVmZmVjdHNdKSxcbiAgICBVaUVsZW1lbnRzTW9kdWxlLFxuICAgIFVpSW5wdXRzTW9kdWxlLFxuICBdLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBGRUFUVVJFX01BUF9PUFRJT05TLFxuICAgICAgdXNlVmFsdWU6IGRlZmF1bHRNYXBPcHRpb25zLFxuICAgIH0sXG4gICAgTWFwRmFjYWRlLFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IEdFT0NPRElOR19QUk9WSURFUixcbiAgICAgIHVzZVZhbHVlOiBbJ2dlb25hbWVzJywgeyBtYXhSb3dzOiA1IH1dIGFzIEdlb2NvZGluZ1Byb3ZpZGVyLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEZlYXR1cmVNYXBNb2R1bGUge31cbiJdfQ==