geonetwork-ui 2.4.0-dev.6c8dcba0 → 2.4.0-dev.6f312e64

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 (723) hide show
  1. package/esm2022/libs/api/metadata-converter/src/lib/gn4/atomic-operations.mjs +2 -1
  2. package/esm2022/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.mjs +10 -3
  3. package/esm2022/libs/api/metadata-converter/src/lib/gn4/types/index.mjs +2 -1
  4. package/esm2022/libs/api/metadata-converter/src/lib/gn4/types/keywords.model.mjs +2 -0
  5. package/esm2022/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.mjs +1 -1
  6. package/esm2022/libs/api/metadata-converter/src/lib/iso19115-3/iso19115-3.converter.mjs +5 -5
  7. package/esm2022/libs/api/metadata-converter/src/lib/iso19115-3/read-parts.mjs +7 -4
  8. package/esm2022/libs/api/metadata-converter/src/lib/iso19115-3/write-parts.mjs +10 -7
  9. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/iso19139.converter.mjs +11 -16
  10. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/read-parts.mjs +35 -7
  11. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/utils/geometry.mjs +31 -0
  12. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/utils/keyword.mapper.mjs +1 -1
  13. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/write-parts.mjs +50 -18
  14. package/esm2022/libs/api/metadata-converter/src/lib/xml-utils.mjs +10 -3
  15. package/esm2022/libs/api/repository/src/lib/gn4/gn4-repository.mjs +44 -7
  16. package/esm2022/libs/api/repository/src/lib/gn4/organizations/organizations-from-groups.service.mjs +2 -1
  17. package/esm2022/libs/api/repository/src/lib/gn4/organizations/organizations-from-metadata.service.mjs +3 -1
  18. package/esm2022/libs/api/repository/src/lib/gn4/platform/gn4-platform.mapper.mjs +22 -4
  19. package/esm2022/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.mjs +84 -16
  20. package/esm2022/libs/common/domain/src/lib/model/record/contact.model.mjs +28 -1
  21. package/esm2022/libs/common/domain/src/lib/model/record/metadata.model.mjs +1 -1
  22. package/esm2022/libs/common/domain/src/lib/model/record/organization.model.mjs +1 -1
  23. package/esm2022/libs/common/domain/src/lib/model/thesaurus/thesaurus.model.mjs +1 -1
  24. package/esm2022/libs/common/domain/src/lib/model/user/user.model.mjs +1 -1
  25. package/esm2022/libs/common/domain/src/lib/platform.service.interface.mjs +1 -1
  26. package/esm2022/libs/common/domain/src/lib/repository/records-repository.interface.mjs +1 -1
  27. package/esm2022/libs/data-access/gn4/src/fixtures/site.fixtures.mjs +5 -5
  28. package/esm2022/libs/data-access/gn4/src/fixtures/ui.fixtures.mjs +3 -3
  29. package/esm2022/libs/data-access/gn4/src/openapi/api/records.api.service.mjs +2 -6
  30. package/esm2022/libs/data-access/gn4/src/openapi/model/user.api.model.mjs +1 -1
  31. package/esm2022/libs/feature/catalog/src/index.mjs +2 -1
  32. package/esm2022/libs/feature/catalog/src/lib/feature-catalog.module.mjs +1 -1
  33. package/esm2022/libs/feature/catalog/src/lib/organisations/organisations.component.mjs +6 -6
  34. package/esm2022/libs/feature/catalog/src/lib/organization-url.token.mjs +4 -0
  35. package/esm2022/libs/feature/catalog/src/lib/records/records.service.mjs +4 -6
  36. package/esm2022/libs/feature/dataviz/src/lib/chart-view/chart-view.component.mjs +5 -5
  37. package/esm2022/libs/feature/dataviz/src/lib/feature-dataviz.module.mjs +7 -4
  38. package/esm2022/libs/feature/dataviz/src/lib/service/data.service.mjs +1 -1
  39. package/esm2022/libs/feature/dataviz/src/lib/table-view/table-view.component.mjs +2 -2
  40. package/esm2022/libs/feature/editor/src/lib/+state/editor.actions.mjs +4 -1
  41. package/esm2022/libs/feature/editor/src/lib/+state/editor.effects.mjs +11 -4
  42. package/esm2022/libs/feature/editor/src/lib/+state/editor.facade.mjs +11 -2
  43. package/esm2022/libs/feature/editor/src/lib/+state/editor.models.mjs +1 -1
  44. package/esm2022/libs/feature/editor/src/lib/+state/editor.reducer.mjs +7 -3
  45. package/esm2022/libs/feature/editor/src/lib/+state/editor.selectors.mjs +16 -6
  46. package/esm2022/libs/feature/editor/src/lib/components/contact-card/contact-card.component.mjs +29 -0
  47. package/esm2022/libs/feature/editor/src/lib/components/generic-keywords/generic-keywords.component.mjs +78 -0
  48. package/esm2022/libs/feature/editor/src/lib/components/online-resource-card/online-resource-card.component.mjs +71 -0
  49. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.mjs +143 -0
  50. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-keywords/form-field-keywords.component.mjs +37 -0
  51. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-license/form-field-license.component.mjs +10 -8
  52. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-map-container/form-field-map-container.component.mjs +101 -0
  53. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-link-resources/form-field-online-link-resources.component.mjs +148 -0
  54. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-open-data/form-field-open-data.component.mjs +44 -0
  55. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.mjs +103 -0
  56. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-resource-updated/form-field-resource-updated.component.mjs +10 -6
  57. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-rich/form-field-rich.component.mjs +11 -11
  58. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-simple/form-field-simple.component.mjs +9 -8
  59. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-spatial-extent/form-field-spatial-extent.component.mjs +111 -5
  60. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents.component.mjs +38 -68
  61. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-update-frequency/form-field-update-frequency.component.mjs +70 -54
  62. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.mjs +44 -61
  63. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/index.mjs +2 -2
  64. package/esm2022/libs/feature/editor/src/lib/components/record-form/record-form.component.mjs +13 -7
  65. package/esm2022/libs/feature/editor/src/lib/components/wizard-field/wizard-field.component.mjs +8 -8
  66. package/esm2022/libs/feature/editor/src/lib/expressions.mjs +1 -1
  67. package/esm2022/libs/feature/editor/src/lib/feature-editor.module.mjs +9 -6
  68. package/esm2022/libs/feature/editor/src/lib/fields.config.mjs +184 -53
  69. package/esm2022/libs/feature/editor/src/lib/models/editor-config.model.mjs +2 -0
  70. package/esm2022/libs/feature/editor/src/lib/models/index.mjs +2 -1
  71. package/esm2022/libs/feature/editor/src/lib/services/editor.service.mjs +19 -8
  72. package/esm2022/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-from-catalog.component.mjs +6 -6
  73. package/esm2022/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-record-preview/add-layer-record-preview.component.mjs +7 -6
  74. package/esm2022/libs/feature/map/src/lib/add-layer-from-file/add-layer-from-file.component.mjs +8 -5
  75. package/esm2022/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.mjs +6 -7
  76. package/esm2022/libs/feature/map/src/lib/add-layer-from-wfs/add-layer-from-wfs.component.mjs +8 -7
  77. package/esm2022/libs/feature/map/src/lib/add-layer-from-wms/add-layer-from-wms.component.mjs +7 -6
  78. package/esm2022/libs/feature/map/src/lib/feature-map.module.mjs +7 -26
  79. package/esm2022/libs/feature/map/src/lib/layers-panel/layers-panel.component.mjs +29 -13
  80. package/esm2022/libs/feature/map/src/lib/style/map-style.fixtures.mjs +3 -3
  81. package/esm2022/libs/feature/map/src/lib/utils/map-utils.service.mjs +10 -5
  82. package/esm2022/libs/feature/record/src/lib/data-view/data-view.component.mjs +1 -1
  83. package/esm2022/libs/feature/record/src/lib/data-view-permalink/data-view-permalink.component.mjs +42 -23
  84. package/esm2022/libs/feature/record/src/lib/data-view-share/data-view-share.component.mjs +13 -5
  85. package/esm2022/libs/feature/record/src/lib/data-view-web-component/data-view-web-component.component.mjs +49 -15
  86. package/esm2022/libs/feature/record/src/lib/external-viewer-button/external-viewer-button.component.mjs +1 -1
  87. package/esm2022/libs/feature/record/src/lib/feature-record.module.mjs +7 -4
  88. package/esm2022/libs/feature/record/src/lib/map-view/map-view.component.mjs +4 -4
  89. package/esm2022/libs/feature/record/src/lib/state/mdview.facade.mjs +11 -13
  90. package/esm2022/libs/feature/router/src/lib/default/constants.mjs +2 -1
  91. package/esm2022/libs/feature/router/src/lib/default/router.config.mjs +1 -1
  92. package/esm2022/libs/feature/router/src/lib/default/router.service.mjs +9 -2
  93. package/esm2022/libs/feature/router/src/lib/default/state/router.facade.mjs +8 -1
  94. package/esm2022/libs/feature/search/src/index.mjs +2 -2
  95. package/esm2022/libs/feature/search/src/lib/feature-search.module.mjs +7 -4
  96. package/esm2022/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.mjs +4 -4
  97. package/esm2022/libs/feature/search/src/lib/results-table/results-table-container.component.mjs +89 -0
  98. package/esm2022/libs/feature/search/src/lib/state/search.facade.mjs +8 -3
  99. package/esm2022/libs/feature/search/src/lib/state/selectors.mjs +4 -1
  100. package/esm2022/libs/feature/search/src/lib/utils/service/fields.service.mjs +7 -3
  101. package/esm2022/libs/ui/catalog/src/lib/organisation-preview/organisation-preview.component.mjs +5 -5
  102. package/esm2022/libs/ui/catalog/src/lib/ui-catalog.module.mjs +5 -2
  103. package/esm2022/libs/ui/dataviz/src/lib/figure/figure.component.mjs +5 -8
  104. package/esm2022/libs/ui/dataviz/src/lib/table/table.fixtures.mjs +3 -3
  105. package/esm2022/libs/ui/elements/src/index.mjs +2 -3
  106. package/esm2022/libs/ui/elements/src/lib/api-card/api-card.component.mjs +3 -3
  107. package/esm2022/libs/ui/elements/src/lib/confirmation-dialog/confirmation-dialog.component.mjs +27 -0
  108. package/esm2022/libs/ui/elements/src/lib/download-item/download-item.component.mjs +2 -2
  109. package/esm2022/libs/ui/elements/src/lib/downloads-list/downloads-list.component.mjs +1 -1
  110. package/esm2022/libs/ui/elements/src/lib/error/error.component.mjs +5 -3
  111. package/esm2022/libs/ui/elements/src/lib/link-card/link-card.component.mjs +2 -2
  112. package/esm2022/libs/ui/elements/src/lib/markdown-editor/markdown-editor.component.mjs +4 -3
  113. package/esm2022/libs/ui/elements/src/lib/markdown-parser/markdown-parser.component.mjs +2 -2
  114. package/esm2022/libs/ui/elements/src/lib/metadata-info/metadata-info.component.mjs +9 -9
  115. package/esm2022/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.mjs +5 -11
  116. package/esm2022/libs/ui/elements/src/lib/metadata-quality-item/metadata-quality-item.component.mjs +3 -3
  117. package/esm2022/libs/ui/elements/src/lib/record-api-form/record-api-form.component.mjs +5 -5
  118. package/esm2022/libs/ui/elements/src/lib/related-record-card/related-record-card.component.mjs +24 -5
  119. package/esm2022/libs/ui/elements/src/lib/ui-elements.module.mjs +15 -11
  120. package/esm2022/libs/ui/elements/src/lib/user-preview/user-preview.component.mjs +3 -3
  121. package/esm2022/libs/ui/inputs/src/index.mjs +6 -1
  122. package/esm2022/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.mjs +76 -29
  123. package/esm2022/libs/ui/inputs/src/lib/badge/badge.component.mjs +28 -0
  124. package/esm2022/libs/ui/inputs/src/lib/editable-label/editable-label.directive.mjs +26 -24
  125. package/esm2022/libs/ui/inputs/src/lib/file-input/file-input.component.mjs +87 -0
  126. package/esm2022/libs/ui/inputs/src/lib/image-input/image-input.component.mjs +19 -15
  127. package/esm2022/libs/ui/inputs/src/lib/switch-toggle/switch-toggle.component.mjs +32 -0
  128. package/esm2022/libs/ui/inputs/src/lib/text-area/text-area.component.mjs +7 -21
  129. package/esm2022/libs/ui/inputs/src/lib/text-input/text-input.component.mjs +6 -17
  130. package/esm2022/libs/ui/inputs/src/lib/ui-inputs.module.mjs +12 -15
  131. package/esm2022/libs/ui/inputs/src/lib/url-input/url-input.component.mjs +43 -0
  132. package/esm2022/libs/ui/layout/src/index.mjs +4 -1
  133. package/esm2022/libs/ui/layout/src/lib/form-field-wrapper/form-field-wrapper.component.mjs +3 -3
  134. package/esm2022/libs/ui/layout/src/lib/interactive-table/interactive-table.component.mjs +3 -3
  135. package/esm2022/libs/ui/layout/src/lib/max-lines/max-lines.component.mjs +71 -0
  136. package/esm2022/libs/ui/layout/src/lib/modal-dialog/modal-dialog.component.mjs +29 -0
  137. package/esm2022/libs/ui/layout/src/lib/sortable-list/sortable-list.component.mjs +43 -0
  138. package/esm2022/libs/ui/layout/src/lib/ui-layout.module.mjs +1 -1
  139. package/esm2022/libs/ui/map/src/lib/ui-map.module.mjs +3 -3
  140. package/esm2022/libs/ui/search/src/index.mjs +2 -1
  141. package/esm2022/libs/ui/search/src/lib/facets/fixtures/aggregations-model-response.mjs +7 -7
  142. package/esm2022/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.mjs +67 -0
  143. package/esm2022/libs/ui/search/src/lib/results-table/results-table.component.mjs +140 -0
  144. package/esm2022/libs/ui/widgets/src/index.mjs +2 -2
  145. package/esm2022/libs/ui/widgets/src/lib/popover/popover.component.mjs +68 -0
  146. package/esm2022/libs/ui/widgets/src/lib/popup-alert/popup-alert.component.mjs +5 -3
  147. package/esm2022/libs/ui/widgets/src/lib/ui-widgets.module.mjs +1 -6
  148. package/esm2022/libs/util/app-config/src/lib/fixtures.mjs +10 -10
  149. package/esm2022/libs/util/shared/src/lib/links/link-classifier.service.mjs +1 -1
  150. package/esm2022/libs/util/shared/src/lib/links/link-utils.mjs +1 -1
  151. package/esm2022/libs/util/shared/src/lib/utils/bytes-convert.mjs +4 -1
  152. package/esm2022/translations/de.json +155 -38
  153. package/esm2022/translations/en.json +129 -12
  154. package/esm2022/translations/es.json +126 -9
  155. package/esm2022/translations/fr.json +141 -24
  156. package/esm2022/translations/it.json +129 -12
  157. package/esm2022/translations/nl.json +126 -9
  158. package/esm2022/translations/pt.json +126 -9
  159. package/fesm2022/geonetwork-ui.mjs +4993 -2470
  160. package/fesm2022/geonetwork-ui.mjs.map +1 -1
  161. package/libs/api/metadata-converter/src/lib/gn4/atomic-operations.d.ts.map +1 -1
  162. package/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.d.ts +3 -3
  163. package/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.d.ts.map +1 -1
  164. package/libs/api/metadata-converter/src/lib/gn4/types/index.d.ts +1 -0
  165. package/libs/api/metadata-converter/src/lib/gn4/types/index.d.ts.map +1 -1
  166. package/libs/api/metadata-converter/src/lib/gn4/types/keywords.model.d.ts +27 -0
  167. package/libs/api/metadata-converter/src/lib/gn4/types/keywords.model.d.ts.map +1 -0
  168. package/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.d.ts +1 -0
  169. package/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.d.ts.map +1 -1
  170. package/libs/api/metadata-converter/src/lib/iso19115-3/read-parts.d.ts +2 -2
  171. package/libs/api/metadata-converter/src/lib/iso19115-3/read-parts.d.ts.map +1 -1
  172. package/libs/api/metadata-converter/src/lib/iso19115-3/write-parts.d.ts +1 -1
  173. package/libs/api/metadata-converter/src/lib/iso19115-3/write-parts.d.ts.map +1 -1
  174. package/libs/api/metadata-converter/src/lib/iso19139/iso19139.converter.d.ts.map +1 -1
  175. package/libs/api/metadata-converter/src/lib/iso19139/read-parts.d.ts +13 -6
  176. package/libs/api/metadata-converter/src/lib/iso19139/read-parts.d.ts.map +1 -1
  177. package/libs/api/metadata-converter/src/lib/iso19139/utils/geometry.d.ts +5 -0
  178. package/libs/api/metadata-converter/src/lib/iso19139/utils/geometry.d.ts.map +1 -0
  179. package/libs/api/metadata-converter/src/lib/iso19139/utils/keyword.mapper.d.ts +1 -1
  180. package/libs/api/metadata-converter/src/lib/iso19139/utils/keyword.mapper.d.ts.map +1 -1
  181. package/libs/api/metadata-converter/src/lib/iso19139/write-parts.d.ts +11 -7
  182. package/libs/api/metadata-converter/src/lib/iso19139/write-parts.d.ts.map +1 -1
  183. package/libs/api/metadata-converter/src/lib/xml-utils.d.ts +1 -0
  184. package/libs/api/metadata-converter/src/lib/xml-utils.d.ts.map +1 -1
  185. package/libs/api/repository/src/lib/gn4/gn4-repository.d.ts +8 -1
  186. package/libs/api/repository/src/lib/gn4/gn4-repository.d.ts.map +1 -1
  187. package/libs/api/repository/src/lib/gn4/organizations/organizations-from-groups.service.d.ts.map +1 -1
  188. package/libs/api/repository/src/lib/gn4/organizations/organizations-from-metadata.service.d.ts.map +1 -1
  189. package/libs/api/repository/src/lib/gn4/platform/gn4-platform.mapper.d.ts +3 -3
  190. package/libs/api/repository/src/lib/gn4/platform/gn4-platform.mapper.d.ts.map +1 -1
  191. package/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.d.ts +30 -6
  192. package/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.d.ts.map +1 -1
  193. package/libs/common/domain/src/lib/model/record/contact.model.d.ts +1 -0
  194. package/libs/common/domain/src/lib/model/record/contact.model.d.ts.map +1 -1
  195. package/libs/common/domain/src/lib/model/record/metadata.model.d.ts +13 -14
  196. package/libs/common/domain/src/lib/model/record/metadata.model.d.ts.map +1 -1
  197. package/libs/common/domain/src/lib/model/record/organization.model.d.ts +1 -0
  198. package/libs/common/domain/src/lib/model/record/organization.model.d.ts.map +1 -1
  199. package/libs/common/domain/src/lib/model/thesaurus/thesaurus.model.d.ts +12 -5
  200. package/libs/common/domain/src/lib/model/thesaurus/thesaurus.model.d.ts.map +1 -1
  201. package/libs/common/domain/src/lib/model/user/user.model.d.ts +1 -1
  202. package/libs/common/domain/src/lib/model/user/user.model.d.ts.map +1 -1
  203. package/libs/common/domain/src/lib/platform.service.interface.d.ts +20 -3
  204. package/libs/common/domain/src/lib/platform.service.interface.d.ts.map +1 -1
  205. package/libs/common/domain/src/lib/repository/records-repository.interface.d.ts +20 -1
  206. package/libs/common/domain/src/lib/repository/records-repository.interface.d.ts.map +1 -1
  207. package/libs/data-access/gn4/src/fixtures/site.fixtures.d.ts +2 -2
  208. package/libs/data-access/gn4/src/fixtures/site.fixtures.d.ts.map +1 -1
  209. package/libs/data-access/gn4/src/fixtures/ui.fixtures.d.ts +1 -1
  210. package/libs/data-access/gn4/src/fixtures/ui.fixtures.d.ts.map +1 -1
  211. package/libs/data-access/gn4/src/openapi/api/records.api.service.d.ts.map +1 -1
  212. package/libs/data-access/gn4/src/openapi/model/user.api.model.d.ts +1 -1
  213. package/libs/feature/catalog/src/index.d.ts +1 -0
  214. package/libs/feature/catalog/src/index.d.ts.map +1 -1
  215. package/libs/feature/catalog/src/lib/feature-catalog.module.d.ts.map +1 -1
  216. package/libs/feature/catalog/src/lib/organisations/organisations.component.d.ts.map +1 -1
  217. package/libs/feature/catalog/src/lib/organization-url.token.d.ts +3 -0
  218. package/libs/feature/catalog/src/lib/organization-url.token.d.ts.map +1 -0
  219. package/libs/feature/catalog/src/lib/records/records.service.d.ts.map +1 -1
  220. package/libs/feature/dataviz/src/lib/chart-view/chart-view.component.d.ts +2 -2
  221. package/libs/feature/dataviz/src/lib/chart-view/chart-view.component.d.ts.map +1 -1
  222. package/libs/feature/dataviz/src/lib/feature-dataviz.module.d.ts +2 -1
  223. package/libs/feature/dataviz/src/lib/feature-dataviz.module.d.ts.map +1 -1
  224. package/libs/feature/dataviz/src/lib/service/data.service.d.ts +6 -6
  225. package/libs/feature/dataviz/src/lib/service/data.service.d.ts.map +1 -1
  226. package/libs/feature/dataviz/src/lib/table-view/table-view.component.d.ts +3 -3
  227. package/libs/feature/dataviz/src/lib/table-view/table-view.component.d.ts.map +1 -1
  228. package/libs/feature/editor/src/lib/+state/editor.actions.d.ts +7 -0
  229. package/libs/feature/editor/src/lib/+state/editor.actions.d.ts.map +1 -1
  230. package/libs/feature/editor/src/lib/+state/editor.effects.d.ts +6 -1
  231. package/libs/feature/editor/src/lib/+state/editor.effects.d.ts.map +1 -1
  232. package/libs/feature/editor/src/lib/+state/editor.facade.d.ts +6 -4
  233. package/libs/feature/editor/src/lib/+state/editor.facade.d.ts.map +1 -1
  234. package/libs/feature/editor/src/lib/+state/editor.models.d.ts +8 -0
  235. package/libs/feature/editor/src/lib/+state/editor.models.d.ts.map +1 -1
  236. package/libs/feature/editor/src/lib/+state/editor.reducer.d.ts +4 -3
  237. package/libs/feature/editor/src/lib/+state/editor.reducer.d.ts.map +1 -1
  238. package/libs/feature/editor/src/lib/+state/editor.selectors.d.ts +4 -8
  239. package/libs/feature/editor/src/lib/+state/editor.selectors.d.ts.map +1 -1
  240. package/libs/feature/editor/src/lib/components/contact-card/contact-card.component.d.ts +12 -0
  241. package/libs/feature/editor/src/lib/components/contact-card/contact-card.component.d.ts.map +1 -0
  242. package/libs/feature/editor/src/lib/components/generic-keywords/generic-keywords.component.d.ts +32 -0
  243. package/libs/feature/editor/src/lib/components/generic-keywords/generic-keywords.component.d.ts.map +1 -0
  244. package/libs/feature/editor/src/lib/components/online-resource-card/online-resource-card.component.d.ts +15 -0
  245. package/libs/feature/editor/src/lib/components/online-resource-card/online-resource-card.component.d.ts.map +1 -0
  246. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.d.ts +41 -0
  247. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.d.ts.map +1 -0
  248. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-keywords/form-field-keywords.component.d.ts +14 -0
  249. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-keywords/form-field-keywords.component.d.ts.map +1 -0
  250. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-license/form-field-license.component.d.ts +6 -4
  251. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-license/form-field-license.component.d.ts.map +1 -1
  252. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-map-container/form-field-map-container.component.d.ts +22 -0
  253. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-map-container/form-field-map-container.component.d.ts.map +1 -0
  254. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-link-resources/form-field-online-link-resources.component.d.ts +35 -0
  255. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-link-resources/form-field-online-link-resources.component.d.ts.map +1 -0
  256. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-open-data/form-field-open-data.component.d.ts +15 -0
  257. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-open-data/form-field-open-data.component.d.ts.map +1 -0
  258. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.d.ts +31 -0
  259. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.d.ts.map +1 -0
  260. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-resource-updated/form-field-resource-updated.component.d.ts +4 -3
  261. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-resource-updated/form-field-resource-updated.component.d.ts.map +1 -1
  262. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-rich/form-field-rich.component.d.ts +4 -4
  263. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-rich/form-field-rich.component.d.ts.map +1 -1
  264. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-simple/form-field-simple.component.d.ts +4 -3
  265. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-simple/form-field-simple.component.d.ts.map +1 -1
  266. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-spatial-extent/form-field-spatial-extent.component.d.ts +23 -0
  267. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-spatial-extent/form-field-spatial-extent.component.d.ts.map +1 -1
  268. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents.component.d.ts +10 -16
  269. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents.component.d.ts.map +1 -1
  270. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-update-frequency/form-field-update-frequency.component.d.ts +9 -9
  271. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-update-frequency/form-field-update-frequency.component.d.ts.map +1 -1
  272. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.d.ts +19 -25
  273. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.d.ts.map +1 -1
  274. package/libs/feature/editor/src/lib/components/record-form/form-field/index.d.ts +1 -1
  275. package/libs/feature/editor/src/lib/components/record-form/form-field/index.d.ts.map +1 -1
  276. package/libs/feature/editor/src/lib/components/record-form/record-form.component.d.ts +7 -7
  277. package/libs/feature/editor/src/lib/components/record-form/record-form.component.d.ts.map +1 -1
  278. package/libs/feature/editor/src/lib/expressions.d.ts +1 -1
  279. package/libs/feature/editor/src/lib/expressions.d.ts.map +1 -1
  280. package/libs/feature/editor/src/lib/feature-editor.module.d.ts +2 -1
  281. package/libs/feature/editor/src/lib/feature-editor.module.d.ts.map +1 -1
  282. package/libs/feature/editor/src/lib/fields.config.d.ts +48 -2
  283. package/libs/feature/editor/src/lib/fields.config.d.ts.map +1 -1
  284. package/libs/feature/editor/src/lib/models/editor-config.model.d.ts +41 -0
  285. package/libs/feature/editor/src/lib/models/editor-config.model.d.ts.map +1 -0
  286. package/libs/feature/editor/src/lib/models/index.d.ts +1 -0
  287. package/libs/feature/editor/src/lib/models/index.d.ts.map +1 -1
  288. package/libs/feature/editor/src/lib/services/editor.service.d.ts +3 -2
  289. package/libs/feature/editor/src/lib/services/editor.service.d.ts.map +1 -1
  290. package/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-from-catalog.component.d.ts +1 -1
  291. package/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-from-catalog.component.d.ts.map +1 -1
  292. package/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-record-preview/add-layer-record-preview.component.d.ts +6 -6
  293. package/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-record-preview/add-layer-record-preview.component.d.ts.map +1 -1
  294. package/libs/feature/map/src/lib/add-layer-from-file/add-layer-from-file.component.d.ts +1 -1
  295. package/libs/feature/map/src/lib/add-layer-from-file/add-layer-from-file.component.d.ts.map +1 -1
  296. package/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.d.ts +1 -1
  297. package/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.d.ts.map +1 -1
  298. package/libs/feature/map/src/lib/add-layer-from-wfs/add-layer-from-wfs.component.d.ts +1 -1
  299. package/libs/feature/map/src/lib/add-layer-from-wfs/add-layer-from-wfs.component.d.ts.map +1 -1
  300. package/libs/feature/map/src/lib/add-layer-from-wms/add-layer-from-wms.component.d.ts +1 -1
  301. package/libs/feature/map/src/lib/add-layer-from-wms/add-layer-from-wms.component.d.ts.map +1 -1
  302. package/libs/feature/map/src/lib/feature-map.module.d.ts +16 -21
  303. package/libs/feature/map/src/lib/feature-map.module.d.ts.map +1 -1
  304. package/libs/feature/map/src/lib/layers-panel/layers-panel.component.d.ts +1 -1
  305. package/libs/feature/map/src/lib/layers-panel/layers-panel.component.d.ts.map +1 -1
  306. package/libs/feature/map/src/lib/style/map-style.fixtures.d.ts +2 -2
  307. package/libs/feature/map/src/lib/style/map-style.fixtures.d.ts.map +1 -1
  308. package/libs/feature/map/src/lib/utils/map-utils.service.d.ts.map +1 -1
  309. package/libs/feature/record/src/lib/data-view/data-view.component.d.ts +3 -3
  310. package/libs/feature/record/src/lib/data-view/data-view.component.d.ts.map +1 -1
  311. package/libs/feature/record/src/lib/data-view-permalink/data-view-permalink.component.d.ts +4 -1
  312. package/libs/feature/record/src/lib/data-view-permalink/data-view-permalink.component.d.ts.map +1 -1
  313. package/libs/feature/record/src/lib/data-view-share/data-view-share.component.d.ts +4 -1
  314. package/libs/feature/record/src/lib/data-view-share/data-view-share.component.d.ts.map +1 -1
  315. package/libs/feature/record/src/lib/data-view-web-component/data-view-web-component.component.d.ts +4 -1
  316. package/libs/feature/record/src/lib/data-view-web-component/data-view-web-component.component.d.ts.map +1 -1
  317. package/libs/feature/record/src/lib/external-viewer-button/external-viewer-button.component.d.ts +2 -2
  318. package/libs/feature/record/src/lib/external-viewer-button/external-viewer-button.component.d.ts.map +1 -1
  319. package/libs/feature/record/src/lib/feature-record.module.d.ts +2 -1
  320. package/libs/feature/record/src/lib/feature-record.module.d.ts.map +1 -1
  321. package/libs/feature/record/src/lib/map-view/map-view.component.d.ts +2 -2
  322. package/libs/feature/record/src/lib/map-view/map-view.component.d.ts.map +1 -1
  323. package/libs/feature/record/src/lib/state/mdview.facade.d.ts +7 -7
  324. package/libs/feature/record/src/lib/state/mdview.facade.d.ts.map +1 -1
  325. package/libs/feature/router/src/lib/default/constants.d.ts +1 -0
  326. package/libs/feature/router/src/lib/default/constants.d.ts.map +1 -1
  327. package/libs/feature/router/src/lib/default/router.config.d.ts +1 -0
  328. package/libs/feature/router/src/lib/default/router.config.d.ts.map +1 -1
  329. package/libs/feature/router/src/lib/default/router.service.d.ts +1 -0
  330. package/libs/feature/router/src/lib/default/router.service.d.ts.map +1 -1
  331. package/libs/feature/router/src/lib/default/state/router.facade.d.ts +1 -0
  332. package/libs/feature/router/src/lib/default/state/router.facade.d.ts.map +1 -1
  333. package/libs/feature/search/src/index.d.ts +1 -1
  334. package/libs/feature/search/src/index.d.ts.map +1 -1
  335. package/libs/feature/search/src/lib/feature-search.module.d.ts +2 -1
  336. package/libs/feature/search/src/lib/feature-search.module.d.ts.map +1 -1
  337. package/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.d.ts.map +1 -1
  338. package/libs/feature/search/src/lib/results-table/results-table-container.component.d.ts +36 -0
  339. package/libs/feature/search/src/lib/results-table/results-table-container.component.d.ts.map +1 -0
  340. package/libs/feature/search/src/lib/state/search.facade.d.ts +2 -0
  341. package/libs/feature/search/src/lib/state/search.facade.d.ts.map +1 -1
  342. package/libs/feature/search/src/lib/state/selectors.d.ts +1 -0
  343. package/libs/feature/search/src/lib/state/selectors.d.ts.map +1 -1
  344. package/libs/feature/search/src/lib/utils/service/fields.service.d.ts.map +1 -1
  345. package/libs/ui/catalog/src/lib/organisation-preview/organisation-preview.component.d.ts +2 -2
  346. package/libs/ui/catalog/src/lib/ui-catalog.module.d.ts +2 -1
  347. package/libs/ui/catalog/src/lib/ui-catalog.module.d.ts.map +1 -1
  348. package/libs/ui/dataviz/src/lib/figure/figure.component.d.ts +1 -2
  349. package/libs/ui/dataviz/src/lib/figure/figure.component.d.ts.map +1 -1
  350. package/libs/ui/dataviz/src/lib/table/table.fixtures.d.ts +2 -2
  351. package/libs/ui/dataviz/src/lib/table/table.fixtures.d.ts.map +1 -1
  352. package/libs/ui/elements/src/index.d.ts +1 -2
  353. package/libs/ui/elements/src/index.d.ts.map +1 -1
  354. package/libs/ui/elements/src/lib/confirmation-dialog/confirmation-dialog.component.d.ts +18 -0
  355. package/libs/ui/elements/src/lib/confirmation-dialog/confirmation-dialog.component.d.ts.map +1 -0
  356. package/libs/ui/elements/src/lib/download-item/download-item.component.d.ts +2 -2
  357. package/libs/ui/elements/src/lib/download-item/download-item.component.d.ts.map +1 -1
  358. package/libs/ui/elements/src/lib/downloads-list/downloads-list.component.d.ts +7 -7
  359. package/libs/ui/elements/src/lib/downloads-list/downloads-list.component.d.ts.map +1 -1
  360. package/libs/ui/elements/src/lib/error/error.component.d.ts +3 -1
  361. package/libs/ui/elements/src/lib/error/error.component.d.ts.map +1 -1
  362. package/libs/ui/elements/src/lib/link-card/link-card.component.d.ts +2 -2
  363. package/libs/ui/elements/src/lib/link-card/link-card.component.d.ts.map +1 -1
  364. package/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.d.ts +0 -3
  365. package/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.d.ts.map +1 -1
  366. package/libs/ui/elements/src/lib/record-api-form/record-api-form.component.d.ts +1 -1
  367. package/libs/ui/elements/src/lib/related-record-card/related-record-card.component.d.ts +5 -1
  368. package/libs/ui/elements/src/lib/related-record-card/related-record-card.component.d.ts.map +1 -1
  369. package/libs/ui/elements/src/lib/ui-elements.module.d.ts +18 -16
  370. package/libs/ui/elements/src/lib/ui-elements.module.d.ts.map +1 -1
  371. package/libs/ui/inputs/src/index.d.ts +5 -0
  372. package/libs/ui/inputs/src/index.d.ts.map +1 -1
  373. package/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.d.ts +15 -4
  374. package/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.d.ts.map +1 -1
  375. package/libs/ui/inputs/src/lib/badge/badge.component.d.ts +11 -0
  376. package/libs/ui/inputs/src/lib/badge/badge.component.d.ts.map +1 -0
  377. package/libs/ui/inputs/src/lib/editable-label/editable-label.directive.d.ts +5 -3
  378. package/libs/ui/inputs/src/lib/editable-label/editable-label.directive.d.ts.map +1 -1
  379. package/libs/ui/inputs/src/lib/file-input/file-input.component.d.ts +24 -0
  380. package/libs/ui/inputs/src/lib/file-input/file-input.component.d.ts.map +1 -0
  381. package/libs/ui/inputs/src/lib/image-input/image-input.component.d.ts +4 -5
  382. package/libs/ui/inputs/src/lib/image-input/image-input.component.d.ts.map +1 -1
  383. package/libs/ui/inputs/src/lib/switch-toggle/switch-toggle.component.d.ts +17 -0
  384. package/libs/ui/inputs/src/lib/switch-toggle/switch-toggle.component.d.ts.map +1 -0
  385. package/libs/ui/inputs/src/lib/text-area/text-area.component.d.ts +0 -4
  386. package/libs/ui/inputs/src/lib/text-area/text-area.component.d.ts.map +1 -1
  387. package/libs/ui/inputs/src/lib/text-input/text-input.component.d.ts +2 -4
  388. package/libs/ui/inputs/src/lib/text-input/text-input.component.d.ts.map +1 -1
  389. package/libs/ui/inputs/src/lib/ui-inputs.module.d.ts +34 -35
  390. package/libs/ui/inputs/src/lib/ui-inputs.module.d.ts.map +1 -1
  391. package/libs/ui/inputs/src/lib/url-input/url-input.component.d.ts +18 -0
  392. package/libs/ui/inputs/src/lib/url-input/url-input.component.d.ts.map +1 -0
  393. package/libs/ui/layout/src/index.d.ts +3 -0
  394. package/libs/ui/layout/src/index.d.ts.map +1 -1
  395. package/libs/ui/{elements → layout}/src/lib/max-lines/max-lines.component.d.ts +2 -2
  396. package/libs/ui/layout/src/lib/max-lines/max-lines.component.d.ts.map +1 -0
  397. package/libs/ui/layout/src/lib/modal-dialog/modal-dialog.component.d.ts +20 -0
  398. package/libs/ui/layout/src/lib/modal-dialog/modal-dialog.component.d.ts.map +1 -0
  399. package/libs/ui/layout/src/lib/sortable-list/sortable-list.component.d.ts +14 -0
  400. package/libs/ui/layout/src/lib/sortable-list/sortable-list.component.d.ts.map +1 -0
  401. package/libs/ui/layout/src/lib/ui-layout.module.d.ts.map +1 -1
  402. package/libs/ui/search/src/index.d.ts +1 -0
  403. package/libs/ui/search/src/index.d.ts.map +1 -1
  404. package/libs/ui/search/src/lib/facets/fixtures/aggregations-model-response.d.ts +3 -3
  405. package/libs/ui/search/src/lib/facets/fixtures/aggregations-model-response.d.ts.map +1 -1
  406. package/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.d.ts +20 -0
  407. package/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.d.ts.map +1 -0
  408. package/libs/ui/search/src/lib/results-table/results-table.component.d.ts +36 -0
  409. package/libs/ui/search/src/lib/results-table/results-table.component.d.ts.map +1 -0
  410. package/libs/ui/widgets/src/index.d.ts +1 -1
  411. package/libs/ui/widgets/src/index.d.ts.map +1 -1
  412. package/libs/ui/widgets/src/lib/popover/popover.component.d.ts +19 -0
  413. package/libs/ui/widgets/src/lib/popover/popover.component.d.ts.map +1 -0
  414. package/libs/ui/widgets/src/lib/popup-alert/popup-alert.component.d.ts +1 -1
  415. package/libs/ui/widgets/src/lib/popup-alert/popup-alert.component.d.ts.map +1 -1
  416. package/libs/ui/widgets/src/lib/ui-widgets.module.d.ts +10 -11
  417. package/libs/ui/widgets/src/lib/ui-widgets.module.d.ts.map +1 -1
  418. package/libs/util/app-config/src/lib/fixtures.d.ts +8 -8
  419. package/libs/util/app-config/src/lib/fixtures.d.ts.map +1 -1
  420. package/libs/util/shared/src/lib/links/link-classifier.service.d.ts +3 -3
  421. package/libs/util/shared/src/lib/links/link-classifier.service.d.ts.map +1 -1
  422. package/libs/util/shared/src/lib/links/link-utils.d.ts +6 -6
  423. package/libs/util/shared/src/lib/links/link-utils.d.ts.map +1 -1
  424. package/libs/util/shared/src/lib/utils/bytes-convert.d.ts +2 -1
  425. package/libs/util/shared/src/lib/utils/bytes-convert.d.ts.map +1 -1
  426. package/package.json +1 -1
  427. package/src/libs/api/metadata-converter/src/lib/fixtures/generic.records.ts +7 -2
  428. package/src/libs/api/metadata-converter/src/lib/fixtures/geo2france.records.ts +6 -2
  429. package/src/libs/api/metadata-converter/src/lib/fixtures/geocat-ch.records.ts +38 -13
  430. package/src/libs/api/metadata-converter/src/lib/fixtures/metawal.records.ts +6 -2
  431. package/src/libs/api/metadata-converter/src/lib/gn4/atomic-operations.ts +1 -0
  432. package/src/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.ts +18 -16
  433. package/src/libs/api/metadata-converter/src/lib/gn4/types/index.ts +1 -0
  434. package/src/libs/api/metadata-converter/src/lib/gn4/types/keywords.model.ts +27 -0
  435. package/src/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.ts +1 -0
  436. package/src/libs/api/metadata-converter/src/lib/iso19115-3/iso19115-3.converter.ts +4 -4
  437. package/src/libs/api/metadata-converter/src/lib/iso19115-3/read-parts.ts +12 -4
  438. package/src/libs/api/metadata-converter/src/lib/iso19115-3/write-parts.ts +14 -8
  439. package/src/libs/api/metadata-converter/src/lib/iso19139/iso19139.converter.ts +10 -14
  440. package/src/libs/api/metadata-converter/src/lib/iso19139/read-parts.ts +86 -18
  441. package/src/libs/api/metadata-converter/src/lib/iso19139/utils/geometry.ts +39 -0
  442. package/src/libs/api/metadata-converter/src/lib/iso19139/utils/keyword.mapper.ts +1 -1
  443. package/src/libs/api/metadata-converter/src/lib/iso19139/write-parts.ts +119 -38
  444. package/src/libs/api/metadata-converter/src/lib/xml-utils.ts +13 -5
  445. package/src/libs/api/repository/src/lib/gn4/gn4-repository.ts +63 -10
  446. package/src/libs/api/repository/src/lib/gn4/organizations/organizations-from-groups.service.ts +1 -0
  447. package/src/libs/api/repository/src/lib/gn4/organizations/organizations-from-metadata.service.ts +3 -1
  448. package/src/libs/api/repository/src/lib/gn4/platform/gn4-platform.mapper.ts +37 -5
  449. package/src/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.ts +165 -30
  450. package/src/libs/common/domain/src/lib/model/record/contact.model.ts +28 -0
  451. package/src/libs/common/domain/src/lib/model/record/metadata.model.ts +14 -17
  452. package/src/libs/common/domain/src/lib/model/record/organization.model.ts +1 -0
  453. package/src/libs/common/domain/src/lib/model/thesaurus/thesaurus.model.ts +13 -6
  454. package/src/libs/common/domain/src/lib/model/user/user.model.ts +1 -1
  455. package/src/libs/common/domain/src/lib/platform.service.interface.ts +37 -3
  456. package/src/libs/common/domain/src/lib/repository/records-repository.interface.ts +26 -1
  457. package/src/libs/common/fixtures/src/index.ts +3 -1
  458. package/src/libs/common/fixtures/src/lib/editor/editor.fixtures.ts +156 -0
  459. package/src/libs/common/fixtures/src/lib/editor/index.ts +1 -0
  460. package/src/libs/common/fixtures/src/lib/elasticsearch/{aggregations-request.ts → aggregations-request.fixtures.ts} +1 -3
  461. package/src/libs/common/fixtures/src/lib/elasticsearch/{aggregations-response.ts → aggregations-response.fixtures.ts} +6 -8
  462. package/src/libs/common/fixtures/src/lib/elasticsearch/{full-response.ts → full-response.fixtures.ts} +1 -3
  463. package/src/libs/common/fixtures/src/lib/elasticsearch/index.ts +5 -5
  464. package/src/libs/common/fixtures/src/lib/elasticsearch/metadata-links.fixtures.ts +1 -3
  465. package/src/libs/common/fixtures/src/lib/elasticsearch/metadata.fixtures.ts +1739 -1742
  466. package/src/libs/common/fixtures/src/lib/elasticsearch/{search-requests.ts → search-requests.fixtures.ts} +1 -3
  467. package/src/libs/common/fixtures/src/lib/elasticsearch/{search-responses.ts → search-responses.fixtures.ts} +4 -6
  468. package/src/libs/common/fixtures/src/lib/geojson.fixtures.ts +57178 -57195
  469. package/src/libs/common/fixtures/src/lib/gn4/groups.fixtures.ts +2 -4
  470. package/src/libs/common/fixtures/src/lib/link.fixtures.ts +233 -164
  471. package/src/libs/common/fixtures/src/lib/ol-feature.fixtures.ts +10 -0
  472. package/src/libs/common/fixtures/src/lib/organisations.fixture.ts +65 -3
  473. package/src/libs/common/fixtures/src/lib/record-link.fixtures.ts +9 -7
  474. package/src/libs/common/fixtures/src/lib/records.fixtures.ts +17 -9
  475. package/src/libs/common/fixtures/src/lib/repository.fixtures.ts +4 -4
  476. package/src/libs/common/fixtures/src/lib/search/aggregations.ts +2 -3
  477. package/src/libs/common/fixtures/src/lib/user-feedbacks.fixtures.ts +14 -15
  478. package/src/libs/common/fixtures/src/lib/user.fixtures.ts +32 -15
  479. package/src/libs/data-access/datafeeder/src/openapi/model/datasetMetadata.api.model.ts +4 -0
  480. package/src/libs/data-access/datafeeder/src/openapi/model/datasetUploadStatus.api.model.ts +2 -0
  481. package/src/libs/data-access/gn4/src/fixtures/site.fixtures.ts +4 -4
  482. package/src/libs/data-access/gn4/src/fixtures/ui.fixtures.ts +2 -2
  483. package/src/libs/data-access/gn4/src/openapi/api/records.api.service.ts +1 -5
  484. package/src/libs/data-access/gn4/src/openapi/model/user.api.model.ts +1 -1
  485. package/src/libs/data-access/gn4/src/spec.yaml +0 -8
  486. package/src/libs/feature/catalog/src/index.ts +1 -0
  487. package/src/libs/feature/catalog/src/lib/feature-catalog.module.ts +0 -1
  488. package/src/libs/feature/catalog/src/lib/organisations/organisations.component.html +1 -1
  489. package/src/libs/feature/catalog/src/lib/organisations/organisations.component.ts +2 -2
  490. package/src/libs/feature/catalog/src/lib/organization-url.token.ts +6 -0
  491. package/src/libs/feature/catalog/src/lib/records/records.service.ts +6 -8
  492. package/src/libs/feature/catalog/src/lib/sources/sources.fixture.ts +1 -1
  493. package/src/libs/feature/dataviz/src/lib/chart-view/chart-view.component.ts +3 -3
  494. package/src/libs/feature/dataviz/src/lib/feature-dataviz.module.ts +2 -1
  495. package/src/libs/feature/dataviz/src/lib/figure/figure.fixtures.ts +2 -2
  496. package/src/libs/feature/dataviz/src/lib/service/data.service.ts +6 -6
  497. package/src/libs/feature/dataviz/src/lib/table-view/table-view.component.ts +4 -4
  498. package/src/libs/feature/editor/src/lib/+state/editor.actions.ts +9 -0
  499. package/src/libs/feature/editor/src/lib/+state/editor.effects.ts +50 -29
  500. package/src/libs/feature/editor/src/lib/+state/editor.facade.ts +14 -1
  501. package/src/libs/feature/editor/src/lib/+state/editor.models.ts +11 -0
  502. package/src/libs/feature/editor/src/lib/+state/editor.reducer.ts +11 -5
  503. package/src/libs/feature/editor/src/lib/+state/editor.selectors.ts +22 -8
  504. package/src/libs/feature/editor/src/lib/components/contact-card/contact-card.component.html +25 -0
  505. package/src/libs/feature/editor/src/lib/components/contact-card/contact-card.component.ts +30 -0
  506. package/src/libs/feature/editor/src/lib/components/generic-keywords/generic-keywords.component.html +26 -0
  507. package/src/libs/feature/editor/src/lib/components/generic-keywords/generic-keywords.component.ts +89 -0
  508. package/src/libs/feature/editor/src/lib/components/online-resource-card/online-resource-card.component.html +35 -0
  509. package/src/libs/feature/editor/src/lib/components/online-resource-card/online-resource-card.component.ts +79 -0
  510. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.html +86 -0
  511. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.ts +210 -0
  512. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-keywords/form-field-keywords.component.html +9 -0
  513. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-keywords/form-field-keywords.component.ts +46 -0
  514. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-license/form-field-license.component.ts +13 -5
  515. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-map-container/form-field-map-container.component.html +4 -0
  516. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-map-container/form-field-map-container.component.ts +128 -0
  517. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-link-resources/form-field-online-link-resources.component.css +0 -0
  518. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-link-resources/form-field-online-link-resources.component.html +33 -0
  519. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-link-resources/form-field-online-link-resources.component.ts +182 -0
  520. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-open-data/form-field-open-data.component.css +0 -0
  521. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-open-data/form-field-open-data.component.html +6 -0
  522. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-open-data/form-field-open-data.component.ts +48 -0
  523. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.css +0 -0
  524. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.html +11 -0
  525. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.ts +122 -0
  526. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-resource-updated/form-field-resource-updated.component.html +2 -2
  527. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-resource-updated/form-field-resource-updated.component.ts +9 -3
  528. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-rich/form-field-rich.component.html +2 -2
  529. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-rich/form-field-rich.component.ts +13 -7
  530. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-simple/form-field-simple.component.html +5 -3
  531. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-simple/form-field-simple.component.ts +11 -4
  532. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-spatial-extent/form-field-spatial-extent.component.html +15 -1
  533. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-spatial-extent/form-field-spatial-extent.component.ts +156 -1
  534. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents.component.html +30 -4
  535. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents.component.ts +41 -86
  536. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-update-frequency/form-field-update-frequency.component.ts +101 -90
  537. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.html +113 -85
  538. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.ts +50 -70
  539. package/src/libs/feature/editor/src/lib/components/record-form/form-field/index.ts +1 -2
  540. package/src/libs/feature/editor/src/lib/components/record-form/record-form.component.html +53 -11
  541. package/src/libs/feature/editor/src/lib/components/record-form/record-form.component.ts +20 -7
  542. package/src/libs/feature/editor/src/lib/components/wizard-field/wizard-field.component.html +1 -1
  543. package/src/libs/feature/editor/src/lib/expressions.ts +1 -1
  544. package/src/libs/feature/editor/src/lib/feature-editor.module.ts +4 -2
  545. package/src/libs/feature/editor/src/lib/fields.config.ts +222 -54
  546. package/src/libs/feature/editor/src/lib/models/editor-config.model.ts +62 -0
  547. package/src/libs/feature/editor/src/lib/models/index.ts +1 -0
  548. package/src/libs/feature/editor/src/lib/services/editor.service.ts +34 -9
  549. package/src/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-from-catalog.component.ts +3 -0
  550. package/src/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-record-preview/add-layer-record-preview.component.ts +12 -8
  551. package/src/libs/feature/map/src/lib/add-layer-from-file/add-layer-from-file.component.ts +5 -0
  552. package/src/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.html +1 -1
  553. package/src/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.ts +10 -7
  554. package/src/libs/feature/map/src/lib/add-layer-from-wfs/add-layer-from-wfs.component.html +1 -1
  555. package/src/libs/feature/map/src/lib/add-layer-from-wfs/add-layer-from-wfs.component.ts +5 -0
  556. package/src/libs/feature/map/src/lib/add-layer-from-wms/add-layer-from-wms.component.html +1 -1
  557. package/src/libs/feature/map/src/lib/add-layer-from-wms/add-layer-from-wms.component.ts +6 -1
  558. package/src/libs/feature/map/src/lib/feature-map.module.ts +2 -15
  559. package/src/libs/feature/map/src/lib/layers-panel/layers-panel.component.ts +24 -1
  560. package/src/libs/feature/map/src/lib/map-context/map-context.fixtures.ts +26 -22
  561. package/src/libs/feature/map/src/lib/style/map-style.fixtures.ts +29 -27
  562. package/src/libs/feature/map/src/lib/utils/map-utils.service.ts +8 -4
  563. package/src/libs/feature/record/src/lib/data-view/data-view.component.ts +3 -3
  564. package/src/libs/feature/record/src/lib/data-view-permalink/data-view-permalink.component.ts +36 -19
  565. package/src/libs/feature/record/src/lib/data-view-share/data-view-share.component.html +6 -2
  566. package/src/libs/feature/record/src/lib/data-view-share/data-view-share.component.ts +11 -0
  567. package/src/libs/feature/record/src/lib/data-view-web-component/data-view-web-component.component.ts +59 -12
  568. package/src/libs/feature/record/src/lib/external-viewer-button/external-viewer-button.component.ts +2 -2
  569. package/src/libs/feature/record/src/lib/feature-record.module.ts +3 -2
  570. package/src/libs/feature/record/src/lib/map-view/map-view.component.ts +2 -2
  571. package/src/libs/feature/record/src/lib/state/mdview.facade.ts +47 -32
  572. package/src/libs/feature/router/src/lib/default/constants.ts +1 -0
  573. package/src/libs/feature/router/src/lib/default/router.config.ts +1 -0
  574. package/src/libs/feature/router/src/lib/default/router.service.ts +13 -1
  575. package/src/libs/feature/router/src/lib/default/state/router.facade.ts +9 -1
  576. package/src/libs/feature/search/src/index.ts +1 -1
  577. package/src/libs/feature/search/src/lib/feature-search.module.ts +2 -1
  578. package/src/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.html +1 -1
  579. package/src/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.ts +2 -2
  580. package/src/libs/feature/search/src/lib/results-table/results-table-container.component.css +0 -0
  581. package/src/libs/feature/search/src/lib/results-table/results-table-container.component.html +12 -0
  582. package/src/libs/feature/search/src/lib/results-table/results-table-container.component.ts +112 -0
  583. package/src/libs/feature/search/src/lib/state/fixtures/search-state.fixtures.ts +2 -2
  584. package/src/libs/feature/search/src/lib/state/search.facade.ts +11 -0
  585. package/src/libs/feature/search/src/lib/state/selectors.ts +7 -0
  586. package/src/libs/feature/search/src/lib/utils/service/fields.service.ts +16 -2
  587. package/src/libs/ui/catalog/src/lib/organisation-preview/organisation-preview.component.html +8 -6
  588. package/src/libs/ui/catalog/src/lib/organisation-preview/organisation-preview.component.ts +2 -2
  589. package/src/libs/ui/catalog/src/lib/ui-catalog.module.ts +2 -0
  590. package/src/libs/ui/dataviz/src/lib/chart/chart.fixtures.ts +2 -2
  591. package/src/libs/ui/dataviz/src/lib/figure/figure.component.html +11 -3
  592. package/src/libs/ui/dataviz/src/lib/figure/figure.component.ts +3 -7
  593. package/src/libs/ui/dataviz/src/lib/table/table.fixtures.ts +2 -2
  594. package/src/libs/ui/elements/src/index.ts +1 -2
  595. package/src/libs/ui/elements/src/lib/api-card/api-card.component.html +29 -29
  596. package/src/libs/ui/elements/src/lib/confirmation-dialog/confirmation-dialog.component.css +0 -0
  597. package/src/libs/ui/elements/src/lib/confirmation-dialog/confirmation-dialog.component.html +12 -0
  598. package/src/libs/ui/elements/src/lib/confirmation-dialog/confirmation-dialog.component.ts +37 -0
  599. package/src/libs/ui/elements/src/lib/download-item/download-item.component.ts +4 -4
  600. package/src/libs/ui/elements/src/lib/downloads-list/downloads-list.component.ts +7 -7
  601. package/src/libs/ui/elements/src/lib/error/error.component.html +30 -6
  602. package/src/libs/ui/elements/src/lib/error/error.component.ts +2 -0
  603. package/src/libs/ui/elements/src/lib/link-card/link-card.component.ts +3 -3
  604. package/src/libs/ui/elements/src/lib/markdown-editor/markdown-editor.component.html +4 -1
  605. package/src/libs/ui/elements/src/lib/markdown-parser/markdown-parser.component.css +2 -1
  606. package/src/libs/ui/elements/src/lib/metadata-info/metadata-info.component.html +12 -8
  607. package/src/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.html +14 -20
  608. package/src/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.ts +0 -10
  609. package/src/libs/ui/elements/src/lib/metadata-quality-item/metadata-quality-item.component.html +1 -1
  610. package/src/libs/ui/elements/src/lib/record-api-form/record-api-form.component.html +2 -2
  611. package/src/libs/ui/elements/src/lib/related-record-card/related-record-card.component.html +1 -1
  612. package/src/libs/ui/elements/src/lib/related-record-card/related-record-card.component.ts +22 -1
  613. package/src/libs/ui/elements/src/lib/ui-elements.module.ts +10 -6
  614. package/src/libs/ui/elements/src/lib/user-preview/user-preview.component.html +1 -1
  615. package/src/libs/ui/inputs/src/index.ts +5 -0
  616. package/src/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.css +0 -1
  617. package/src/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.html +23 -19
  618. package/src/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.ts +94 -30
  619. package/src/libs/ui/inputs/src/lib/badge/badge.component.css +0 -0
  620. package/src/libs/ui/inputs/src/lib/badge/badge.component.html +18 -0
  621. package/src/libs/ui/inputs/src/lib/badge/badge.component.ts +27 -0
  622. package/src/libs/ui/inputs/src/lib/editable-label/editable-label.directive.ts +40 -26
  623. package/src/libs/ui/inputs/src/lib/file-input/file-input.component.css +0 -0
  624. package/src/libs/ui/inputs/src/lib/file-input/file-input.component.html +85 -0
  625. package/src/libs/ui/inputs/src/lib/file-input/file-input.component.ts +92 -0
  626. package/src/libs/ui/inputs/src/lib/image-input/image-input.component.html +50 -50
  627. package/src/libs/ui/inputs/src/lib/image-input/image-input.component.ts +17 -14
  628. package/src/libs/ui/inputs/src/lib/switch-toggle/switch-toggle.component.css +31 -0
  629. package/src/libs/ui/inputs/src/lib/switch-toggle/switch-toggle.component.html +15 -0
  630. package/src/libs/ui/inputs/src/lib/switch-toggle/switch-toggle.component.ts +38 -0
  631. package/src/libs/ui/inputs/src/lib/text-area/text-area.component.html +3 -2
  632. package/src/libs/ui/inputs/src/lib/text-area/text-area.component.ts +3 -28
  633. package/src/libs/ui/inputs/src/lib/text-input/text-input.component.html +4 -3
  634. package/src/libs/ui/inputs/src/lib/text-input/text-input.component.ts +4 -16
  635. package/src/libs/ui/inputs/src/lib/ui-inputs.module.ts +3 -6
  636. package/src/libs/ui/inputs/src/lib/url-input/url-input.component.css +9 -0
  637. package/src/libs/ui/inputs/src/lib/url-input/url-input.component.html +37 -0
  638. package/src/libs/ui/inputs/src/lib/url-input/url-input.component.ts +33 -0
  639. package/src/libs/ui/layout/src/index.ts +3 -0
  640. package/src/libs/ui/layout/src/lib/form-field-wrapper/form-field-wrapper.component.html +1 -1
  641. package/src/libs/ui/layout/src/lib/interactive-table/interactive-table.component.html +1 -0
  642. package/src/libs/ui/layout/src/lib/max-lines/max-lines.component.css +0 -0
  643. package/src/libs/ui/{elements → layout}/src/lib/max-lines/max-lines.component.html +1 -0
  644. package/src/libs/ui/{elements → layout}/src/lib/max-lines/max-lines.component.ts +9 -5
  645. package/src/libs/ui/layout/src/lib/modal-dialog/modal-dialog.component.css +0 -0
  646. package/src/libs/ui/layout/src/lib/modal-dialog/modal-dialog.component.html +15 -0
  647. package/src/libs/ui/layout/src/lib/modal-dialog/modal-dialog.component.ts +44 -0
  648. package/src/libs/ui/layout/src/lib/sortable-list/sortable-list.component.html +37 -0
  649. package/src/libs/ui/{elements → layout}/src/lib/sortable-list/sortable-list.component.ts +15 -18
  650. package/src/libs/ui/layout/src/lib/ui-layout.module.ts +0 -1
  651. package/src/libs/ui/map/src/lib/ui-map.module.ts +1 -1
  652. package/src/libs/ui/search/src/index.ts +1 -0
  653. package/src/libs/ui/search/src/lib/facets/fixtures/aggregations-model-response.ts +7 -6
  654. package/src/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.css +0 -0
  655. package/src/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.html +26 -0
  656. package/src/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.ts +74 -0
  657. package/src/libs/ui/search/src/lib/results-table/results-table.component.css +0 -0
  658. package/src/libs/{feature → ui}/search/src/lib/results-table/results-table.component.html +30 -9
  659. package/src/libs/ui/search/src/lib/results-table/results-table.component.ts +151 -0
  660. package/src/libs/ui/widgets/src/index.ts +1 -1
  661. package/src/libs/ui/widgets/src/lib/popover/popover.component.css +0 -0
  662. package/src/libs/ui/widgets/src/lib/popover/popover.component.html +3 -0
  663. package/src/libs/ui/widgets/src/lib/popover/popover.component.ts +85 -0
  664. package/src/libs/ui/widgets/src/lib/popup-alert/popup-alert.component.ts +4 -0
  665. package/src/libs/ui/widgets/src/lib/ui-widgets.module.ts +0 -3
  666. package/src/libs/util/app-config/src/lib/fixtures.ts +9 -9
  667. package/src/libs/util/shared/src/lib/links/link-classifier.service.ts +4 -3
  668. package/src/libs/util/shared/src/lib/links/link-utils.ts +6 -6
  669. package/src/libs/util/shared/src/lib/utils/bytes-convert.ts +4 -1
  670. package/tailwind.base.css +23 -5
  671. package/translations/de.json +155 -38
  672. package/translations/en.json +129 -12
  673. package/translations/es.json +126 -9
  674. package/translations/fr.json +141 -24
  675. package/translations/it.json +129 -12
  676. package/translations/nl.json +126 -9
  677. package/translations/pt.json +126 -9
  678. package/translations/sk.json +128 -11
  679. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents-date/form-field-temporal-extents-date.component.mjs +0 -17
  680. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents-range/form-field-temporal-extents-range.component.mjs +0 -17
  681. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field.model.mjs +0 -2
  682. package/esm2022/libs/feature/editor/src/lib/models/fields.model.mjs +0 -2
  683. package/esm2022/libs/feature/search/src/lib/results-table/results-table.component.mjs +0 -136
  684. package/esm2022/libs/ui/elements/src/lib/max-lines/max-lines.component.mjs +0 -69
  685. package/esm2022/libs/ui/elements/src/lib/sortable-list/sortable-list.component.mjs +0 -43
  686. package/esm2022/libs/ui/widgets/src/lib/badge/badge.component.mjs +0 -18
  687. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents-date/form-field-temporal-extents-date.component.d.ts +0 -8
  688. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents-date/form-field-temporal-extents-date.component.d.ts.map +0 -1
  689. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents-range/form-field-temporal-extents-range.component.d.ts +0 -8
  690. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents-range/form-field-temporal-extents-range.component.d.ts.map +0 -1
  691. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field.model.d.ts +0 -26
  692. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field.model.d.ts.map +0 -1
  693. package/libs/feature/editor/src/lib/models/fields.model.d.ts +0 -15
  694. package/libs/feature/editor/src/lib/models/fields.model.d.ts.map +0 -1
  695. package/libs/feature/search/src/lib/results-table/results-table.component.d.ts +0 -36
  696. package/libs/feature/search/src/lib/results-table/results-table.component.d.ts.map +0 -1
  697. package/libs/ui/elements/src/lib/max-lines/max-lines.component.d.ts.map +0 -1
  698. package/libs/ui/elements/src/lib/sortable-list/sortable-list.component.d.ts +0 -22
  699. package/libs/ui/elements/src/lib/sortable-list/sortable-list.component.d.ts.map +0 -1
  700. package/libs/ui/widgets/src/lib/badge/badge.component.d.ts +0 -7
  701. package/libs/ui/widgets/src/lib/badge/badge.component.d.ts.map +0 -1
  702. package/src/libs/common/fixtures/src/lib/ol-feature.fixture.ts +0 -7
  703. package/src/libs/common/fixtures/src/lib/utils/freeze.ts +0 -10
  704. package/src/libs/common/fixtures/src/lib/utils/index.ts +0 -1
  705. package/src/libs/feature/editor/src/lib/components/overview-upload/overview-upload.component.html +0 -8
  706. package/src/libs/feature/editor/src/lib/components/overview-upload/overview-upload.component.ts +0 -70
  707. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents-date/form-field-temporal-extents-date.component.html +0 -7
  708. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents-date/form-field-temporal-extents-date.component.ts +0 -16
  709. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents-range/form-field-temporal-extents-range.component.html +0 -13
  710. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents-range/form-field-temporal-extents-range.component.ts +0 -16
  711. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.model.ts +0 -43
  712. package/src/libs/feature/editor/src/lib/models/fields.model.ts +0 -29
  713. package/src/libs/feature/search/src/lib/results-table/results-table.component.ts +0 -172
  714. package/src/libs/ui/elements/src/lib/sortable-list/sortable-list.component.html +0 -36
  715. package/src/libs/ui/widgets/src/lib/badge/badge.component.html +0 -10
  716. package/src/libs/ui/widgets/src/lib/badge/badge.component.ts +0 -14
  717. /package/src/libs/feature/editor/src/lib/components/{overview-upload/overview-upload.component.css → contact-card/contact-card.component.css} +0 -0
  718. /package/src/libs/feature/editor/src/lib/components/{record-form/form-field/form-field-temporal-extents/form-field-temporal-extents-date/form-field-temporal-extents-date.component.css → generic-keywords/generic-keywords.component.css} +0 -0
  719. /package/src/libs/feature/editor/src/lib/components/{record-form/form-field/form-field-temporal-extents/form-field-temporal-extents-range/form-field-temporal-extents-range.component.css → online-resource-card/online-resource-card.component.css} +0 -0
  720. /package/src/libs/feature/{search/src/lib/results-table/results-table.component.css → editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.css} +0 -0
  721. /package/src/libs/{ui/elements/src/lib/max-lines/max-lines.component.css → feature/editor/src/lib/components/record-form/form-field/form-field-keywords/form-field-keywords.component.css} +0 -0
  722. /package/src/libs/{ui/widgets/src/lib/badge/badge.component.css → feature/editor/src/lib/components/record-form/form-field/form-field-map-container/form-field-map-container.component.css} +0 -0
  723. /package/src/libs/ui/{elements → layout}/src/lib/sortable-list/sortable-list.component.css +0 -0
@@ -1,98 +1,73 @@
1
1
  import { CommonModule } from '@angular/common';
2
- import { ChangeDetectionStrategy, Component, ElementRef, Input, Output, ViewChild, } from '@angular/core';
3
- import { FormControl, ReactiveFormsModule } from '@angular/forms';
2
+ import { ChangeDetectionStrategy, Component, ElementRef, EventEmitter, Input, Output, ViewChild, } from '@angular/core';
4
3
  import { MatIconModule } from '@angular/material/icon';
5
4
  import { MatTooltipModule } from '@angular/material/tooltip';
6
5
  import { EditableLabelDirective } from '../../../../../../../../libs/ui/inputs/src';
7
6
  import { FormFieldWrapperComponent } from '../../../../../../../../libs/ui/layout/src';
8
7
  import { TranslateModule } from '@ngx-translate/core';
9
- import { Observable } from 'rxjs';
10
8
  import { FormFieldLicenseComponent, FormFieldResourceUpdatedComponent, FormFieldTemporalExtentsComponent, } from '.';
11
9
  import { FormFieldArrayComponent } from './form-field-array/form-field-array.component';
10
+ import { FormFieldContactsForResourceComponent } from './form-field-contacts-for-resource/form-field-contacts-for-resource.component';
12
11
  import { FormFieldFileComponent } from './form-field-file/form-field-file.component';
12
+ import { FormFieldKeywordsComponent } from './form-field-keywords/form-field-keywords.component';
13
13
  import { FormFieldObjectComponent } from './form-field-object/form-field-object.component';
14
+ import { FormFieldOverviewsComponent } from './form-field-overviews/form-field-overviews.component';
14
15
  import { FormFieldRichComponent } from './form-field-rich/form-field-rich.component';
15
16
  import { FormFieldSimpleComponent } from './form-field-simple/form-field-simple.component';
16
17
  import { FormFieldSpatialExtentComponent } from './form-field-spatial-extent/form-field-spatial-extent.component';
17
18
  import { FormFieldUpdateFrequencyComponent } from './form-field-update-frequency/form-field-update-frequency.component';
19
+ import { FormFieldOpenDataComponent } from './form-field-open-data/form-field-open-data.component';
20
+ import { FormFieldOnlineLinkResourcesComponent } from './form-field-online-link-resources/form-field-online-link-resources.component';
18
21
  import * as i0 from "@angular/core";
19
22
  import * as i1 from "@angular/common";
20
- import * as i2 from "@angular/material/tooltip";
21
- import * as i3 from "@ngx-translate/core";
23
+ import * as i2 from "@ngx-translate/core";
24
+ import * as i3 from "@angular/material/tooltip";
22
25
  export class FormFieldComponent {
23
- set value(v) {
24
- this.formControl.setValue(v, {
25
- emitEvent: false,
26
- });
27
- }
28
26
  constructor() {
29
- this.formControl = new FormControl();
30
- this.valueChange = this.formControl.valueChanges;
27
+ this.valueChange = new EventEmitter();
28
+ this.isHidden = false;
31
29
  }
32
30
  focusTitleInput() {
33
31
  this.titleInput.nativeElement.children[0].focus();
34
32
  }
35
- get simpleType() {
36
- return this.config.type;
37
- }
38
- get isSimpleField() {
39
- return (this.config.type === 'text' ||
40
- this.config.type === 'number' ||
41
- this.config.type === 'date' ||
42
- this.config.type === 'list' ||
43
- this.config.type === 'url' ||
44
- this.config.type === 'toggle');
45
- }
46
- get isFileField() {
47
- return this.config.type === 'file';
48
- }
49
- get isSpatialExtentField() {
50
- return this.config.type === 'spatial_extent';
51
- }
52
- get isArrayField() {
53
- return this.config.type === 'array';
54
- }
55
- get isObjectField() {
56
- return this.config.type === 'object';
57
- }
58
- get isFieldOk() {
59
- return !this.config.locked && !this.config.invalid;
33
+ get withoutWrapper() {
34
+ return this.model === 'title' || this.model === 'abstract';
60
35
  }
61
- get isFieldLocked() {
62
- return this.config.locked;
36
+ get valueAsString() {
37
+ return this.value;
63
38
  }
64
- get isFieldInvalid() {
65
- return !this.config.locked && this.config.invalid;
39
+ get valueAsDate() {
40
+ return this.value;
66
41
  }
67
- get isTitle() {
68
- return this.model === 'title';
42
+ get valueAsOverviews() {
43
+ return this.value;
69
44
  }
70
- get isAbstract() {
71
- return this.model === 'abstract';
45
+ get valueAsUpdateFrequency() {
46
+ return this.value;
72
47
  }
73
- get isLicenses() {
74
- return this.model === 'licenses';
48
+ get valueAsTemporalExtents() {
49
+ return this.value;
75
50
  }
76
- get isResourceUpdated() {
77
- return this.model === 'resourceUpdated';
51
+ get valueAsKeywords() {
52
+ return this.value;
78
53
  }
79
- get isUpdateFrequency() {
80
- return this.model === 'updateFrequency';
54
+ get valueAsConstraints() {
55
+ return this.value;
81
56
  }
82
- get isTemporalExtents() {
83
- return this.model === 'temporalExtents';
57
+ get valueAsIndividuals() {
58
+ return this.value;
84
59
  }
85
- get withoutWrapper() {
86
- return this.model === 'title' || this.model === 'abstract';
60
+ get valueAsOnlineResources() {
61
+ return this.value;
87
62
  }
88
63
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
89
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FormFieldComponent, isStandalone: true, selector: "gn-ui-form-field", inputs: { model: "model", config: "config", value: "value" }, outputs: { valueChange: "valueChange" }, viewQueries: [{ propertyName: "titleInput", first: true, predicate: ["titleInput"], descendants: true }], ngImport: i0, template: "<div class=\"flex flex-col h-full\">\n <ng-container *ngIf=\"withoutWrapper; else withGenericWrapper\">\n <ng-container *ngTemplateOutlet=\"fieldContent\"></ng-container>\n </ng-container>\n <ng-template #withGenericWrapper>\n <gn-ui-form-field-wrapper\n [label]=\"config.labelKey | translate\"\n [hint]=\"config.hintKey | translate\"\n >\n <ng-container *ngTemplateOutlet=\"fieldContent\"></ng-container>\n </gn-ui-form-field-wrapper>\n </ng-template>\n</div>\n\n<ng-template #fieldContent>\n <ng-container *ngIf=\"isTitle\">\n <div class=\"flex justify-between items-center gap-3\">\n <h2\n #titleInput\n class=\"grow text-3xl font-normal\"\n [gnUiEditableLabel]=\"true\"\n (editableLabelChanged)=\"formControl.setValue($event)\"\n >\n {{ formControl.value }}\n </h2>\n <span\n class=\"material-symbols-outlined gn-ui-icon-small m-2 cursor-pointer\"\n (click)=\"focusTitleInput()\"\n >edit</span\n >\n <span\n class=\"material-symbols-outlined gn-ui-icon-small m-2\"\n [matTooltip]=\"config.hintKey | translate\"\n matTooltipPosition=\"above\"\n >\n help\n </span>\n </div>\n </ng-container>\n <ng-container *ngIf=\"isAbstract\">\n <gn-ui-form-field-rich\n class=\"h-[8rem]\"\n [control]=\"formControl\"\n [label]=\"config.labelKey | translate\"\n [hint]=\"config.hintKey | translate\"\n ></gn-ui-form-field-rich>\n </ng-container>\n <ng-container *ngIf=\"isLicenses\">\n <gn-ui-form-field-license\n [control]=\"formControl\"\n [label]=\"config.labelKey | translate\"\n ></gn-ui-form-field-license>\n </ng-container>\n <ng-container *ngIf=\"isResourceUpdated\">\n <gn-ui-form-field-resource-updated\n [control]=\"formControl\"\n ></gn-ui-form-field-resource-updated>\n </ng-container>\n <ng-container *ngIf=\"isUpdateFrequency\">\n <gn-ui-form-field-update-frequency\n [control]=\"formControl\"\n ></gn-ui-form-field-update-frequency>\n </ng-container>\n <ng-container *ngIf=\"isTemporalExtents\">\n <gn-ui-form-field-temporal-extents\n [control]=\"formControl\"\n ></gn-ui-form-field-temporal-extents>\n </ng-container>\n <ng-container *ngIf=\"isSimpleField\">\n <gn-ui-form-field-simple\n [type]=\"simpleType\"\n [control]=\"formControl\"\n [readonly]=\"isFieldLocked\"\n [invalid]=\"isFieldInvalid\"\n ></gn-ui-form-field-simple>\n </ng-container>\n <ng-container *ngIf=\"isFileField\">\n <gn-ui-form-field-file\n [control]=\"formControl\"\n [readonly]=\"isFieldLocked\"\n [invalid]=\"isFieldInvalid\"\n ></gn-ui-form-field-file>\n </ng-container>\n <ng-container *ngIf=\"isArrayField\">\n <gn-ui-form-field-array></gn-ui-form-field-array>\n </ng-container>\n <ng-container *ngIf=\"isObjectField\">\n <gn-ui-form-field-object></gn-ui-form-field-object>\n </ng-container>\n <ng-container *ngIf=\"isSpatialExtentField\">\n <gn-ui-form-field-spatial-extent></gn-ui-form-field-spatial-extent>\n </ng-container>\n <div\n *ngIf=\"isFieldInvalid && config.invalidHintKey\"\n class=\"mt-2 text-pink-500 text-sm field-invalid-hint\"\n >\n {{ config.invalidHintKey | translate }}\n </div>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: EditableLabelDirective, selector: "[gnUiEditableLabel]", inputs: ["gnUiEditableLabel"], outputs: ["editableLabelChanged"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i2.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: FormFieldWrapperComponent, selector: "gn-ui-form-field-wrapper", inputs: ["label", "hint"] }, { kind: "component", type: FormFieldLicenseComponent, selector: "gn-ui-form-field-license", inputs: ["control", "label"] }, { kind: "component", type: FormFieldResourceUpdatedComponent, selector: "gn-ui-form-field-resource-updated", inputs: ["control"] }, { kind: "component", type: FormFieldUpdateFrequencyComponent, selector: "gn-ui-form-field-update-frequency", inputs: ["control"] }, { kind: "component", type: FormFieldTemporalExtentsComponent, selector: "gn-ui-form-field-temporal-extents", inputs: ["control"] }, { kind: "component", type: FormFieldSimpleComponent, selector: "gn-ui-form-field-simple", inputs: ["type", "control", "readonly", "invalid", "placeholder", "options"] }, { kind: "component", type: FormFieldRichComponent, selector: "gn-ui-form-field-rich", inputs: ["control", "label", "hint", "helperText", "placeholder"] }, { kind: "component", type: FormFieldObjectComponent, selector: "gn-ui-form-field-object" }, { kind: "component", type: FormFieldSpatialExtentComponent, selector: "gn-ui-form-field-spatial-extent" }, { kind: "component", type: FormFieldFileComponent, selector: "gn-ui-form-field-file", inputs: ["control", "readonly", "invalid", "placeholder"] }, { kind: "component", type: FormFieldArrayComponent, selector: "gn-ui-form-field-array" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
64
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FormFieldComponent, isStandalone: true, selector: "gn-ui-form-field", inputs: { uniqueIdentifier: "uniqueIdentifier", model: "model", modelSpecifier: "modelSpecifier", config: "config", value: "value" }, outputs: { valueChange: "valueChange" }, viewQueries: [{ propertyName: "titleInput", first: true, predicate: ["titleInput"], descendants: true }], ngImport: i0, template: "<ng-container *ngIf=\"model === 'licenses'\">\n <gn-ui-form-field-open-data\n [value]=\"valueAsConstraints\"\n (valueChange)=\"valueChange.emit($event)\"\n (openDataChange)=\"isHidden = $event\"\n ></gn-ui-form-field-open-data>\n</ng-container>\n<div class=\"flex flex-col h-full\" *ngIf=\"!isHidden\">\n <ng-container *ngIf=\"withoutWrapper; else withGenericWrapper\">\n <ng-container *ngTemplateOutlet=\"fieldContent\"></ng-container>\n </ng-container>\n <ng-template #withGenericWrapper>\n <gn-ui-form-field-wrapper\n [label]=\"config.labelKey! | translate\"\n [hint]=\"config.hintKey! | translate\"\n >\n <ng-container *ngTemplateOutlet=\"fieldContent\"></ng-container>\n </gn-ui-form-field-wrapper>\n </ng-template>\n</div>\n\n<ng-template #fieldContent>\n <ng-container [ngSwitch]=\"model\">\n <ng-container *ngSwitchCase=\"'title'\">\n <div class=\"flex justify-between items-center gap-3\">\n <span\n #titleInput\n class=\"grow font-title text-3xl font-normal\"\n [gnUiEditableLabel]=\"valueAsString\"\n (editableLabelChanged)=\"valueChange.emit($event)\"\n ></span>\n <span\n class=\"material-symbols-outlined gn-ui-icon-small m-2 cursor-pointer\"\n (click)=\"focusTitleInput()\"\n >edit</span\n >\n <span\n class=\"material-symbols-outlined gn-ui-icon-small m-2\"\n [matTooltip]=\"config.hintKey! | translate\"\n matTooltipPosition=\"above\"\n >\n help\n </span>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'abstract'\">\n <gn-ui-form-field-rich\n class=\"h-[8rem]\"\n [label]=\"config.labelKey! | translate\"\n [hint]=\"config.hintKey! | translate\"\n [value]=\"valueAsString\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-rich>\n </ng-container>\n <ng-container *ngSwitchCase=\"'overviews'\">\n <gn-ui-form-field-overviews\n [metadataUuid]=\"uniqueIdentifier\"\n [value]=\"valueAsOverviews\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-overviews>\n </ng-container>\n <ng-container *ngSwitchCase=\"'uniqueIdentifier'\">\n <gn-ui-form-field-simple\n type=\"text\"\n [readonly]=\"true\"\n [value]=\"valueAsString\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-simple>\n </ng-container>\n <ng-container *ngSwitchCase=\"'resourceUpdated'\">\n <gn-ui-form-field-resource-updated\n [value]=\"valueAsDate\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-resource-updated>\n </ng-container>\n <ng-container *ngSwitchCase=\"'recordUpdated'\">\n <gn-ui-form-field-simple\n type=\"date\"\n [readonly]=\"true\"\n [value]=\"valueAsDate\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-simple>\n </ng-container>\n <ng-container *ngSwitchCase=\"'updateFrequency'\">\n <gn-ui-form-field-update-frequency\n [value]=\"valueAsUpdateFrequency\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-update-frequency>\n </ng-container>\n <ng-container *ngSwitchCase=\"'temporalExtents'\">\n <gn-ui-form-field-temporal-extents\n [value]=\"valueAsTemporalExtents\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-temporal-extents>\n </ng-container>\n <ng-container *ngSwitchCase=\"'spatialExtents'\">\n <gn-ui-form-field-spatial-extent></gn-ui-form-field-spatial-extent>\n </ng-container>\n <ng-container *ngSwitchCase=\"'keywords'\">\n <gn-ui-form-field-keywords\n [value]=\"valueAsKeywords\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-keywords>\n </ng-container>\n <ng-container *ngSwitchCase=\"'licenses'\">\n <gn-ui-form-field-license\n [label]=\"config.labelKey! | translate\"\n [value]=\"valueAsConstraints\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-license>\n </ng-container>\n <ng-container *ngSwitchCase=\"'contactsForResource'\">\n <gn-ui-form-field-contacts-for-resource\n [value]=\"valueAsIndividuals\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-contacts-for-resource>\n </ng-container>\n <ng-container *ngSwitchCase=\"'onlineResources'\">\n <gn-ui-form-field-online-link-resources\n *ngIf=\"modelSpecifier === 'onlineResourceType:link'\"\n [metadataUuid]=\"uniqueIdentifier\"\n [value]=\"valueAsOnlineResources\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-online-link-resources>\n </ng-container>\n </ng-container>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }, { kind: "directive", type: EditableLabelDirective, selector: "[gnUiEditableLabel]", inputs: ["gnUiEditableLabel"], outputs: ["editableLabelChanged"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: FormFieldWrapperComponent, selector: "gn-ui-form-field-wrapper", inputs: ["label", "hint"] }, { kind: "component", type: FormFieldLicenseComponent, selector: "gn-ui-form-field-license", inputs: ["label", "value"], outputs: ["valueChange"] }, { kind: "component", type: FormFieldResourceUpdatedComponent, selector: "gn-ui-form-field-resource-updated", inputs: ["value"], outputs: ["valueChange"] }, { kind: "component", type: FormFieldUpdateFrequencyComponent, selector: "gn-ui-form-field-update-frequency", inputs: ["value"], outputs: ["valueChange"] }, { kind: "component", type: FormFieldTemporalExtentsComponent, selector: "gn-ui-form-field-temporal-extents", inputs: ["value"], outputs: ["valueChange"] }, { kind: "component", type: FormFieldSimpleComponent, selector: "gn-ui-form-field-simple", inputs: ["type", "readonly", "invalid", "placeholder", "options", "value"], outputs: ["valueChange"] }, { kind: "component", type: FormFieldRichComponent, selector: "gn-ui-form-field-rich", inputs: ["label", "hint", "helperText", "placeholder", "value"], outputs: ["valueChange"] }, { kind: "component", type: FormFieldSpatialExtentComponent, selector: "gn-ui-form-field-spatial-extent" }, { kind: "component", type: FormFieldKeywordsComponent, selector: "gn-ui-form-field-keywords", inputs: ["value"], outputs: ["valueChange"] }, { kind: "component", type: FormFieldOverviewsComponent, selector: "gn-ui-form-field-overviews", inputs: ["metadataUuid", "value"], outputs: ["valueChange"] }, { kind: "component", type: FormFieldContactsForResourceComponent, selector: "gn-ui-form-field-contacts-for-resource", inputs: ["value"], outputs: ["valueChange"] }, { kind: "component", type: FormFieldOpenDataComponent, selector: "gn-ui-form-field-open-data", inputs: ["value"], outputs: ["valueChange", "openDataChange"] }, { kind: "component", type: FormFieldOnlineLinkResourcesComponent, selector: "gn-ui-form-field-online-link-resources", inputs: ["metadataUuid", "value"], outputs: ["valueChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
90
65
  }
91
66
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormFieldComponent, decorators: [{
92
67
  type: Component,
93
68
  args: [{ selector: 'gn-ui-form-field', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
94
69
  CommonModule,
95
- ReactiveFormsModule,
70
+ TranslateModule,
96
71
  EditableLabelDirective,
97
72
  MatIconModule,
98
73
  MatTooltipModule,
@@ -107,9 +82,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
107
82
  FormFieldSpatialExtentComponent,
108
83
  FormFieldFileComponent,
109
84
  FormFieldArrayComponent,
110
- TranslateModule,
111
- ], template: "<div class=\"flex flex-col h-full\">\n <ng-container *ngIf=\"withoutWrapper; else withGenericWrapper\">\n <ng-container *ngTemplateOutlet=\"fieldContent\"></ng-container>\n </ng-container>\n <ng-template #withGenericWrapper>\n <gn-ui-form-field-wrapper\n [label]=\"config.labelKey | translate\"\n [hint]=\"config.hintKey | translate\"\n >\n <ng-container *ngTemplateOutlet=\"fieldContent\"></ng-container>\n </gn-ui-form-field-wrapper>\n </ng-template>\n</div>\n\n<ng-template #fieldContent>\n <ng-container *ngIf=\"isTitle\">\n <div class=\"flex justify-between items-center gap-3\">\n <h2\n #titleInput\n class=\"grow text-3xl font-normal\"\n [gnUiEditableLabel]=\"true\"\n (editableLabelChanged)=\"formControl.setValue($event)\"\n >\n {{ formControl.value }}\n </h2>\n <span\n class=\"material-symbols-outlined gn-ui-icon-small m-2 cursor-pointer\"\n (click)=\"focusTitleInput()\"\n >edit</span\n >\n <span\n class=\"material-symbols-outlined gn-ui-icon-small m-2\"\n [matTooltip]=\"config.hintKey | translate\"\n matTooltipPosition=\"above\"\n >\n help\n </span>\n </div>\n </ng-container>\n <ng-container *ngIf=\"isAbstract\">\n <gn-ui-form-field-rich\n class=\"h-[8rem]\"\n [control]=\"formControl\"\n [label]=\"config.labelKey | translate\"\n [hint]=\"config.hintKey | translate\"\n ></gn-ui-form-field-rich>\n </ng-container>\n <ng-container *ngIf=\"isLicenses\">\n <gn-ui-form-field-license\n [control]=\"formControl\"\n [label]=\"config.labelKey | translate\"\n ></gn-ui-form-field-license>\n </ng-container>\n <ng-container *ngIf=\"isResourceUpdated\">\n <gn-ui-form-field-resource-updated\n [control]=\"formControl\"\n ></gn-ui-form-field-resource-updated>\n </ng-container>\n <ng-container *ngIf=\"isUpdateFrequency\">\n <gn-ui-form-field-update-frequency\n [control]=\"formControl\"\n ></gn-ui-form-field-update-frequency>\n </ng-container>\n <ng-container *ngIf=\"isTemporalExtents\">\n <gn-ui-form-field-temporal-extents\n [control]=\"formControl\"\n ></gn-ui-form-field-temporal-extents>\n </ng-container>\n <ng-container *ngIf=\"isSimpleField\">\n <gn-ui-form-field-simple\n [type]=\"simpleType\"\n [control]=\"formControl\"\n [readonly]=\"isFieldLocked\"\n [invalid]=\"isFieldInvalid\"\n ></gn-ui-form-field-simple>\n </ng-container>\n <ng-container *ngIf=\"isFileField\">\n <gn-ui-form-field-file\n [control]=\"formControl\"\n [readonly]=\"isFieldLocked\"\n [invalid]=\"isFieldInvalid\"\n ></gn-ui-form-field-file>\n </ng-container>\n <ng-container *ngIf=\"isArrayField\">\n <gn-ui-form-field-array></gn-ui-form-field-array>\n </ng-container>\n <ng-container *ngIf=\"isObjectField\">\n <gn-ui-form-field-object></gn-ui-form-field-object>\n </ng-container>\n <ng-container *ngIf=\"isSpatialExtentField\">\n <gn-ui-form-field-spatial-extent></gn-ui-form-field-spatial-extent>\n </ng-container>\n <div\n *ngIf=\"isFieldInvalid && config.invalidHintKey\"\n class=\"mt-2 text-pink-500 text-sm field-invalid-hint\"\n >\n {{ config.invalidHintKey | translate }}\n </div>\n</ng-template>\n" }]
112
- }], ctorParameters: function () { return []; }, propDecorators: { model: [{
85
+ FormFieldKeywordsComponent,
86
+ FormFieldOverviewsComponent,
87
+ FormFieldContactsForResourceComponent,
88
+ FormFieldOpenDataComponent,
89
+ FormFieldOnlineLinkResourcesComponent,
90
+ ], template: "<ng-container *ngIf=\"model === 'licenses'\">\n <gn-ui-form-field-open-data\n [value]=\"valueAsConstraints\"\n (valueChange)=\"valueChange.emit($event)\"\n (openDataChange)=\"isHidden = $event\"\n ></gn-ui-form-field-open-data>\n</ng-container>\n<div class=\"flex flex-col h-full\" *ngIf=\"!isHidden\">\n <ng-container *ngIf=\"withoutWrapper; else withGenericWrapper\">\n <ng-container *ngTemplateOutlet=\"fieldContent\"></ng-container>\n </ng-container>\n <ng-template #withGenericWrapper>\n <gn-ui-form-field-wrapper\n [label]=\"config.labelKey! | translate\"\n [hint]=\"config.hintKey! | translate\"\n >\n <ng-container *ngTemplateOutlet=\"fieldContent\"></ng-container>\n </gn-ui-form-field-wrapper>\n </ng-template>\n</div>\n\n<ng-template #fieldContent>\n <ng-container [ngSwitch]=\"model\">\n <ng-container *ngSwitchCase=\"'title'\">\n <div class=\"flex justify-between items-center gap-3\">\n <span\n #titleInput\n class=\"grow font-title text-3xl font-normal\"\n [gnUiEditableLabel]=\"valueAsString\"\n (editableLabelChanged)=\"valueChange.emit($event)\"\n ></span>\n <span\n class=\"material-symbols-outlined gn-ui-icon-small m-2 cursor-pointer\"\n (click)=\"focusTitleInput()\"\n >edit</span\n >\n <span\n class=\"material-symbols-outlined gn-ui-icon-small m-2\"\n [matTooltip]=\"config.hintKey! | translate\"\n matTooltipPosition=\"above\"\n >\n help\n </span>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'abstract'\">\n <gn-ui-form-field-rich\n class=\"h-[8rem]\"\n [label]=\"config.labelKey! | translate\"\n [hint]=\"config.hintKey! | translate\"\n [value]=\"valueAsString\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-rich>\n </ng-container>\n <ng-container *ngSwitchCase=\"'overviews'\">\n <gn-ui-form-field-overviews\n [metadataUuid]=\"uniqueIdentifier\"\n [value]=\"valueAsOverviews\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-overviews>\n </ng-container>\n <ng-container *ngSwitchCase=\"'uniqueIdentifier'\">\n <gn-ui-form-field-simple\n type=\"text\"\n [readonly]=\"true\"\n [value]=\"valueAsString\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-simple>\n </ng-container>\n <ng-container *ngSwitchCase=\"'resourceUpdated'\">\n <gn-ui-form-field-resource-updated\n [value]=\"valueAsDate\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-resource-updated>\n </ng-container>\n <ng-container *ngSwitchCase=\"'recordUpdated'\">\n <gn-ui-form-field-simple\n type=\"date\"\n [readonly]=\"true\"\n [value]=\"valueAsDate\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-simple>\n </ng-container>\n <ng-container *ngSwitchCase=\"'updateFrequency'\">\n <gn-ui-form-field-update-frequency\n [value]=\"valueAsUpdateFrequency\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-update-frequency>\n </ng-container>\n <ng-container *ngSwitchCase=\"'temporalExtents'\">\n <gn-ui-form-field-temporal-extents\n [value]=\"valueAsTemporalExtents\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-temporal-extents>\n </ng-container>\n <ng-container *ngSwitchCase=\"'spatialExtents'\">\n <gn-ui-form-field-spatial-extent></gn-ui-form-field-spatial-extent>\n </ng-container>\n <ng-container *ngSwitchCase=\"'keywords'\">\n <gn-ui-form-field-keywords\n [value]=\"valueAsKeywords\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-keywords>\n </ng-container>\n <ng-container *ngSwitchCase=\"'licenses'\">\n <gn-ui-form-field-license\n [label]=\"config.labelKey! | translate\"\n [value]=\"valueAsConstraints\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-license>\n </ng-container>\n <ng-container *ngSwitchCase=\"'contactsForResource'\">\n <gn-ui-form-field-contacts-for-resource\n [value]=\"valueAsIndividuals\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-contacts-for-resource>\n </ng-container>\n <ng-container *ngSwitchCase=\"'onlineResources'\">\n <gn-ui-form-field-online-link-resources\n *ngIf=\"modelSpecifier === 'onlineResourceType:link'\"\n [metadataUuid]=\"uniqueIdentifier\"\n [value]=\"valueAsOnlineResources\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-online-link-resources>\n </ng-container>\n </ng-container>\n</ng-template>\n" }]
91
+ }], propDecorators: { uniqueIdentifier: [{
92
+ type: Input
93
+ }], model: [{
94
+ type: Input
95
+ }], modelSpecifier: [{
113
96
  type: Input
114
97
  }], config: [{
115
98
  type: Input
@@ -121,4 +104,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
121
104
  type: ViewChild,
122
105
  args: ['titleInput']
123
106
  }] } });
124
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ZlYXR1cmUvZWRpdG9yL3NyYy9saWIvY29tcG9uZW50cy9yZWNvcmQtZm9ybS9mb3JtLWZpZWxkL2Zvcm0tZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9mZWF0dXJlL2VkaXRvci9zcmMvbGliL2NvbXBvbmVudHMvcmVjb3JkLWZvcm0vZm9ybS1maWVsZC9mb3JtLWZpZWxkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUM5QyxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsS0FBSyxFQUNMLE1BQU0sRUFDTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUE7QUFDdEIsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBQ2pFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQTtBQUN0RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQTtBQUM1RCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQTtBQUNuRixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQTtBQUN0RixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUE7QUFDckQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQTtBQUNqQyxPQUFPLEVBQ0wseUJBQXlCLEVBQ3pCLGlDQUFpQyxFQUNqQyxpQ0FBaUMsR0FDbEMsTUFBTSxHQUFHLENBQUE7QUFDVixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FB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QUs7Z0JBQ08sS0FBSztzQkFBakIsS0FBSztnQkFLSSxXQUFXO3NCQUFwQixNQUFNO2dCQUVrQixVQUFVO3NCQUFsQyxTQUFTO3VCQUFDLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nXG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJ1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nXG5pbXBvcnQgeyBNYXRUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCdcbmltcG9ydCB7IEVkaXRhYmxlTGFiZWxEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL2lucHV0cy9zcmMnXG5pbXBvcnQgeyBGb3JtRmllbGRXcmFwcGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS9sYXlvdXQvc3JjJ1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSdcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJ1xuaW1wb3J0IHtcbiAgRm9ybUZpZWxkTGljZW5zZUNvbXBvbmVudCxcbiAgRm9ybUZpZWxkUmVzb3VyY2VVcGRhdGVkQ29tcG9uZW50LFxuICBGb3JtRmllbGRUZW1wb3JhbEV4dGVudHNDb21wb25lbnQsXG59IGZyb20gJy4nXG5pbXBvcnQgeyBGb3JtRmllbGRBcnJheUNvbXBvbmVudCB9IGZyb20gJy4vZm9ybS1maWVsZC1hcnJheS9mb3JtLWZpZWxkLWFycmF5LmNvbXBvbmVudCdcbmltcG9ydCB7IEZvcm1GaWVsZEZpbGVDb21wb25lbnQgfSBmcm9tICcuL2Zvcm0tZmllbGQtZmlsZS9mb3JtLWZpZWxkLWZpbGUuY29tcG9uZW50J1xuaW1wb3J0IHsgRm9ybUZpZWxkT2JqZWN0Q29tcG9uZW50IH0gZnJvbSAnLi9mb3JtLWZpZWxkLW9iamVjdC9mb3JtLWZpZWxkLW9iamVjdC5jb21wb25lbnQnXG5pbXBvcnQgeyBGb3JtRmllbGRSaWNoQ29tcG9uZW50IH0gZnJvbSAnLi9mb3JtLWZpZWxkLXJpY2gvZm9ybS1maWVsZC1yaWNoLmNvbXBvbmVudCdcbmltcG9ydCB7IEZvcm1GaWVsZFNpbXBsZUNvbXBvbmVudCB9IGZyb20gJy4vZm9ybS1maWVsZC1zaW1wbGUvZm9ybS1maWVsZC1zaW1wbGUuY29tcG9uZW50J1xuaW1wb3J0IHsgRm9ybUZpZWxkU3BhdGlhbEV4dGVudENvbXBvbmVudCB9IGZyb20gJy4vZm9ybS1maWVsZC1zcGF0aWFsLWV4dGVudC9mb3JtLWZpZWxkLXNwYXRpYWwtZXh0ZW50LmNvbXBvbmVudCdcbmltcG9ydCB7IEZvcm1GaWVsZENvbmZpZyB9IGZyb20gJy4vZm9ybS1maWVsZC5tb2RlbCdcbmltcG9ydCB7IEZvcm1GaWVsZFVwZGF0ZUZyZXF1ZW5jeUNvbXBvbmVudCB9IGZyb20gJy4vZm9ybS1maWVsZC11cGRhdGUtZnJlcXVlbmN5L2Zvcm0tZmllbGQtdXBkYXRlLWZyZXF1ZW5jeS5jb21wb25lbnQnXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2duLXVpLWZvcm0tZmllbGQnLFxuICB0ZW1wbGF0ZVVybDogJy4vZm9ybS1maWVsZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Zvcm0tZmllbGQuY29tcG9uZW50LmNzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIEVkaXRhYmxlTGFiZWxEaXJlY3RpdmUsXG4gICAgTWF0SWNvbk1vZHVsZSxcbiAgICBNYXRUb29sdGlwTW9kdWxlLFxuICAgIEZvcm1GaWVsZFdyYXBwZXJDb21wb25lbnQsXG4gICAgRm9ybUZpZWxkTGljZW5zZUNvbXBvbmVudCxcbiAgICBGb3JtRmllbGRSZXNvdXJjZVVwZGF0ZWRDb21wb25lbnQsXG4gICAgRm9ybUZpZWxkVXBkYXRlRnJlcXVlbmN5Q29tcG9uZW50LFxuICAgIEZvcm1GaWVsZFRlbXBvcmFsRXh0ZW50c0NvbXBvbmVudCxcbiAgICBGb3JtRmllbGRTaW1wbGVDb21wb25lbnQsXG4gICAgRm9ybUZpZWxkUmljaENvbXBvbmVudCxcbiAgICBGb3JtRmllbGRPYmplY3RDb21wb25lbnQsXG4gICAgRm9ybUZpZWxkU3BhdGlhbEV4dGVudENvbXBvbmVudCxcbiAgICBGb3JtRmllbGRGaWxlQ29tcG9uZW50LFxuICAgIEZvcm1GaWVsZEFycmF5Q29tcG9uZW50LFxuICAgIFRyYW5zbGF0ZU1vZHVsZSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgRm9ybUZpZWxkQ29tcG9uZW50IHtcbiAgQElucHV0KCkgbW9kZWw6IHN0cmluZ1xuICBASW5wdXQoKSBjb25maWc6IEZvcm1GaWVsZENvbmZpZ1xuICBASW5wdXQoKSBzZXQgdmFsdWUodjogdW5rbm93bikge1xuICAgIHRoaXMuZm9ybUNvbnRyb2wuc2V0VmFsdWUodiwge1xuICAgICAgZW1pdEV2ZW50OiBmYWxzZSxcbiAgICB9KVxuICB9XG4gIEBPdXRwdXQoKSB2YWx1ZUNoYW5nZTogT2JzZXJ2YWJsZTx1bmtub3duPlxuXG4gIEBWaWV3Q2hpbGQoJ3RpdGxlSW5wdXQnKSB0aXRsZUlucHV0OiBFbGVtZW50UmVmXG5cbiAgZm9ybUNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woKVxuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMudmFsdWVDaGFuZ2UgPSB0aGlzLmZvcm1Db250cm9sLnZhbHVlQ2hhbmdlc1xuICB9XG5cbiAgZm9jdXNUaXRsZUlucHV0KCkge1xuICAgIHRoaXMudGl0bGVJbnB1dC5uYXRpdmVFbGVtZW50LmNoaWxkcmVuWzBdLmZvY3VzKClcbiAgfVxuXG4gIGdldCBzaW1wbGVUeXBlKCkge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZy50eXBlIGFzXG4gICAgICB8ICdkYXRlJ1xuICAgICAgfCAndXJsJ1xuICAgICAgfCAndGV4dCdcbiAgICAgIHwgJ251bWJlcidcbiAgICAgIHwgJ2xpc3QnXG4gICAgICB8ICd0b2dnbGUnXG4gIH1cblxuICBnZXQgaXNTaW1wbGVGaWVsZCgpIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5jb25maWcudHlwZSA9PT0gJ3RleHQnIHx8XG4gICAgICB0aGlzLmNvbmZpZy50eXBlID09PSAnbnVtYmVyJyB8fFxuICAgICAgdGhpcy5jb25maWcudHlwZSA9PT0gJ2RhdGUnIHx8XG4gICAgICB0aGlzLmNvbmZpZy50eXBlID09PSAnbGlzdCcgfHxcbiAgICAgIHRoaXMuY29uZmlnLnR5cGUgPT09ICd1cmwnIHx8XG4gICAgICB0aGlzLmNvbmZpZy50eXBlID09PSAndG9nZ2xlJ1xuICAgIClcbiAgfVxuICBnZXQgaXNGaWxlRmllbGQoKSB7XG4gICAgcmV0dXJuIHRoaXMuY29uZmlnLnR5cGUgPT09ICdmaWxlJ1xuICB9XG4gIGdldCBpc1NwYXRpYWxFeHRlbnRGaWVsZCgpIHtcbiAgICByZXR1cm4gdGhpcy5jb25maWcudHlwZSA9PT0gJ3NwYXRpYWxfZXh0ZW50J1xuICB9XG4gIGdldCBpc0FycmF5RmllbGQoKSB7XG4gICAgcmV0dXJuIHRoaXMuY29uZmlnLnR5cGUgPT09ICdhcnJheSdcbiAgfVxuICBnZXQgaXNPYmplY3RGaWVsZCgpIHtcbiAgICByZXR1cm4gdGhpcy5jb25maWcudHlwZSA9PT0gJ29iamVjdCdcbiAgfVxuXG4gIGdldCBpc0ZpZWxkT2soKSB7XG4gICAgcmV0dXJuICF0aGlzLmNvbmZpZy5sb2NrZWQgJiYgIXRoaXMuY29uZmlnLmludmFsaWRcbiAgfVxuICBnZXQgaXNGaWVsZExvY2tlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5jb25maWcubG9ja2VkXG4gIH1cbiAgZ2V0IGlzRmllbGRJbnZhbGlkKCkge1xuICAgIHJldHVybiAhdGhpcy5jb25maWcubG9ja2VkICYmIHRoaXMuY29uZmlnLmludmFsaWRcbiAgfVxuXG4gIGdldCBpc1RpdGxlKCkge1xuICAgIHJldHVybiB0aGlzLm1vZGVsID09PSAndGl0bGUnXG4gIH1cbiAgZ2V0IGlzQWJzdHJhY3QoKSB7XG4gICAgcmV0dXJuIHRoaXMubW9kZWwgPT09ICdhYnN0cmFjdCdcbiAgfVxuICBnZXQgaXNMaWNlbnNlcygpIHtcbiAgICByZXR1cm4gdGhpcy5tb2RlbCA9PT0gJ2xpY2Vuc2VzJ1xuICB9XG4gIGdldCBpc1Jlc291cmNlVXBkYXRlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5tb2RlbCA9PT0gJ3Jlc291cmNlVXBkYXRlZCdcbiAgfVxuICBnZXQgaXNVcGRhdGVGcmVxdWVuY3koKSB7XG4gICAgcmV0dXJuIHRoaXMubW9kZWwgPT09ICd1cGRhdGVGcmVxdWVuY3knXG4gIH1cbiAgZ2V0IGlzVGVtcG9yYWxFeHRlbnRzKCkge1xuICAgIHJldHVybiB0aGlzLm1vZGVsID09PSAndGVtcG9yYWxFeHRlbnRzJ1xuICB9XG5cbiAgZ2V0IHdpdGhvdXRXcmFwcGVyKCkge1xuICAgIHJldHVybiB0aGlzLm1vZGVsID09PSAndGl0bGUnIHx8IHRoaXMubW9kZWwgPT09ICdhYnN0cmFjdCdcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgaC1mdWxsXCI+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJ3aXRob3V0V3JhcHBlcjsgZWxzZSB3aXRoR2VuZXJpY1dyYXBwZXJcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZmllbGRDb250ZW50XCI+PC9uZy1jb250YWluZXI+XG4gIDwvbmctY29udGFpbmVyPlxuICA8bmctdGVtcGxhdGUgI3dpdGhHZW5lcmljV3JhcHBlcj5cbiAgICA8Z24tdWktZm9ybS1maWVsZC13cmFwcGVyXG4gICAgICBbbGFiZWxdPVwiY29uZmlnLmxhYmVsS2V5IHwgdHJhbnNsYXRlXCJcbiAgICAgIFtoaW50XT1cImNvbmZpZy5oaW50S2V5IHwgdHJhbnNsYXRlXCJcbiAgICA+XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZmllbGRDb250ZW50XCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9nbi11aS1mb3JtLWZpZWxkLXdyYXBwZXI+XG4gIDwvbmctdGVtcGxhdGU+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNmaWVsZENvbnRlbnQ+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc1RpdGxlXCI+XG4gICAgPGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1iZXR3ZWVuIGl0ZW1zLWNlbnRlciBnYXAtM1wiPlxuICAgICAgPGgyXG4gICAgICAgICN0aXRsZUlucHV0XG4gICAgICAgIGNsYXNzPVwiZ3JvdyB0ZXh0LTN4bCBmb250LW5vcm1hbFwiXG4gICAgICAgIFtnblVpRWRpdGFibGVMYWJlbF09XCJ0cnVlXCJcbiAgICAgICAgKGVkaXRhYmxlTGFiZWxDaGFuZ2VkKT1cImZvcm1Db250cm9sLnNldFZhbHVlKCRldmVudClcIlxuICAgICAgPlxuICAgICAgICB7eyBmb3JtQ29udHJvbC52YWx1ZSB9fVxuICAgICAgPC9oMj5cbiAgICAgIDxzcGFuXG4gICAgICAgIGNsYXNzPVwibWF0ZXJpYWwtc3ltYm9scy1vdXRsaW5lZCBnbi11aS1pY29uLXNtYWxsIG0tMiBjdXJzb3ItcG9pbnRlclwiXG4gICAgICAgIChjbGljayk9XCJmb2N1c1RpdGxlSW5wdXQoKVwiXG4gICAgICAgID5lZGl0PC9zcGFuXG4gICAgICA+XG4gICAgICA8c3BhblxuICAgICAgICBjbGFzcz1cIm1hdGVyaWFsLXN5bWJvbHMtb3V0bGluZWQgZ24tdWktaWNvbi1zbWFsbCBtLTJcIlxuICAgICAgICBbbWF0VG9vbHRpcF09XCJjb25maWcuaGludEtleSB8IHRyYW5zbGF0ZVwiXG4gICAgICAgIG1hdFRvb2x0aXBQb3NpdGlvbj1cImFib3ZlXCJcbiAgICAgID5cbiAgICAgICAgaGVscFxuICAgICAgPC9zcGFuPlxuICAgIDwvZGl2PlxuICA8L25nLWNvbnRhaW5lcj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzQWJzdHJhY3RcIj5cbiAgICA8Z24tdWktZm9ybS1maWVsZC1yaWNoXG4gICAgICBjbGFzcz1cImgtWzhyZW1dXCJcbiAgICAgIFtjb250cm9sXT1cImZvcm1Db250cm9sXCJcbiAgICAgIFtsYWJlbF09XCJjb25maWcubGFiZWxLZXkgfCB0cmFuc2xhdGVcIlxuICAgICAgW2hpbnRdPVwiY29uZmlnLmhpbnRLZXkgfCB0cmFuc2xhdGVcIlxuICAgID48L2duLXVpLWZvcm0tZmllbGQtcmljaD5cbiAgPC9uZy1jb250YWluZXI+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc0xpY2Vuc2VzXCI+XG4gICAgPGduLXVpLWZvcm0tZmllbGQtbGljZW5zZVxuICAgICAgW2NvbnRyb2xdPVwiZm9ybUNvbnRyb2xcIlxuICAgICAgW2xhYmVsXT1cImNvbmZpZy5sYWJlbEtleSB8IHRyYW5zbGF0ZVwiXG4gICAgPjwvZ24tdWktZm9ybS1maWVsZC1saWNlbnNlPlxuICA8L25nLWNvbnRhaW5lcj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzUmVzb3VyY2VVcGRhdGVkXCI+XG4gICAgPGduLXVpLWZvcm0tZmllbGQtcmVzb3VyY2UtdXBkYXRlZFxuICAgICAgW2NvbnRyb2xdPVwiZm9ybUNvbnRyb2xcIlxuICAgID48L2duLXVpLWZvcm0tZmllbGQtcmVzb3VyY2UtdXBkYXRlZD5cbiAgPC9uZy1jb250YWluZXI+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc1VwZGF0ZUZyZXF1ZW5jeVwiPlxuICAgIDxnbi11aS1mb3JtLWZpZWxkLXVwZGF0ZS1mcmVxdWVuY3lcbiAgICAgIFtjb250cm9sXT1cImZvcm1Db250cm9sXCJcbiAgICA+PC9nbi11aS1mb3JtLWZpZWxkLXVwZGF0ZS1mcmVxdWVuY3k+XG4gIDwvbmctY29udGFpbmVyPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNUZW1wb3JhbEV4dGVudHNcIj5cbiAgICA8Z24tdWktZm9ybS1maWVsZC10ZW1wb3JhbC1leHRlbnRzXG4gICAgICBbY29udHJvbF09XCJmb3JtQ29udHJvbFwiXG4gICAgPjwvZ24tdWktZm9ybS1maWVsZC10ZW1wb3JhbC1leHRlbnRzPlxuICA8L25nLWNvbnRhaW5lcj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzU2ltcGxlRmllbGRcIj5cbiAgICA8Z24tdWktZm9ybS1maWVsZC1zaW1wbGVcbiAgICAgIFt0eXBlXT1cInNpbXBsZVR5cGVcIlxuICAgICAgW2NvbnRyb2xdPVwiZm9ybUNvbnRyb2xcIlxuICAgICAgW3JlYWRvbmx5XT1cImlzRmllbGRMb2NrZWRcIlxuICAgICAgW2ludmFsaWRdPVwiaXNGaWVsZEludmFsaWRcIlxuICAgID48L2duLXVpLWZvcm0tZmllbGQtc2ltcGxlPlxuICA8L25nLWNvbnRhaW5lcj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzRmlsZUZpZWxkXCI+XG4gICAgPGduLXVpLWZvcm0tZmllbGQtZmlsZVxuICAgICAgW2NvbnRyb2xdPVwiZm9ybUNvbnRyb2xcIlxuICAgICAgW3JlYWRvbmx5XT1cImlzRmllbGRMb2NrZWRcIlxuICAgICAgW2ludmFsaWRdPVwiaXNGaWVsZEludmFsaWRcIlxuICAgID48L2duLXVpLWZvcm0tZmllbGQtZmlsZT5cbiAgPC9uZy1jb250YWluZXI+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc0FycmF5RmllbGRcIj5cbiAgICA8Z24tdWktZm9ybS1maWVsZC1hcnJheT48L2duLXVpLWZvcm0tZmllbGQtYXJyYXk+XG4gIDwvbmctY29udGFpbmVyPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNPYmplY3RGaWVsZFwiPlxuICAgIDxnbi11aS1mb3JtLWZpZWxkLW9iamVjdD48L2duLXVpLWZvcm0tZmllbGQtb2JqZWN0PlxuICA8L25nLWNvbnRhaW5lcj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzU3BhdGlhbEV4dGVudEZpZWxkXCI+XG4gICAgPGduLXVpLWZvcm0tZmllbGQtc3BhdGlhbC1leHRlbnQ+PC9nbi11aS1mb3JtLWZpZWxkLXNwYXRpYWwtZXh0ZW50PlxuICA8L25nLWNvbnRhaW5lcj5cbiAgPGRpdlxuICAgICpuZ0lmPVwiaXNGaWVsZEludmFsaWQgJiYgY29uZmlnLmludmFsaWRIaW50S2V5XCJcbiAgICBjbGFzcz1cIm10LTIgdGV4dC1waW5rLTUwMCB0ZXh0LXNtIGZpZWxkLWludmFsaWQtaGludFwiXG4gID5cbiAgICB7eyBjb25maWcuaW52YWxpZEhpbnRLZXkgfCB0cmFuc2xhdGUgfX1cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
107
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ZlYXR1cmUvZWRpdG9yL3NyYy9saWIvY29tcG9uZW50cy9yZWNvcmQtZm9ybS9mb3JtLWZpZWxkL2Zvcm0tZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9mZWF0dXJlL2VkaXRvci9zcmMvbGliL2NvbXBvbmVudHMvcmVjb3JkLWZvcm0vZm9ybS1maWVsZC9mb3JtLWZpZWxkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUM5QyxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFBO0FBQ3RCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQTtBQUN0RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQTtBQVc1RCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQTtBQUNuRixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQTtBQUN0RixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUE7QUFDckQsT0FBTyxFQUNMLHlCQUF5QixFQUN6QixpQ0FBaUMsRUFDakMsaUNBQWlDLEdBQ2xDLE1BQU0sR0FBRyxDQUFBO0FBRVYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sK0NBQStDLENBQUE7QUFDdkYsT0FBTyxFQUFFLHFDQUFxQyxFQUFFLE1BQU0sK0VBQStFLENBQUE7QUFDckksT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNkNBQTZD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LHNCQUFzQjt3QkFDdEIsdUJBQXVCO3dCQUN2QiwwQkFBMEI7d0JBQzFCLDJCQUEyQjt3QkFDM0IscUNBQXFDO3dCQUNyQywwQkFBMEI7d0JBQzFCLHFDQUFxQztxQkFDdEM7OEJBR1EsZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBRUksV0FBVztzQkFBcEIsTUFBTTtnQkFFa0IsVUFBVTtzQkFBbEMsU0FBUzt1QkFBQyxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbidcbmltcG9ydCB7IE1hdFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJ1xuaW1wb3J0IHtcbiAgQ2F0YWxvZ1JlY29yZEtleXMsXG4gIENvbnN0cmFpbnQsXG4gIERhdGFzZXRUZW1wb3JhbEV4dGVudCxcbiAgR3JhcGhpY092ZXJ2aWV3LFxuICBJbmRpdmlkdWFsLFxuICBLZXl3b3JkLFxuICBPbmxpbmVSZXNvdXJjZSxcbiAgVXBkYXRlRnJlcXVlbmN5LFxufSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9tb2RlbC9yZWNvcmQnXG5pbXBvcnQgeyBFZGl0YWJsZUxhYmVsRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS9pbnB1dHMvc3JjJ1xuaW1wb3J0IHsgRm9ybUZpZWxkV3JhcHBlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvbGF5b3V0L3NyYydcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnXG5pbXBvcnQge1xuICBGb3JtRmllbGRMaWNlbnNlQ29tcG9uZW50LFxuICBGb3JtRmllbGRSZXNvdXJjZVVwZGF0ZWRDb21wb25lbnQsXG4gIEZvcm1GaWVsZFRlbXBvcmFsRXh0ZW50c0NvbXBvbmVudCxcbn0gZnJvbSAnLidcbmltcG9ydCB7IEZpZWxkTW9kZWxTcGVjaWZpZXIsIEZvcm1GaWVsZENvbmZpZyB9IGZyb20gJy4uLy4uLy4uL21vZGVscydcbmltcG9ydCB7IEZvcm1GaWVsZEFycmF5Q29tcG9uZW50IH0gZnJvbSAnLi9mb3JtLWZpZWxkLWFycmF5L2Zvcm0tZmllbGQtYXJyYXkuY29tcG9uZW50J1xuaW1wb3J0IHsgRm9ybUZpZWxkQ29udGFjdHNGb3JSZXNvdXJjZUNvbXBvbmVudCB9IGZyb20gJy4vZm9ybS1maWVsZC1jb250YWN0cy1mb3ItcmVzb3VyY2UvZm9ybS1maWVsZC1jb250YWN0cy1mb3ItcmVzb3VyY2UuY29tcG9uZW50J1xuaW1wb3J0IHsgRm9ybUZpZWxkRmlsZUNvbXBvbmVudCB9IGZyb20gJy4vZm9ybS1maWVsZC1maWxlL2Zvcm0tZmllbGQtZmlsZS5jb21wb25lbnQnXG5pbXBvcnQgeyBGb3JtRmllbGRLZXl3b3Jkc0NvbXBvbmVudCB9IGZyb20gJy4vZm9ybS1maWVsZC1rZXl3b3Jkcy9mb3JtLWZpZWxkLWtleXdvcmRzLmNvbXBvbmVudCdcbmltcG9ydCB7IEZvcm1GaWVsZE9iamVjdENvbXBvbmVudCB9IGZyb20gJy4vZm9ybS1maWVsZC1vYmplY3QvZm9ybS1maWVsZC1vYmplY3QuY29tcG9uZW50J1xuaW1wb3J0IHsgRm9ybUZpZWxkT3ZlcnZpZXdzQ29tcG9uZW50IH0gZnJvbSAnLi9mb3JtLWZpZWxkLW92ZXJ2aWV3cy9mb3JtLWZpZWxkLW92ZXJ2aWV3cy5jb21wb25lbnQnXG5pbXBvcnQgeyBGb3JtRmllbGRSaWNoQ29tcG9uZW50IH0gZnJvbSAnLi9mb3JtLWZpZWxkLXJpY2gvZm9ybS1maWVsZC1yaWNoLmNvbXBvbmVudCdcbmltcG9ydCB7IEZvcm1GaWVsZFNpbXBsZUNvbXBvbmVudCB9IGZyb20gJy4vZm9ybS1maWVsZC1zaW1wbGUvZm9ybS1maWVsZC1zaW1wbGUuY29tcG9uZW50J1xuaW1wb3J0IHsgRm9ybUZpZWxkU3BhdGlhbEV4dGVudENvbXBvbmVudCB9IGZyb20gJy4vZm9ybS1maWVsZC1zcGF0aWFsLWV4dGVudC9mb3JtLWZpZWxkLXNwYXRpYWwtZXh0ZW50LmNvbXBvbmVudCdcbmltcG9ydCB7IEZvcm1GaWVsZFVwZGF0ZUZyZXF1ZW5jeUNvbXBvbmVudCB9IGZyb20gJy4vZm9ybS1maWVsZC11cGRhdGUtZnJlcXVlbmN5L2Zvcm0tZmllbGQtdXBkYXRlLWZyZXF1ZW5jeS5jb21wb25lbnQnXG5pbXBvcnQgeyBGb3JtRmllbGRPcGVuRGF0YUNvbXBvbmVudCB9IGZyb20gJy4vZm9ybS1maWVsZC1vcGVuLWRhdGEvZm9ybS1maWVsZC1vcGVuLWRhdGEuY29tcG9uZW50J1xuaW1wb3J0IHsgRm9ybUZpZWxkT25saW5lTGlua1Jlc291cmNlc0NvbXBvbmVudCB9IGZyb20gJy4vZm9ybS1maWVsZC1vbmxpbmUtbGluay1yZXNvdXJjZXMvZm9ybS1maWVsZC1vbmxpbmUtbGluay1yZXNvdXJjZXMuY29tcG9uZW50J1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdnbi11aS1mb3JtLWZpZWxkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Zvcm0tZmllbGQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9mb3JtLWZpZWxkLmNvbXBvbmVudC5jc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxuICAgIEVkaXRhYmxlTGFiZWxEaXJlY3RpdmUsXG4gICAgTWF0SWNvbk1vZHVsZSxcbiAgICBNYXRUb29sdGlwTW9kdWxlLFxuICAgIEZvcm1GaWVsZFdyYXBwZXJDb21wb25lbnQsXG4gICAgRm9ybUZpZWxkTGljZW5zZUNvbXBvbmVudCxcbiAgICBGb3JtRmllbGRSZXNvdXJjZVVwZGF0ZWRDb21wb25lbnQsXG4gICAgRm9ybUZpZWxkVXBkYXRlRnJlcXVlbmN5Q29tcG9uZW50LFxuICAgIEZvcm1GaWVsZFRlbXBvcmFsRXh0ZW50c0NvbXBvbmVudCxcbiAgICBGb3JtRmllbGRTaW1wbGVDb21wb25lbnQsXG4gICAgRm9ybUZpZWxkUmljaENvbXBvbmVudCxcbiAgICBGb3JtRmllbGRPYmplY3RDb21wb25lbnQsXG4gICAgRm9ybUZpZWxkU3BhdGlhbEV4dGVudENvbXBvbmVudCxcbiAgICBGb3JtRmllbGRGaWxlQ29tcG9uZW50LFxuICAgIEZvcm1GaWVsZEFycmF5Q29tcG9uZW50LFxuICAgIEZvcm1GaWVsZEtleXdvcmRzQ29tcG9uZW50LFxuICAgIEZvcm1GaWVsZE92ZXJ2aWV3c0NvbXBvbmVudCxcbiAgICBGb3JtRmllbGRDb250YWN0c0ZvclJlc291cmNlQ29tcG9uZW50LFxuICAgIEZvcm1GaWVsZE9wZW5EYXRhQ29tcG9uZW50LFxuICAgIEZvcm1GaWVsZE9ubGluZUxpbmtSZXNvdXJjZXNDb21wb25lbnQsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEZvcm1GaWVsZENvbXBvbmVudCB7XG4gIEBJbnB1dCgpIHVuaXF1ZUlkZW50aWZpZXI6IHN0cmluZ1xuICBASW5wdXQoKSBtb2RlbDogQ2F0YWxvZ1JlY29yZEtleXNcbiAgQElucHV0KCkgbW9kZWxTcGVjaWZpZXI6IEZpZWxkTW9kZWxTcGVjaWZpZXJcbiAgQElucHV0KCkgY29uZmlnOiBGb3JtRmllbGRDb25maWdcbiAgQElucHV0KCkgdmFsdWU6IHVua25vd25cblxuICBAT3V0cHV0KCkgdmFsdWVDaGFuZ2U6IEV2ZW50RW1pdHRlcjx1bmtub3duPiA9IG5ldyBFdmVudEVtaXR0ZXIoKVxuXG4gIEBWaWV3Q2hpbGQoJ3RpdGxlSW5wdXQnKSB0aXRsZUlucHV0OiBFbGVtZW50UmVmXG5cbiAgaXNIaWRkZW4gPSBmYWxzZVxuXG4gIGZvY3VzVGl0bGVJbnB1dCgpIHtcbiAgICB0aGlzLnRpdGxlSW5wdXQubmF0aXZlRWxlbWVudC5jaGlsZHJlblswXS5mb2N1cygpXG4gIH1cblxuICBnZXQgd2l0aG91dFdyYXBwZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMubW9kZWwgPT09ICd0aXRsZScgfHwgdGhpcy5tb2RlbCA9PT0gJ2Fic3RyYWN0J1xuICB9XG5cbiAgZ2V0IHZhbHVlQXNTdHJpbmcoKSB7XG4gICAgcmV0dXJuIHRoaXMudmFsdWUgYXMgc3RyaW5nXG4gIH1cbiAgZ2V0IHZhbHVlQXNEYXRlKCkge1xuICAgIHJldHVybiB0aGlzLnZhbHVlIGFzIERhdGVcbiAgfVxuXG4gIGdldCB2YWx1ZUFzT3ZlcnZpZXdzKCkge1xuICAgIHJldHVybiB0aGlzLnZhbHVlIGFzIEFycmF5PEdyYXBoaWNPdmVydmlldz5cbiAgfVxuICBnZXQgdmFsdWVBc1VwZGF0ZUZyZXF1ZW5jeSgpIHtcbiAgICByZXR1cm4gdGhpcy52YWx1ZSBhcyBVcGRhdGVGcmVxdWVuY3lcbiAgfVxuICBnZXQgdmFsdWVBc1RlbXBvcmFsRXh0ZW50cygpIHtcbiAgICByZXR1cm4gdGhpcy52YWx1ZSBhcyBBcnJheTxEYXRhc2V0VGVtcG9yYWxFeHRlbnQ+XG4gIH1cbiAgZ2V0IHZhbHVlQXNLZXl3b3JkcygpIHtcbiAgICByZXR1cm4gdGhpcy52YWx1ZSBhcyBBcnJheTxLZXl3b3JkPlxuICB9XG4gIGdldCB2YWx1ZUFzQ29uc3RyYWludHMoKSB7XG4gICAgcmV0dXJuIHRoaXMudmFsdWUgYXMgQXJyYXk8Q29uc3RyYWludD5cbiAgfVxuICBnZXQgdmFsdWVBc0luZGl2aWR1YWxzKCkge1xuICAgIHJldHVybiB0aGlzLnZhbHVlIGFzIEFycmF5PEluZGl2aWR1YWw+XG4gIH1cbiAgZ2V0IHZhbHVlQXNPbmxpbmVSZXNvdXJjZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMudmFsdWUgYXMgQXJyYXk8T25saW5lUmVzb3VyY2U+XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJtb2RlbCA9PT0gJ2xpY2Vuc2VzJ1wiPlxuICA8Z24tdWktZm9ybS1maWVsZC1vcGVuLWRhdGFcbiAgICBbdmFsdWVdPVwidmFsdWVBc0NvbnN0cmFpbnRzXCJcbiAgICAodmFsdWVDaGFuZ2UpPVwidmFsdWVDaGFuZ2UuZW1pdCgkZXZlbnQpXCJcbiAgICAob3BlbkRhdGFDaGFuZ2UpPVwiaXNIaWRkZW4gPSAkZXZlbnRcIlxuICA+PC9nbi11aS1mb3JtLWZpZWxkLW9wZW4tZGF0YT5cbjwvbmctY29udGFpbmVyPlxuPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgaC1mdWxsXCIgKm5nSWY9XCIhaXNIaWRkZW5cIj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIndpdGhvdXRXcmFwcGVyOyBlbHNlIHdpdGhHZW5lcmljV3JhcHBlclwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJmaWVsZENvbnRlbnRcIj48L25nLWNvbnRhaW5lcj5cbiAgPC9uZy1jb250YWluZXI+XG4gIDxuZy10ZW1wbGF0ZSAjd2l0aEdlbmVyaWNXcmFwcGVyPlxuICAgIDxnbi11aS1mb3JtLWZpZWxkLXdyYXBwZXJcbiAgICAgIFtsYWJlbF09XCJjb25maWcubGFiZWxLZXkhIHwgdHJhbnNsYXRlXCJcbiAgICAgIFtoaW50XT1cImNvbmZpZy5oaW50S2V5ISB8IHRyYW5zbGF0ZVwiXG4gICAgPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImZpZWxkQ29udGVudFwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvZ24tdWktZm9ybS1maWVsZC13cmFwcGVyPlxuICA8L25nLXRlbXBsYXRlPlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjZmllbGRDb250ZW50PlxuICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJtb2RlbFwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIid0aXRsZSdcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGp1c3RpZnktYmV0d2VlbiBpdGVtcy1jZW50ZXIgZ2FwLTNcIj5cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICAjdGl0bGVJbnB1dFxuICAgICAgICAgIGNsYXNzPVwiZ3JvdyBmb250LXRpdGxlIHRleHQtM3hsIGZvbnQtbm9ybWFsXCJcbiAgICAgICAgICBbZ25VaUVkaXRhYmxlTGFiZWxdPVwidmFsdWVBc1N0cmluZ1wiXG4gICAgICAgICAgKGVkaXRhYmxlTGFiZWxDaGFuZ2VkKT1cInZhbHVlQ2hhbmdlLmVtaXQoJGV2ZW50KVwiXG4gICAgICAgID48L3NwYW4+XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgY2xhc3M9XCJtYXRlcmlhbC1zeW1ib2xzLW91dGxpbmVkIGduLXVpLWljb24tc21hbGwgbS0yIGN1cnNvci1wb2ludGVyXCJcbiAgICAgICAgICAoY2xpY2spPVwiZm9jdXNUaXRsZUlucHV0KClcIlxuICAgICAgICAgID5lZGl0PC9zcGFuXG4gICAgICAgID5cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICBjbGFzcz1cIm1hdGVyaWFsLXN5bWJvbHMtb3V0bGluZWQgZ24tdWktaWNvbi1zbWFsbCBtLTJcIlxuICAgICAgICAgIFttYXRUb29sdGlwXT1cImNvbmZpZy5oaW50S2V5ISB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgbWF0VG9vbHRpcFBvc2l0aW9uPVwiYWJvdmVcIlxuICAgICAgICA+XG4gICAgICAgICAgaGVscFxuICAgICAgICA8L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInYWJzdHJhY3QnXCI+XG4gICAgICA8Z24tdWktZm9ybS1maWVsZC1yaWNoXG4gICAgICAgIGNsYXNzPVwiaC1bOHJlbV1cIlxuICAgICAgICBbbGFiZWxdPVwiY29uZmlnLmxhYmVsS2V5ISB8IHRyYW5zbGF0ZVwiXG4gICAgICAgIFtoaW50XT1cImNvbmZpZy5oaW50S2V5ISB8IHRyYW5zbGF0ZVwiXG4gICAgICAgIFt2YWx1ZV09XCJ2YWx1ZUFzU3RyaW5nXCJcbiAgICAgICAgKHZhbHVlQ2hhbmdlKT1cInZhbHVlQ2hhbmdlLmVtaXQoJGV2ZW50KVwiXG4gICAgICA+PC9nbi11aS1mb3JtLWZpZWxkLXJpY2g+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ292ZXJ2aWV3cydcIj5cbiAgICAgIDxnbi11aS1mb3JtLWZpZWxkLW92ZXJ2aWV3c1xuICAgICAgICBbbWV0YWRhdGFVdWlkXT1cInVuaXF1ZUlkZW50aWZpZXJcIlxuICAgICAgICBbdmFsdWVdPVwidmFsdWVBc092ZXJ2aWV3c1wiXG4gICAgICAgICh2YWx1ZUNoYW5nZSk9XCJ2YWx1ZUNoYW5nZS5lbWl0KCRldmVudClcIlxuICAgICAgPjwvZ24tdWktZm9ybS1maWVsZC1vdmVydmlld3M+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ3VuaXF1ZUlkZW50aWZpZXInXCI+XG4gICAgICA8Z24tdWktZm9ybS1maWVsZC1zaW1wbGVcbiAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICBbcmVhZG9ubHldPVwidHJ1ZVwiXG4gICAgICAgIFt2YWx1ZV09XCJ2YWx1ZUFzU3RyaW5nXCJcbiAgICAgICAgKHZhbHVlQ2hhbmdlKT1cInZhbHVlQ2hhbmdlLmVtaXQoJGV2ZW50KVwiXG4gICAgICA+PC9nbi11aS1mb3JtLWZpZWxkLXNpbXBsZT5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCIncmVzb3VyY2VVcGRhdGVkJ1wiPlxuICAgICAgPGduLXVpLWZvcm0tZmllbGQtcmVzb3VyY2UtdXBkYXRlZFxuICAgICAgICBbdmFsdWVdPVwidmFsdWVBc0RhdGVcIlxuICAgICAgICAodmFsdWVDaGFuZ2UpPVwidmFsdWVDaGFuZ2UuZW1pdCgkZXZlbnQpXCJcbiAgICAgID48L2duLXVpLWZvcm0tZmllbGQtcmVzb3VyY2UtdXBkYXRlZD5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCIncmVjb3JkVXBkYXRlZCdcIj5cbiAgICAgIDxnbi11aS1mb3JtLWZpZWxkLXNpbXBsZVxuICAgICAgICB0eXBlPVwiZGF0ZVwiXG4gICAgICAgIFtyZWFkb25seV09XCJ0cnVlXCJcbiAgICAgICAgW3ZhbHVlXT1cInZhbHVlQXNEYXRlXCJcbiAgICAgICAgKHZhbHVlQ2hhbmdlKT1cInZhbHVlQ2hhbmdlLmVtaXQoJGV2ZW50KVwiXG4gICAgICA+PC9nbi11aS1mb3JtLWZpZWxkLXNpbXBsZT5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCIndXBkYXRlRnJlcXVlbmN5J1wiPlxuICAgICAgPGduLXVpLWZvcm0tZmllbGQtdXBkYXRlLWZyZXF1ZW5jeVxuICAgICAgICBbdmFsdWVdPVwidmFsdWVBc1VwZGF0ZUZyZXF1ZW5jeVwiXG4gICAgICAgICh2YWx1ZUNoYW5nZSk9XCJ2YWx1ZUNoYW5nZS5lbWl0KCRldmVudClcIlxuICAgICAgPjwvZ24tdWktZm9ybS1maWVsZC11cGRhdGUtZnJlcXVlbmN5PlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIid0ZW1wb3JhbEV4dGVudHMnXCI+XG4gICAgICA8Z24tdWktZm9ybS1maWVsZC10ZW1wb3JhbC1leHRlbnRzXG4gICAgICAgIFt2YWx1ZV09XCJ2YWx1ZUFzVGVtcG9yYWxFeHRlbnRzXCJcbiAgICAgICAgKHZhbHVlQ2hhbmdlKT1cInZhbHVlQ2hhbmdlLmVtaXQoJGV2ZW50KVwiXG4gICAgICA+PC9nbi11aS1mb3JtLWZpZWxkLXRlbXBvcmFsLWV4dGVudHM+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ3NwYXRpYWxFeHRlbnRzJ1wiPlxuICAgICAgPGduLXVpLWZvcm0tZmllbGQtc3BhdGlhbC1leHRlbnQ+PC9nbi11aS1mb3JtLWZpZWxkLXNwYXRpYWwtZXh0ZW50PlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidrZXl3b3JkcydcIj5cbiAgICAgIDxnbi11aS1mb3JtLWZpZWxkLWtleXdvcmRzXG4gICAgICAgIFt2YWx1ZV09XCJ2YWx1ZUFzS2V5d29yZHNcIlxuICAgICAgICAodmFsdWVDaGFuZ2UpPVwidmFsdWVDaGFuZ2UuZW1pdCgkZXZlbnQpXCJcbiAgICAgID48L2duLXVpLWZvcm0tZmllbGQta2V5d29yZHM+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2xpY2Vuc2VzJ1wiPlxuICAgICAgPGduLXVpLWZvcm0tZmllbGQtbGljZW5zZVxuICAgICAgICBbbGFiZWxdPVwiY29uZmlnLmxhYmVsS2V5ISB8IHRyYW5zbGF0ZVwiXG4gICAgICAgIFt2YWx1ZV09XCJ2YWx1ZUFzQ29uc3RyYWludHNcIlxuICAgICAgICAodmFsdWVDaGFuZ2UpPVwidmFsdWVDaGFuZ2UuZW1pdCgkZXZlbnQpXCJcbiAgICAgID48L2duLXVpLWZvcm0tZmllbGQtbGljZW5zZT5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInY29udGFjdHNGb3JSZXNvdXJjZSdcIj5cbiAgICAgIDxnbi11aS1mb3JtLWZpZWxkLWNvbnRhY3RzLWZvci1yZXNvdXJjZVxuICAgICAgICBbdmFsdWVdPVwidmFsdWVBc0luZGl2aWR1YWxzXCJcbiAgICAgICAgKHZhbHVlQ2hhbmdlKT1cInZhbHVlQ2hhbmdlLmVtaXQoJGV2ZW50KVwiXG4gICAgICA+PC9nbi11aS1mb3JtLWZpZWxkLWNvbnRhY3RzLWZvci1yZXNvdXJjZT5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInb25saW5lUmVzb3VyY2VzJ1wiPlxuICAgICAgPGduLXVpLWZvcm0tZmllbGQtb25saW5lLWxpbmstcmVzb3VyY2VzXG4gICAgICAgICpuZ0lmPVwibW9kZWxTcGVjaWZpZXIgPT09ICdvbmxpbmVSZXNvdXJjZVR5cGU6bGluaydcIlxuICAgICAgICBbbWV0YWRhdGFVdWlkXT1cInVuaXF1ZUlkZW50aWZpZXJcIlxuICAgICAgICBbdmFsdWVdPVwidmFsdWVBc09ubGluZVJlc291cmNlc1wiXG4gICAgICAgICh2YWx1ZUNoYW5nZSk9XCJ2YWx1ZUNoYW5nZS5lbWl0KCRldmVudClcIlxuICAgICAgPjwvZ24tdWktZm9ybS1maWVsZC1vbmxpbmUtbGluay1yZXNvdXJjZXM+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvbmctY29udGFpbmVyPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
@@ -1,3 +1,4 @@
1
+ export * from './form-field-keywords/form-field-keywords.component';
1
2
  export * from './form-field-license/form-field-license.component';
2
3
  export * from './form-field-resource-updated/form-field-resource-updated.component';
3
4
  export * from './form-field-temporal-extents/form-field-temporal-extents.component';
@@ -8,5 +9,4 @@ export * from './form-field-object/form-field-object.component';
8
9
  export * from './form-field-array/form-field-array.component';
9
10
  export * from './form-field-spatial-extent/form-field-spatial-extent.component';
10
11
  export * from './form-field.component';
11
- export * from './form-field.model';
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ZlYXR1cmUvZWRpdG9yL3NyYy9saWIvY29tcG9uZW50cy9yZWNvcmQtZm9ybS9mb3JtLWZpZWxkL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsbURBQW1ELENBQUE7QUFDakUsY0FBYyxxRUFBcUUsQ0FBQTtBQUNuRixjQUFjLHFFQUFxRSxDQUFBO0FBRW5GLGNBQWMsaURBQWlELENBQUE7QUFDL0QsY0FBYyw2Q0FBNkMsQ0FBQTtBQUMzRCxjQUFjLDZDQUE2QyxDQUFBO0FBQzNELGNBQWMsaURBQWlELENBQUE7QUFDL0QsY0FBYywrQ0FBK0MsQ0FBQTtBQUM3RCxjQUFjLGlFQUFpRSxDQUFBO0FBQy9FLGNBQWMsd0JBQXdCLENBQUE7QUFDdEMsY0FBYyxvQkFBb0IsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZm9ybS1maWVsZC1saWNlbnNlL2Zvcm0tZmllbGQtbGljZW5zZS5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2Zvcm0tZmllbGQtcmVzb3VyY2UtdXBkYXRlZC9mb3JtLWZpZWxkLXJlc291cmNlLXVwZGF0ZWQuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9mb3JtLWZpZWxkLXRlbXBvcmFsLWV4dGVudHMvZm9ybS1maWVsZC10ZW1wb3JhbC1leHRlbnRzLmNvbXBvbmVudCdcblxuZXhwb3J0ICogZnJvbSAnLi9mb3JtLWZpZWxkLXNpbXBsZS9mb3JtLWZpZWxkLXNpbXBsZS5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2Zvcm0tZmllbGQtZmlsZS9mb3JtLWZpZWxkLWZpbGUuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9mb3JtLWZpZWxkLXJpY2gvZm9ybS1maWVsZC1yaWNoLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vZm9ybS1maWVsZC1vYmplY3QvZm9ybS1maWVsZC1vYmplY3QuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9mb3JtLWZpZWxkLWFycmF5L2Zvcm0tZmllbGQtYXJyYXkuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9mb3JtLWZpZWxkLXNwYXRpYWwtZXh0ZW50L2Zvcm0tZmllbGQtc3BhdGlhbC1leHRlbnQuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9mb3JtLWZpZWxkLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vZm9ybS1maWVsZC5tb2RlbCdcbiJdfQ==
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ZlYXR1cmUvZWRpdG9yL3NyYy9saWIvY29tcG9uZW50cy9yZWNvcmQtZm9ybS9mb3JtLWZpZWxkL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMscURBQXFELENBQUE7QUFDbkUsY0FBYyxtREFBbUQsQ0FBQTtBQUNqRSxjQUFjLHFFQUFxRSxDQUFBO0FBQ25GLGNBQWMscUVBQXFFLENBQUE7QUFDbkYsY0FBYyxpREFBaUQsQ0FBQTtBQUMvRCxjQUFjLDZDQUE2QyxDQUFBO0FBQzNELGNBQWMsNkNBQTZDLENBQUE7QUFDM0QsY0FBYyxpREFBaUQsQ0FBQTtBQUMvRCxjQUFjLCtDQUErQyxDQUFBO0FBQzdELGNBQWMsaUVBQWlFLENBQUE7QUFDL0UsY0FBYyx3QkFBd0IsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZm9ybS1maWVsZC1rZXl3b3Jkcy9mb3JtLWZpZWxkLWtleXdvcmRzLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vZm9ybS1maWVsZC1saWNlbnNlL2Zvcm0tZmllbGQtbGljZW5zZS5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2Zvcm0tZmllbGQtcmVzb3VyY2UtdXBkYXRlZC9mb3JtLWZpZWxkLXJlc291cmNlLXVwZGF0ZWQuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9mb3JtLWZpZWxkLXRlbXBvcmFsLWV4dGVudHMvZm9ybS1maWVsZC10ZW1wb3JhbC1leHRlbnRzLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vZm9ybS1maWVsZC1zaW1wbGUvZm9ybS1maWVsZC1zaW1wbGUuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9mb3JtLWZpZWxkLWZpbGUvZm9ybS1maWVsZC1maWxlLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vZm9ybS1maWVsZC1yaWNoL2Zvcm0tZmllbGQtcmljaC5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2Zvcm0tZmllbGQtb2JqZWN0L2Zvcm0tZmllbGQtb2JqZWN0LmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vZm9ybS1maWVsZC1hcnJheS9mb3JtLWZpZWxkLWFycmF5LmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vZm9ybS1maWVsZC1zcGF0aWFsLWV4dGVudC9mb3JtLWZpZWxkLXNwYXRpYWwtZXh0ZW50LmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vZm9ybS1maWVsZC5jb21wb25lbnQnXG4iXX0=
@@ -2,28 +2,34 @@ import { CommonModule } from '@angular/common';
2
2
  import { ChangeDetectionStrategy, Component } from '@angular/core';
3
3
  import { EditorFacade } from '../../+state/editor.facade';
4
4
  import { FormFieldComponent } from './form-field';
5
+ import { TranslateModule } from '@ngx-translate/core';
6
+ import { map } from 'rxjs';
5
7
  import * as i0 from "@angular/core";
6
8
  import * as i1 from "../../+state/editor.facade";
7
9
  import * as i2 from "@angular/common";
10
+ import * as i3 from "@ngx-translate/core";
8
11
  export class RecordFormComponent {
9
12
  constructor(facade) {
10
13
  this.facade = facade;
11
- this.fields$ = this.facade.recordFields$;
14
+ this.recordUniqueIdentifier$ = this.facade.record$.pipe(map((record) => record.uniqueIdentifier));
12
15
  }
13
- handleFieldValueChange(field, newValue) {
14
- if (!field.config.model) {
16
+ handleFieldValueChange(model, newValue) {
17
+ if (!model) {
15
18
  return;
16
19
  }
17
- this.facade.updateRecordField(field.config.model, newValue);
20
+ this.facade.updateRecordField(model, newValue);
18
21
  }
19
22
  fieldTracker(index, field) {
20
23
  return field.config.model;
21
24
  }
25
+ sectionTracker(index, section) {
26
+ return section.labelKey;
27
+ }
22
28
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RecordFormComponent, deps: [{ token: i1.EditorFacade }], target: i0.ɵɵFactoryTarget.Component }); }
23
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", 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 [model]=\"field.config.model\"\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: "component", type: FormFieldComponent, selector: "gn-ui-form-field", inputs: ["model", "config", "value"], outputs: ["valueChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
29
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: RecordFormComponent, isStandalone: true, selector: "gn-ui-record-form", ngImport: i0, template: "<ng-container>\n <div class=\"flex flex-col gap-6 p-8\">\n <ng-container\n *ngFor=\"\n let section of facade.currentSections$ | async;\n trackBy: sectionTracker\n \"\n >\n <ng-container *ngIf=\"!section.hidden\">\n <div class=\"flex flex-col gap-8 border p-8 rounded-[8px] shadow\">\n <div\n class=\"flex flex-col gap-2\"\n [ngClass]=\"section.labelKey ? 'mb-4' : 'hidden'\"\n >\n <div\n *ngIf=\"section.labelKey\"\n class=\"text-2xl font-title text-secondary\"\n translate\n >\n {{ section.labelKey }}\n </div>\n <div\n *ngIf=\"section.descriptionKey\"\n class=\"text-secondary-lightest\"\n translate\n >\n {{ section.descriptionKey }}\n </div>\n </div>\n <ng-container\n *ngFor=\"\n let field of section.fieldsWithValues;\n trackBy: fieldTracker\n \"\n >\n <ng-container *ngIf=\"!field.config.hidden\">\n <gn-ui-form-field\n [uniqueIdentifier]=\"recordUniqueIdentifier$ | async\"\n [model]=\"field.config.model!\"\n [modelSpecifier]=\"field.config.modelSpecifier!\"\n [config]=\"field.config.formFieldConfig\"\n [value]=\"field.value\"\n (valueChange)=\"\n handleFieldValueChange(field.config.model!, $event)\n \"\n ></gn-ui-form-field>\n </ng-container>\n </ng-container>\n </div>\n </ng-container>\n </ng-container>\n </div>\n</ng-container>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { 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: "component", type: FormFieldComponent, selector: "gn-ui-form-field", inputs: ["uniqueIdentifier", "model", "modelSpecifier", "config", "value"], outputs: ["valueChange"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "directive", type: i3.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
24
30
  }
25
31
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RecordFormComponent, decorators: [{
26
32
  type: Component,
27
- args: [{ selector: 'gn-ui-record-form', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CommonModule, FormFieldComponent], 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 [model]=\"field.config.model\"\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" }]
33
+ args: [{ selector: 'gn-ui-record-form', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CommonModule, FormFieldComponent, TranslateModule], template: "<ng-container>\n <div class=\"flex flex-col gap-6 p-8\">\n <ng-container\n *ngFor=\"\n let section of facade.currentSections$ | async;\n trackBy: sectionTracker\n \"\n >\n <ng-container *ngIf=\"!section.hidden\">\n <div class=\"flex flex-col gap-8 border p-8 rounded-[8px] shadow\">\n <div\n class=\"flex flex-col gap-2\"\n [ngClass]=\"section.labelKey ? 'mb-4' : 'hidden'\"\n >\n <div\n *ngIf=\"section.labelKey\"\n class=\"text-2xl font-title text-secondary\"\n translate\n >\n {{ section.labelKey }}\n </div>\n <div\n *ngIf=\"section.descriptionKey\"\n class=\"text-secondary-lightest\"\n translate\n >\n {{ section.descriptionKey }}\n </div>\n </div>\n <ng-container\n *ngFor=\"\n let field of section.fieldsWithValues;\n trackBy: fieldTracker\n \"\n >\n <ng-container *ngIf=\"!field.config.hidden\">\n <gn-ui-form-field\n [uniqueIdentifier]=\"recordUniqueIdentifier$ | async\"\n [model]=\"field.config.model!\"\n [modelSpecifier]=\"field.config.modelSpecifier!\"\n [config]=\"field.config.formFieldConfig\"\n [value]=\"field.value\"\n (valueChange)=\"\n handleFieldValueChange(field.config.model!, $event)\n \"\n ></gn-ui-form-field>\n </ng-container>\n </ng-container>\n </div>\n </ng-container>\n </ng-container>\n </div>\n</ng-container>\n" }]
28
34
  }], ctorParameters: function () { return [{ type: i1.EditorFacade }]; } });
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjb3JkLWZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9mZWF0dXJlL2VkaXRvci9zcmMvbGliL2NvbXBvbmVudHMvcmVjb3JkLWZvcm0vcmVjb3JkLWZvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9mZWF0dXJlL2VkaXRvci9zcmMvbGliL2NvbXBvbmVudHMvcmVjb3JkLWZvcm0vcmVjb3JkLWZvcm0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQzlDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDbEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDRCQUE0QixDQUFBO0FBRXpELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGNBQWMsQ0FBQTs7OztBQVVqRCxNQUFNLE9BQU8sbUJBQW1CO0lBRzlCLFlBQW1CLE1BQW9CO1FBQXBCLFdBQU0sR0FBTixNQUFNLENBQWM7UUFGdkMsWUFBTyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFBO0lBRU8sQ0FBQztJQUUzQyxzQkFBc0IsQ0FBQyxLQUF1QixFQUFFLFFBQTBCO1FBQ3hFLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRTtZQUN2QixPQUFNO1NBQ1A7UUFDRCxJQUFJLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFBO0lBQzdELENBQUM7SUFFRCxZQUFZLENBQUMsS0FBYSxFQUFFLEtBQXVCO1FBQ2pELE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUE7SUFDM0IsQ0FBQzsrR0FkVSxtQkFBbUI7bUdBQW5CLG1CQUFtQiw2RUNkaEMsbWNBV0EseUREQ1ksWUFBWSxxVEFBRSxrQkFBa0I7OzRGQUUvQixtQkFBbUI7a0JBUi9CLFNBQVM7K0JBQ0UsbUJBQW1CLG1CQUdaLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLGtCQUFrQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBFZGl0b3JGYWNhZGUgfSBmcm9tICcuLi8uLi8rc3RhdGUvZWRpdG9yLmZhY2FkZSdcbmltcG9ydCB7IEVkaXRvckZpZWxkU3RhdGUsIEVkaXRvckZpZWxkVmFsdWUgfSBmcm9tICcuLi8uLi9tb2RlbHMvZmllbGRzLm1vZGVsJ1xuaW1wb3J0IHsgRm9ybUZpZWxkQ29tcG9uZW50IH0gZnJvbSAnLi9mb3JtLWZpZWxkJ1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdnbi11aS1yZWNvcmQtZm9ybScsXG4gIHRlbXBsYXRlVXJsOiAnLi9yZWNvcmQtZm9ybS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3JlY29yZC1mb3JtLmNvbXBvbmVudC5jc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEZvcm1GaWVsZENvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIFJlY29yZEZvcm1Db21wb25lbnQge1xuICBmaWVsZHMkID0gdGhpcy5mYWNhZGUucmVjb3JkRmllbGRzJFxuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBmYWNhZGU6IEVkaXRvckZhY2FkZSkge31cblxuICBoYW5kbGVGaWVsZFZhbHVlQ2hhbmdlKGZpZWxkOiBFZGl0b3JGaWVsZFN0YXRlLCBuZXdWYWx1ZTogRWRpdG9yRmllbGRWYWx1ZSkge1xuICAgIGlmICghZmllbGQuY29uZmlnLm1vZGVsKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgdGhpcy5mYWNhZGUudXBkYXRlUmVjb3JkRmllbGQoZmllbGQuY29uZmlnLm1vZGVsLCBuZXdWYWx1ZSlcbiAgfVxuXG4gIGZpZWxkVHJhY2tlcihpbmRleDogbnVtYmVyLCBmaWVsZDogRWRpdG9yRmllbGRTdGF0ZSkge1xuICAgIHJldHVybiBmaWVsZC5jb25maWcubW9kZWxcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgZ2FwLTYgcC02XCI+XG4gIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGZpZWxkIG9mIGZpZWxkcyQgfCBhc3luYzsgdHJhY2tCeTogZmllbGRUcmFja2VyXCI+XG4gICAgPGduLXVpLWZvcm0tZmllbGRcbiAgICAgICpuZ0lmPVwiZmllbGQuY29uZmlnLmZvcm1GaWVsZENvbmZpZyAmJiAhZmllbGQuY29uZmlnLmhpZGRlblwiXG4gICAgICBbbW9kZWxdPVwiZmllbGQuY29uZmlnLm1vZGVsXCJcbiAgICAgIFtjb25maWddPVwiZmllbGQuY29uZmlnLmZvcm1GaWVsZENvbmZpZ1wiXG4gICAgICBbdmFsdWVdPVwiZmllbGQudmFsdWVcIlxuICAgICAgKHZhbHVlQ2hhbmdlKT1cImhhbmRsZUZpZWxkVmFsdWVDaGFuZ2UoZmllbGQsICRldmVudClcIlxuICAgID48L2duLXVpLWZvcm0tZmllbGQ+XG4gIDwvbmctY29udGFpbmVyPlxuPC9kaXY+XG4iXX0=
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjb3JkLWZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9mZWF0dXJlL2VkaXRvci9zcmMvbGliL2NvbXBvbmVudHMvcmVjb3JkLWZvcm0vcmVjb3JkLWZvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9mZWF0dXJlL2VkaXRvci9zcmMvbGliL2NvbXBvbmVudHMvcmVjb3JkLWZvcm0vcmVjb3JkLWZvcm0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQzlDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDbEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDRCQUE0QixDQUFBO0FBRXpELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQUNqRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUE7QUFLckQsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQTs7Ozs7QUFXMUIsTUFBTSxPQUFPLG1CQUFtQjtJQUs5QixZQUFtQixNQUFvQjtRQUFwQixXQUFNLEdBQU4sTUFBTSxDQUFjO1FBSnZDLDRCQUF1QixHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FDaEQsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FDekMsQ0FBQTtJQUV5QyxDQUFDO0lBRTNDLHNCQUFzQixDQUFDLEtBQXdCLEVBQUUsUUFBMEI7UUFDekUsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNWLE9BQU07U0FDUDtRQUNELElBQUksQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFBO0lBQ2hELENBQUM7SUFFRCxZQUFZLENBQUMsS0FBYSxFQUFFLEtBQTJCO1FBQ3JELE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUE7SUFDM0IsQ0FBQztJQUVELGNBQWMsQ0FBQyxLQUFhLEVBQUUsT0FBZ0M7UUFDNUQsT0FBTyxPQUFPLENBQUMsUUFBUSxDQUFBO0lBQ3pCLENBQUM7K0dBcEJVLG1CQUFtQjttR0FBbkIsbUJBQW1CLDZFQ3JCaEMsNHVEQXFEQSx5RERsQ1ksWUFBWSxtWkFBRSxrQkFBa0Isa0tBQUUsZUFBZTs7NEZBRWhELG1CQUFtQjtrQkFSL0IsU0FBUzsrQkFDRSxtQkFBbUIsbUJBR1osdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsa0JBQWtCLEVBQUUsZUFBZSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBFZGl0b3JGYWNhZGUgfSBmcm9tICcuLi8uLi8rc3RhdGUvZWRpdG9yLmZhY2FkZSdcbmltcG9ydCB7IEVkaXRvckZpZWxkVmFsdWUgfSBmcm9tICcuLi8uLi9tb2RlbHMnXG5pbXBvcnQgeyBGb3JtRmllbGRDb21wb25lbnQgfSBmcm9tICcuL2Zvcm0tZmllbGQnXG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJ1xuaW1wb3J0IHtcbiAgRWRpdG9yRmllbGRXaXRoVmFsdWUsXG4gIEVkaXRvclNlY3Rpb25XaXRoVmFsdWVzLFxufSBmcm9tICcuLi8uLi8rc3RhdGUvZWRpdG9yLm1vZGVscydcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMnXG5pbXBvcnQgeyBDYXRhbG9nUmVjb3JkS2V5cyB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL2RvbWFpbi9zcmMvbGliL21vZGVsL3JlY29yZCdcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ24tdWktcmVjb3JkLWZvcm0nLFxuICB0ZW1wbGF0ZVVybDogJy4vcmVjb3JkLWZvcm0uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9yZWNvcmQtZm9ybS5jb21wb25lbnQuY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBGb3JtRmllbGRDb21wb25lbnQsIFRyYW5zbGF0ZU1vZHVsZV0sXG59KVxuZXhwb3J0IGNsYXNzIFJlY29yZEZvcm1Db21wb25lbnQge1xuICByZWNvcmRVbmlxdWVJZGVudGlmaWVyJCA9IHRoaXMuZmFjYWRlLnJlY29yZCQucGlwZShcbiAgICBtYXAoKHJlY29yZCkgPT4gcmVjb3JkLnVuaXF1ZUlkZW50aWZpZXIpXG4gIClcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgZmFjYWRlOiBFZGl0b3JGYWNhZGUpIHt9XG5cbiAgaGFuZGxlRmllbGRWYWx1ZUNoYW5nZShtb2RlbDogQ2F0YWxvZ1JlY29yZEtleXMsIG5ld1ZhbHVlOiBFZGl0b3JGaWVsZFZhbHVlKSB7XG4gICAgaWYgKCFtb2RlbCkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIHRoaXMuZmFjYWRlLnVwZGF0ZVJlY29yZEZpZWxkKG1vZGVsLCBuZXdWYWx1ZSlcbiAgfVxuXG4gIGZpZWxkVHJhY2tlcihpbmRleDogbnVtYmVyLCBmaWVsZDogRWRpdG9yRmllbGRXaXRoVmFsdWUpIHtcbiAgICByZXR1cm4gZmllbGQuY29uZmlnLm1vZGVsXG4gIH1cblxuICBzZWN0aW9uVHJhY2tlcihpbmRleDogbnVtYmVyLCBzZWN0aW9uOiBFZGl0b3JTZWN0aW9uV2l0aFZhbHVlcykge1xuICAgIHJldHVybiBzZWN0aW9uLmxhYmVsS2V5XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXI+XG4gIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGdhcC02IHAtOFwiPlxuICAgIDxuZy1jb250YWluZXJcbiAgICAgICpuZ0Zvcj1cIlxuICAgICAgICBsZXQgc2VjdGlvbiBvZiBmYWNhZGUuY3VycmVudFNlY3Rpb25zJCB8IGFzeW5jO1xuICAgICAgICB0cmFja0J5OiBzZWN0aW9uVHJhY2tlclxuICAgICAgXCJcbiAgICA+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIXNlY3Rpb24uaGlkZGVuXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGdhcC04IGJvcmRlciBwLTggcm91bmRlZC1bOHB4XSBzaGFkb3dcIj5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cImZsZXggZmxleC1jb2wgZ2FwLTJcIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwic2VjdGlvbi5sYWJlbEtleSA/ICdtYi00JyA6ICdoaWRkZW4nXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICpuZ0lmPVwic2VjdGlvbi5sYWJlbEtleVwiXG4gICAgICAgICAgICAgIGNsYXNzPVwidGV4dC0yeGwgZm9udC10aXRsZSB0ZXh0LXNlY29uZGFyeVwiXG4gICAgICAgICAgICAgIHRyYW5zbGF0ZVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7eyBzZWN0aW9uLmxhYmVsS2V5IH19XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgKm5nSWY9XCJzZWN0aW9uLmRlc2NyaXB0aW9uS2V5XCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJ0ZXh0LXNlY29uZGFyeS1saWdodGVzdFwiXG4gICAgICAgICAgICAgIHRyYW5zbGF0ZVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7eyBzZWN0aW9uLmRlc2NyaXB0aW9uS2V5IH19XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAqbmdGb3I9XCJcbiAgICAgICAgICAgICAgbGV0IGZpZWxkIG9mIHNlY3Rpb24uZmllbGRzV2l0aFZhbHVlcztcbiAgICAgICAgICAgICAgdHJhY2tCeTogZmllbGRUcmFja2VyXG4gICAgICAgICAgICBcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhZmllbGQuY29uZmlnLmhpZGRlblwiPlxuICAgICAgICAgICAgICA8Z24tdWktZm9ybS1maWVsZFxuICAgICAgICAgICAgICAgIFt1bmlxdWVJZGVudGlmaWVyXT1cInJlY29yZFVuaXF1ZUlkZW50aWZpZXIkIHwgYXN5bmNcIlxuICAgICAgICAgICAgICAgIFttb2RlbF09XCJmaWVsZC5jb25maWcubW9kZWwhXCJcbiAgICAgICAgICAgICAgICBbbW9kZWxTcGVjaWZpZXJdPVwiZmllbGQuY29uZmlnLm1vZGVsU3BlY2lmaWVyIVwiXG4gICAgICAgICAgICAgICAgW2NvbmZpZ109XCJmaWVsZC5jb25maWcuZm9ybUZpZWxkQ29uZmlnXCJcbiAgICAgICAgICAgICAgICBbdmFsdWVdPVwiZmllbGQudmFsdWVcIlxuICAgICAgICAgICAgICAgICh2YWx1ZUNoYW5nZSk9XCJcbiAgICAgICAgICAgICAgICAgIGhhbmRsZUZpZWxkVmFsdWVDaGFuZ2UoZmllbGQuY29uZmlnLm1vZGVsISwgJGV2ZW50KVxuICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgID48L2duLXVpLWZvcm0tZmllbGQ+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
@@ -11,11 +11,11 @@ import * as i0 from "@angular/core";
11
11
  import * as i1 from "../../services/wizard.service";
12
12
  import * as i2 from "@angular/common";
13
13
  import * as i3 from "../../../../../../ui/inputs/src/lib/dropdown-selector/dropdown-selector.component";
14
- import * as i4 from "../../../../../../ui/inputs/src/lib/text-input/text-input.component";
15
- import * as i5 from "../../../../../../ui/inputs/src/lib/text-area/text-area.component";
16
- import * as i6 from "../../../../../../ui/inputs/src/lib/chips-input/chips-input.component";
17
- import * as i7 from "@ngx-translate/core";
18
- import * as i8 from "@angular/material/datepicker";
14
+ import * as i4 from "../../../../../../ui/inputs/src/lib/text-area/text-area.component";
15
+ import * as i5 from "../../../../../../ui/inputs/src/lib/chips-input/chips-input.component";
16
+ import * as i6 from "@ngx-translate/core";
17
+ import * as i7 from "@angular/material/datepicker";
18
+ import * as i8 from "../../../../../../ui/inputs/src/lib/text-input/text-input.component";
19
19
  marker('datafeeder.month.january');
20
20
  marker('datafeeder.month.february');
21
21
  marker('datafeeder.month.march');
@@ -145,7 +145,7 @@ export class WizardFieldComponent {
145
145
  deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS],
146
146
  },
147
147
  { provide: MAT_DATE_FORMATS, useValue: MY_FORMATS },
148
- ], viewQueries: [{ propertyName: "searchText", first: true, predicate: ["searchText"], descendants: true }, { propertyName: "chips", first: true, predicate: ["chips"], descendants: true }, { propertyName: "textArea", first: true, predicate: ["textArea"], descendants: true }, { propertyName: "dropdown", first: true, predicate: ["dropdown"], descendants: true }], ngImport: i0, template: "<div class=\"flex flex-1\">\n <span [class]=\"wizardFieldConfig.icon + ' pr-10'\"></span>\n <div class=\"flex flex-col flex-1\">\n <div translate class=\"text-xl font-bold pb-1\">\n {{ wizardFieldConfig.label }}\n </div>\n <div\n class=\"w-1/2 h-12\"\n *ngIf=\"wizardFieldType.TEXT === wizardFieldConfig.type\"\n >\n <gn-ui-text-input\n #searchText\n [id]=\"wizardFieldConfig.id\"\n [value]=\"wizardFieldData\"\n [required]=\"wizardFieldConfig.required || false\"\n hint=\"\"\n ></gn-ui-text-input>\n </div>\n <div\n class=\"flex-1 w-11/12\"\n *ngIf=\"wizardFieldType.CHIPS === wizardFieldConfig.type\"\n >\n <gn-ui-chips-input\n #chips\n [selectedItems]=\"wizardFieldData\"\n placeholder=\"\"\n [id]=\"wizardFieldConfig.id\"\n [url]=\"wizardFieldConfig.options.url\"\n [loadOnce]=\"wizardFieldConfig.options.loadOnce\"\n ></gn-ui-chips-input>\n </div>\n <div\n class=\"h-32 w-11/12\"\n *ngIf=\"wizardFieldType.TEXT_AREA === wizardFieldConfig.type\"\n >\n <gn-ui-text-area\n #textArea\n [id]=\"wizardFieldConfig.id\"\n [value]=\"wizardFieldData\"\n [required]=\"wizardFieldConfig.required || false\"\n placeholder=\"\"\n ></gn-ui-text-area>\n </div>\n <div\n class=\"w-1/2 h-12\"\n *ngIf=\"wizardFieldType.DATA_PICKER === wizardFieldConfig.type\"\n >\n <input\n [id]=\"wizardFieldConfig.id\"\n type=\"text\"\n (click)=\"datepicker.open()\"\n class=\"rounded p-2 text-gray-700 w-full leading-tight focus:outline-none focus:border-primary\"\n [value]=\"wizardFieldData\"\n [matDatepicker]=\"datepicker\"\n (dateChange)=\"onDateChange($event)\"\n />\n <mat-datepicker #datepicker></mat-datepicker>\n </div>\n <div\n class=\"w-1/2 h-12\"\n *ngIf=\"wizardFieldType.DROPDOWN === wizardFieldConfig.type\"\n >\n <gn-ui-dropdown-selector\n #dropdown\n [id]=\"wizardFieldConfig.id\"\n [title]=\"''\"\n [extraBtnClass]=\"'secondary min-w-full'\"\n [showTitle]=\"false\"\n [choices]=\"dropdownChoices\"\n [selected]=\"wizardFieldData\"\n ariaName=\"search-sort-by\"\n ></gn-ui-dropdown-selector>\n </div>\n </div>\n</div>\n", styles: [":host{display:flex;flex:1}gn-ui-text-input::ng-deep input,input[type=text]{height:100%;background:white;color:#000;font-style:italic;border-width:2px;border-color:var(--color-primary)}gn-ui-text-area::ng-deep textarea{border-width:2px;border-color:var(--color-primary)}gn-ui-dropdown-selector::ng-deep div{height:100%}gn-ui-dropdown-selector::ng-deep select{height:100%;border-width:2px;border-color:var(--color-primary);background-color:#fff}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.DropdownSelectorComponent, selector: "gn-ui-dropdown-selector", inputs: ["title", "showTitle", "ariaName", "choices", "selected", "maxRows", "extraBtnClass", "minWidth", "disabled"], outputs: ["selectValue"] }, { kind: "component", type: i4.TextInputComponent, selector: "gn-ui-text-input", inputs: ["value", "extraClass", "hint", "required", "disabled"], outputs: ["valueChange"] }, { kind: "component", type: i5.TextAreaComponent, selector: "gn-ui-text-area", inputs: ["value", "disabled", "extraClass", "placeholder", "required"], outputs: ["valueChange"] }, { kind: "component", type: i6.ChipsInputComponent, selector: "gn-ui-chips-input", inputs: ["url", "placeholder", "selectedItems", "required", "loadOnce", "autocompleteItems"], outputs: ["itemsChange"] }, { kind: "directive", type: i7.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i8.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i8.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
148
+ ], viewQueries: [{ propertyName: "searchText", first: true, predicate: ["searchText"], descendants: true }, { propertyName: "chips", first: true, predicate: ["chips"], descendants: true }, { propertyName: "textArea", first: true, predicate: ["textArea"], descendants: true }, { propertyName: "dropdown", first: true, predicate: ["dropdown"], descendants: true }], ngImport: i0, template: "<div class=\"flex flex-1\">\n <span [class]=\"wizardFieldConfig.icon + ' pr-10'\"></span>\n <div class=\"flex flex-col flex-1\">\n <div translate class=\"text-xl font-bold pb-1\">\n {{ wizardFieldConfig.label }}\n </div>\n <div\n class=\"w-1/2 h-12\"\n *ngIf=\"wizardFieldType.TEXT === wizardFieldConfig.type\"\n >\n <gn-ui-text-input\n #searchText\n [id]=\"wizardFieldConfig.id\"\n [value]=\"wizardFieldData\"\n [required]=\"wizardFieldConfig.required || false\"\n placeholder=\"\"\n ></gn-ui-text-input>\n </div>\n <div\n class=\"flex-1 w-11/12\"\n *ngIf=\"wizardFieldType.CHIPS === wizardFieldConfig.type\"\n >\n <gn-ui-chips-input\n #chips\n [selectedItems]=\"wizardFieldData\"\n placeholder=\"\"\n [id]=\"wizardFieldConfig.id\"\n [url]=\"wizardFieldConfig.options.url\"\n [loadOnce]=\"wizardFieldConfig.options.loadOnce\"\n ></gn-ui-chips-input>\n </div>\n <div\n class=\"h-32 w-11/12\"\n *ngIf=\"wizardFieldType.TEXT_AREA === wizardFieldConfig.type\"\n >\n <gn-ui-text-area\n #textArea\n [id]=\"wizardFieldConfig.id\"\n [value]=\"wizardFieldData\"\n [required]=\"wizardFieldConfig.required || false\"\n placeholder=\"\"\n ></gn-ui-text-area>\n </div>\n <div\n class=\"w-1/2 h-12\"\n *ngIf=\"wizardFieldType.DATA_PICKER === wizardFieldConfig.type\"\n >\n <input\n [id]=\"wizardFieldConfig.id\"\n type=\"text\"\n (click)=\"datepicker.open()\"\n class=\"rounded p-2 text-gray-700 w-full leading-tight focus:outline-none focus:border-primary\"\n [value]=\"wizardFieldData\"\n [matDatepicker]=\"datepicker\"\n (dateChange)=\"onDateChange($event)\"\n />\n <mat-datepicker #datepicker></mat-datepicker>\n </div>\n <div\n class=\"w-1/2 h-12\"\n *ngIf=\"wizardFieldType.DROPDOWN === wizardFieldConfig.type\"\n >\n <gn-ui-dropdown-selector\n #dropdown\n [id]=\"wizardFieldConfig.id\"\n [title]=\"''\"\n [extraBtnClass]=\"'secondary min-w-full'\"\n [showTitle]=\"false\"\n [choices]=\"dropdownChoices\"\n [selected]=\"wizardFieldData\"\n ariaName=\"search-sort-by\"\n ></gn-ui-dropdown-selector>\n </div>\n </div>\n</div>\n", styles: [":host{display:flex;flex:1}gn-ui-text-input::ng-deep input,input[type=text]{height:100%;background:white;color:#000;font-style:italic;border-width:2px;border-color:var(--color-primary)}gn-ui-text-area::ng-deep textarea{border-width:2px;border-color:var(--color-primary)}gn-ui-dropdown-selector::ng-deep div{height:100%}gn-ui-dropdown-selector::ng-deep select{height:100%;border-width:2px;border-color:var(--color-primary);background-color:#fff}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.DropdownSelectorComponent, selector: "gn-ui-dropdown-selector", inputs: ["title", "showTitle", "ariaName", "choices", "selected", "maxRows", "extraBtnClass", "minWidth", "disabled"], outputs: ["selectValue"] }, { kind: "component", type: i4.TextAreaComponent, selector: "gn-ui-text-area", inputs: ["value", "disabled", "extraClass", "placeholder", "required"], outputs: ["valueChange"] }, { kind: "component", type: i5.ChipsInputComponent, selector: "gn-ui-chips-input", inputs: ["url", "placeholder", "selectedItems", "required", "loadOnce", "autocompleteItems"], outputs: ["itemsChange"] }, { kind: "directive", type: i6.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i7.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i7.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i8.TextInputComponent, selector: "gn-ui-text-input", inputs: ["value", "extraClass", "placeholder", "required", "disabled"], outputs: ["valueChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
149
149
  }
150
150
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: WizardFieldComponent, decorators: [{
151
151
  type: Component,
@@ -157,7 +157,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
157
157
  deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS],
158
158
  },
159
159
  { provide: MAT_DATE_FORMATS, useValue: MY_FORMATS },
160
- ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"flex flex-1\">\n <span [class]=\"wizardFieldConfig.icon + ' pr-10'\"></span>\n <div class=\"flex flex-col flex-1\">\n <div translate class=\"text-xl font-bold pb-1\">\n {{ wizardFieldConfig.label }}\n </div>\n <div\n class=\"w-1/2 h-12\"\n *ngIf=\"wizardFieldType.TEXT === wizardFieldConfig.type\"\n >\n <gn-ui-text-input\n #searchText\n [id]=\"wizardFieldConfig.id\"\n [value]=\"wizardFieldData\"\n [required]=\"wizardFieldConfig.required || false\"\n hint=\"\"\n ></gn-ui-text-input>\n </div>\n <div\n class=\"flex-1 w-11/12\"\n *ngIf=\"wizardFieldType.CHIPS === wizardFieldConfig.type\"\n >\n <gn-ui-chips-input\n #chips\n [selectedItems]=\"wizardFieldData\"\n placeholder=\"\"\n [id]=\"wizardFieldConfig.id\"\n [url]=\"wizardFieldConfig.options.url\"\n [loadOnce]=\"wizardFieldConfig.options.loadOnce\"\n ></gn-ui-chips-input>\n </div>\n <div\n class=\"h-32 w-11/12\"\n *ngIf=\"wizardFieldType.TEXT_AREA === wizardFieldConfig.type\"\n >\n <gn-ui-text-area\n #textArea\n [id]=\"wizardFieldConfig.id\"\n [value]=\"wizardFieldData\"\n [required]=\"wizardFieldConfig.required || false\"\n placeholder=\"\"\n ></gn-ui-text-area>\n </div>\n <div\n class=\"w-1/2 h-12\"\n *ngIf=\"wizardFieldType.DATA_PICKER === wizardFieldConfig.type\"\n >\n <input\n [id]=\"wizardFieldConfig.id\"\n type=\"text\"\n (click)=\"datepicker.open()\"\n class=\"rounded p-2 text-gray-700 w-full leading-tight focus:outline-none focus:border-primary\"\n [value]=\"wizardFieldData\"\n [matDatepicker]=\"datepicker\"\n (dateChange)=\"onDateChange($event)\"\n />\n <mat-datepicker #datepicker></mat-datepicker>\n </div>\n <div\n class=\"w-1/2 h-12\"\n *ngIf=\"wizardFieldType.DROPDOWN === wizardFieldConfig.type\"\n >\n <gn-ui-dropdown-selector\n #dropdown\n [id]=\"wizardFieldConfig.id\"\n [title]=\"''\"\n [extraBtnClass]=\"'secondary min-w-full'\"\n [showTitle]=\"false\"\n [choices]=\"dropdownChoices\"\n [selected]=\"wizardFieldData\"\n ariaName=\"search-sort-by\"\n ></gn-ui-dropdown-selector>\n </div>\n </div>\n</div>\n", styles: [":host{display:flex;flex:1}gn-ui-text-input::ng-deep input,input[type=text]{height:100%;background:white;color:#000;font-style:italic;border-width:2px;border-color:var(--color-primary)}gn-ui-text-area::ng-deep textarea{border-width:2px;border-color:var(--color-primary)}gn-ui-dropdown-selector::ng-deep div{height:100%}gn-ui-dropdown-selector::ng-deep select{height:100%;border-width:2px;border-color:var(--color-primary);background-color:#fff}\n"] }]
160
+ ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"flex flex-1\">\n <span [class]=\"wizardFieldConfig.icon + ' pr-10'\"></span>\n <div class=\"flex flex-col flex-1\">\n <div translate class=\"text-xl font-bold pb-1\">\n {{ wizardFieldConfig.label }}\n </div>\n <div\n class=\"w-1/2 h-12\"\n *ngIf=\"wizardFieldType.TEXT === wizardFieldConfig.type\"\n >\n <gn-ui-text-input\n #searchText\n [id]=\"wizardFieldConfig.id\"\n [value]=\"wizardFieldData\"\n [required]=\"wizardFieldConfig.required || false\"\n placeholder=\"\"\n ></gn-ui-text-input>\n </div>\n <div\n class=\"flex-1 w-11/12\"\n *ngIf=\"wizardFieldType.CHIPS === wizardFieldConfig.type\"\n >\n <gn-ui-chips-input\n #chips\n [selectedItems]=\"wizardFieldData\"\n placeholder=\"\"\n [id]=\"wizardFieldConfig.id\"\n [url]=\"wizardFieldConfig.options.url\"\n [loadOnce]=\"wizardFieldConfig.options.loadOnce\"\n ></gn-ui-chips-input>\n </div>\n <div\n class=\"h-32 w-11/12\"\n *ngIf=\"wizardFieldType.TEXT_AREA === wizardFieldConfig.type\"\n >\n <gn-ui-text-area\n #textArea\n [id]=\"wizardFieldConfig.id\"\n [value]=\"wizardFieldData\"\n [required]=\"wizardFieldConfig.required || false\"\n placeholder=\"\"\n ></gn-ui-text-area>\n </div>\n <div\n class=\"w-1/2 h-12\"\n *ngIf=\"wizardFieldType.DATA_PICKER === wizardFieldConfig.type\"\n >\n <input\n [id]=\"wizardFieldConfig.id\"\n type=\"text\"\n (click)=\"datepicker.open()\"\n class=\"rounded p-2 text-gray-700 w-full leading-tight focus:outline-none focus:border-primary\"\n [value]=\"wizardFieldData\"\n [matDatepicker]=\"datepicker\"\n (dateChange)=\"onDateChange($event)\"\n />\n <mat-datepicker #datepicker></mat-datepicker>\n </div>\n <div\n class=\"w-1/2 h-12\"\n *ngIf=\"wizardFieldType.DROPDOWN === wizardFieldConfig.type\"\n >\n <gn-ui-dropdown-selector\n #dropdown\n [id]=\"wizardFieldConfig.id\"\n [title]=\"''\"\n [extraBtnClass]=\"'secondary min-w-full'\"\n [showTitle]=\"false\"\n [choices]=\"dropdownChoices\"\n [selected]=\"wizardFieldData\"\n ariaName=\"search-sort-by\"\n ></gn-ui-dropdown-selector>\n </div>\n </div>\n</div>\n", styles: [":host{display:flex;flex:1}gn-ui-text-input::ng-deep input,input[type=text]{height:100%;background:white;color:#000;font-style:italic;border-width:2px;border-color:var(--color-primary)}gn-ui-text-area::ng-deep textarea{border-width:2px;border-color:var(--color-primary)}gn-ui-dropdown-selector::ng-deep div{height:100%}gn-ui-dropdown-selector::ng-deep select{height:100%;border-width:2px;border-color:var(--color-primary);background-color:#fff}\n"] }]
161
161
  }], ctorParameters: function () { return [{ type: i1.WizardService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { wizardFieldConfig: [{
162
162
  type: Input
163
163
  }], searchText: [{
@@ -173,4 +173,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
173
173
  type: ViewChild,
174
174
  args: ['dropdown']
175
175
  }] } });
176
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l6YXJkLWZpZWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZmVhdHVyZS9lZGl0b3Ivc3JjL2xpYi9jb21wb25lbnRzL3dpemFyZC1maWVsZC93aXphcmQtZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9mZWF0dXJlL2VkaXRvci9zcmMvbGliL2NvbXBvbmVudHMvd2l6YXJkLWZpZWxkL3dpemFyZC1maWVsZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsS0FBSyxFQUVMLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQTtBQUN0QixPQUFPLEVBQ0wsK0JBQStCLEVBQy9CLGlCQUFpQixHQUNsQixNQUFNLGtDQUFrQyxDQUFBO0FBQ3pDLE9BQU8sRUFDTCxXQUFXLEVBQ1gsZ0JBQWdCLEVBQ2hCLGVBQWUsR0FDaEIsTUFBTSx3QkFBd0IsQ0FBQTtBQUUvQixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0seUNBQXlDLENBQUE7QUFDaEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seUNBQXlDLENBQUE7QUFFNUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGdDQUFnQyxDQUFBO0FBQ2hFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQTtBQUM3RCxPQUFPLEVBQ0wsbUJBQW1CLEVBQ25CLHlCQUF5QixFQUN6QixpQkFBaUIsRUFDakIsa0JBQWtCLEdBQ25CLE1BQU0seUNBQXlDLENBQUE7QUFDaEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQTs7Ozs7Ozs7OztBQUVuQyxNQUFNLENBQUMsMEJBQTBCLENBQUMsQ0FBQTtBQUNsQyxNQUFNLENBQUMsMkJBQTJCLENBQUMsQ0FB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VUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQge1xuICBNQVRfTU9NRU5UX0RBVEVfQURBUFRFUl9PUFRJT05TLFxuICBNb21lbnREYXRlQWRhcHRlcixcbn0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwtbW9tZW50LWFkYXB0ZXInXG5pbXBvcnQge1xuICBEYXRlQWRhcHRlcixcbiAgTUFUX0RBVEVfRk9STUFUUyxcbiAgTUFUX0RBVEVfTE9DQUxFLFxufSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJ1xuaW1wb3J0IHsgTWF0RGF0ZXBpY2tlcklucHV0RXZlbnQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kYXRlcGlja2VyJ1xuaW1wb3J0IHsgbWFya2VyIH0gZnJvbSAnQGJpZXNiamVyZy9uZ3gtdHJhbnNsYXRlLWV4dHJhY3QtbWFya2VyJ1xuaW1wb3J0IHsgZ2V0TGFuZ0Zyb21Ccm93c2VyIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91dGlsL2kxOG4vc3JjJ1xuaW1wb3J0IHsgV2l6YXJkRmllbGRNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy93aXphcmQtZmllbGQubW9kZWwnXG5pbXBvcnQgeyBXaXphcmRGaWVsZFR5cGUgfSBmcm9tICcuLi8uLi9tb2RlbHMvd2l6YXJkLWZpZWxkLnR5cGUnXG5pbXBvcnQgeyBXaXphcmRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvd2l6YXJkLnNlcnZpY2UnXG5pbXBvcnQge1xuICBDaGlwc0lucHV0Q29tcG9uZW50LFxuICBEcm9wZG93blNlbGVjdG9yQ29tcG9uZW50LFxuICBUZXh0QXJlYUNvbXBvbmVudCxcbiAgVGV4dElucHV0Q29tcG9uZW50LFxufSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL2lucHV0cy9zcmMnXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJ1xuXG5tYXJrZXIoJ2RhdGFmZWVkZXIubW9udGguamFudWFyeScpXG5tYXJrZXIoJ2RhdGFmZWVkZXIubW9udGguZmVicnVhcnknKVxubWFya2VyKCdkYXRhZmVlZGVyLm1vbnRoLm1hcmNoJylcbm1hcmtlcignZGF0YWZlZWRlci5tb250aC5hcHJpbCcpXG5tYXJrZXIoJ2RhdGFmZWVkZXIubW9udGgubWF5Jylcbm1hcmtlcignZGF0YWZlZWRlci5tb250aC5qdW5lJylcbm1hcmtlcignZGF0YWZlZWRlci5tb250aC5qdWx5Jylcbm1hcmtlcignZGF0YWZlZWRlci5tb250aC5hdWd1c3QnKVxubWFya2VyKCdkYXRhZmVlZGVyLm1vbnRoLnNlcHRlbWJlcicpXG5tYXJrZXIoJ2RhdGFmZWVkZXIubW9udGgub2N0b2JlcicpXG5tYXJrZXIoJ2RhdGFmZWVkZXIubW9udGgubm92ZW1iZXInKVxubWFya2VyKCdkYXRhZmVlZGVyLm1vbnRoLmRlY2VtYmVyJylcblxuZXhwb3J0IGNvbnN0IE1ZX0ZPUk1BVFMgPSB7XG4gIHBhcnNlOiB7XG4gICAgZGF0ZUlucHV0OiAnTEwnLFxuICB9LFxuICBkaXNwbGF5OiB7XG4gICAgZGF0ZUlucHV0OiAnTEwnLFxuICAgIG1vbnRoWWVhckxhYmVsOiAnTU1NIFlZWVknLFxuICAgIGRhdGVBMTF5TGFiZWw6ICdMTCcsXG4gICAgbW9udGhZZWFyQTExeUxhYmVsOiAnTU1NTSBZWVlZJyxcbiAgfSxcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ24tdWktd2l6YXJkLWZpZWxkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3dpemFyZC1maWVsZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3dpemFyZC1maWVsZC5jb21wb25lbnQuY3NzJ10sXG4gIHByb3ZpZGVyczogW1xuICAgIHsgcHJvdmlkZTogTUFUX0RBVEVfTE9DQUxFLCB1c2VWYWx1ZTogZ2V0TGFuZ0Zyb21Ccm93c2VyKCkgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBEYXRlQWRhcHRlcixcbiAgICAgIHVzZUNsYXNzOiBNb21lbnREYXRlQWRhcHRlcixcbiAgICAgIGRlcHM6IFtNQVRfREFURV9MT0NBTEUsIE1BVF9NT01FTlRfREFURV9BREFQVEVSX09QVElPTlNdLFxuICAgIH0sXG4gICAgeyBwcm92aWRlOiBNQVRfREFURV9GT1JNQVRTLCB1c2VWYWx1ZTogTVlfRk9STUFUUyB9LFxuICBdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgV2l6YXJkRmllbGRDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSB3aXphcmRGaWVsZENvbmZpZzogV2l6YXJkRmllbGRNb2RlbFxuXG4gIEBWaWV3Q2hpbGQoJ3NlYXJjaFRleHQnKSBzZWFyY2hUZXh0OiBUZXh0SW5wdXRDb21wb25lbnRcbiAgQFZpZXdDaGlsZCgnY2hpcHMnKSBjaGlwczogQ2hpcHNJbnB1dENvbXBvbmVudFxuICBAVmlld0NoaWxkKCd0ZXh0QXJlYScpIHRleHRBcmVhOiBUZXh0QXJlYUNvbXBvbmVudFxuICBAVmlld0NoaWxkKCdkcm9wZG93bicpIGRyb3Bkb3duOiBEcm9wZG93blNlbGVjdG9yQ29tcG9uZW50XG5cbiAgc3VicyA9IG5ldyBTdWJzY3JpcHRpb24oKVxuXG4gIGdldCB3aXphcmRGaWVsZFR5cGUoKTogdHlwZW9mIFdpemFyZEZpZWxkVHlwZSB7XG4gICAgcmV0dXJuIFdpemFyZEZpZWxkVHlwZVxuICB9XG5cbiAgZ2V0IGRyb3Bkb3duQ2hvaWNlcygpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLndpemFyZEZpZWxkQ29uZmlnLm9wdGlvbnNcbiAgfVxuXG4gIGdldCB3aXphcmRGaWVsZERhdGEoKSB7XG4gICAgY29uc3QgZGF0YSA9IHRoaXMud2l6YXJkU2VydmljZS5nZXRXaXphcmRGaWVsZERhdGEoXG4gICAgICB0aGlzLndpemFyZEZpZWxkQ29uZmlnLmlkXG4gICAgKVxuICAgIHN3aXRjaCAodGhpcy53aXphcmRGaWVsZENvbmZpZy50eXBlKSB7XG4gICAgICBjYXNlIFdpemFyZEZpZWxkVHlwZS5URVhUOiB7XG4gICAgICAgIHJldHVybiBkYXRhIHx8ICcnXG4gICAgICB9XG4gICAgICBjYXNlIFdpemFyZEZpZWxkVHlwZS5DSElQUzoge1xuICAgICAgICByZXR1cm4gZGF0YSA/IEpTT04ucGFyc2UoZGF0YSkgOiBbXVxuICAgICAgfVxuICAgICAgY2FzZSBXaXphcmRGaWVsZFR5cGUuVEVYVF9BUkVBOiB7XG4gICAgICAgIHJldHVybiBkYXRhIHx8ICcnXG4gICAgICB9XG4gICAgICBjYXNlIFdpemFyZEZpZWxkVHlwZS5EQVRBX1BJQ0tFUjoge1xuICAgICAgICByZXR1cm4gZGF0YSA/IG5ldyBEYXRlKE51bWJlcihkYXRhKSkgOiBuZXcgRGF0ZSgpXG4gICAgICB9XG4gICAgICBjYXNlIFdpemFyZEZpZWxkVHlwZS5EUk9QRE9XTjoge1xuICAgICAgICByZXR1cm4gZGF0YSA/IEpTT04ucGFyc2UoZGF0YSkgOiB0aGlzLmRyb3Bkb3duQ2hvaWNlc1swXT8udmFsdWVcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHdpemFyZFNlcnZpY2U6IFdpemFyZFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmXG4gICkge31cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5pbml0aWFsaXplTGlzdGVuZXJzKClcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKClcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuc3Vicy51bnN1YnNjcmliZSgpXG4gIH1cblxuICBwcml2YXRlIGluaXRpYWxpemVMaXN0ZW5lcnMoKSB7XG4gICAgc3dpdGNoICh0aGlzLndpemFyZEZpZWxkQ29uZmlnLnR5cGUpIHtcbiAgICAgIGNhc2UgV2l6YXJkRmllbGRUeXBlLlRFWFQ6IHtcbiAgICAgICAgdGhpcy5pbml0aWFsaXplVGV4dElucHV0TGlzdGVuZXIoKVxuICAgICAgICBicmVha1xuICAgICAgfVxuICAgICAgY2FzZSBXaXphcmRGaWVsZFR5cGUuQ0hJUFM6IHtcbiAgICAgICAgdGhpcy5pbml0aWFsaXplQ2hpcHNMaXN0ZW5lcigpXG4gICAgICAgIGJyZWFrXG4gICAgICB9XG4gICAgICBjYXNlIFdpemFyZEZpZWxkVHlwZS5URVhUX0FSRUE6IHtcbiAgICAgICAgdGhpcy5pbml0aWFsaXplVGV4dEFyZWFMaXN0ZW5lcigpXG4gICAgICAgIHJldHVyblxuICAgICAgfVxuICAgICAgY2FzZSBXaXphcmRGaWVsZFR5cGUuREFUQV9QSUNLRVI6IHtcbiAgICAgICAgdGhpcy5pbml0aWFsaXplRGF0ZUlucHV0KClcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG4gICAgICBjYXNlIFdpemFyZEZpZWxkVHlwZS5EUk9QRE9XTjoge1xuICAgICAgICB0aGlzLmluaXRpYWxpemVEcm9wZG93bkxpc3RlbmVyKClcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBpbml0aWFsaXplVGV4dElucHV0TGlzdGVuZXIoKSB7XG4gICAgdGhpcy5zdWJzLmFkZChcbiAgICAgIHRoaXMuc2VhcmNoVGV4dC52YWx1ZUNoYW5nZS5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG4gICAgICAgIHRoaXMud2l6YXJkU2VydmljZS5vbldpemFyZFdpemFyZEZpZWxkRGF0YUNoYW5nZWQoXG4gICAgICAgICAgdGhpcy53aXphcmRGaWVsZENvbmZpZy5pZCxcbiAgICAgICAgICB2YWx1ZVxuICAgICAgICApXG4gICAgICB9KVxuICAgIClcbiAgfVxuXG4gIHByaXZhdGUgaW5pdGlhbGl6ZUNoaXBzTGlzdGVuZXIoKSB7XG4gICAgdGhpcy5zdWJzLmFkZChcbiAgICAgIHRoaXMuY2hpcHMuaXRlbXNDaGFuZ2Uuc3Vic2NyaWJlKChpdGVtcykgPT4ge1xuICAgICAgICB0aGlzLndpemFyZFNlcnZpY2Uub25XaXphcmRXaXphcmRGaWVsZERhdGFDaGFuZ2VkKFxuICAgICAgICAgIHRoaXMud2l6YXJkRmllbGRDb25maWcuaWQsXG4gICAgICAgICAgSlNPTi5zdHJpbmdpZnkoaXRlbXMpXG4gICAgICAgIClcbiAgICAgIH0pXG4gICAgKVxuICB9XG5cbiAgcHJpdmF0ZSBpbml0aWFsaXplVGV4dEFyZWFMaXN0ZW5lcigpIHtcbiAgICB0aGlzLnN1YnMuYWRkKFxuICAgICAgdGhpcy50ZXh0QXJlYS52YWx1ZUNoYW5nZS5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG4gICAgICAgIHRoaXMud2l6YXJkU2VydmljZS5vbldpemFyZFdpemFyZEZpZWxkRGF0YUNoYW5nZWQoXG4gICAgICAgICAgdGhpcy53aXphcmRGaWVsZENvbmZpZy5pZCxcbiAgICAgICAgICB2YWx1ZVxuICAgICAgICApXG4gICAgICB9KVxuICAgIClcbiAgfVxuXG4gIGluaXRpYWxpemVEYXRlSW5wdXQoKSB7XG4gICAgY29uc3QgdGltZSA9IHRoaXMud2l6YXJkU2VydmljZS5nZXRXaXphcmRGaWVsZERhdGEoXG4gICAgICB0aGlzLndpemFyZEZpZWxkQ29uZmlnLmlkXG4gICAgKVxuICAgIGlmICghdGltZSkge1xuICAgICAgdGhpcy53aXphcmRTZXJ2aWNlLm9uV2l6YXJkV2l6YXJkRmllbGREYXRhQ2hhbmdlZChcbiAgICAgICAgdGhpcy53aXphcmRGaWVsZENvbmZpZy5pZCxcbiAgICAgICAgbmV3IERhdGUoKS52YWx1ZU9mKClcbiAgICAgIClcbiAgICB9XG4gIH1cblxuICBvbkRhdGVDaGFuZ2UoZXZlbnQ6IE1hdERhdGVwaWNrZXJJbnB1dEV2ZW50PERhdGU+KSB7XG4gICAgdGhpcy53aXphcmRTZXJ2aWNlLm9uV2l6YXJkV2l6YXJkRmllbGREYXRhQ2hhbmdlZChcbiAgICAgIHRoaXMud2l6YXJkRmllbGRDb25maWcuaWQsXG4gICAgICBldmVudC52YWx1ZS52YWx1ZU9mKClcbiAgICApXG4gIH1cblxuICBwcml2YXRlIGluaXRpYWxpemVEcm9wZG93bkxpc3RlbmVyKCkge1xuICAgIGlmIChcbiAgICAgIHRoaXMud2l6YXJkU2VydmljZS5nZXRXaXphcmRGaWVsZERhdGEodGhpcy53aXphcmRGaWVsZENvbmZpZy5pZCkgPT09XG4gICAgICAgIHVuZGVmaW5lZCAmJlxuICAgICAgISF0aGlzLmRyb3Bkb3duLnNlbGVjdGVkXG4gICAgKSB7XG4gICAgICB0aGlzLndpemFyZFNlcnZpY2Uuc2V0V2l6YXJkRmllbGREYXRhKFxuICAgICAgICB0aGlzLndpemFyZEZpZWxkQ29uZmlnLmlkLFxuICAgICAgICB0aGlzLmRyb3Bkb3duLnNlbGVjdGVkXG4gICAgICApXG4gICAgfVxuXG4gICAgdGhpcy5zdWJzLmFkZChcbiAgICAgIHRoaXMuZHJvcGRvd24uc2VsZWN0VmFsdWUuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xuICAgICAgICB0aGlzLndpemFyZFNlcnZpY2Uub25XaXphcmRXaXphcmRGaWVsZERhdGFDaGFuZ2VkKFxuICAgICAgICAgIHRoaXMud2l6YXJkRmllbGRDb25maWcuaWQsXG4gICAgICAgICAgdmFsdWVcbiAgICAgICAgKVxuICAgICAgfSlcbiAgICApXG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtMVwiPlxuICA8c3BhbiBbY2xhc3NdPVwid2l6YXJkRmllbGRDb25maWcuaWNvbiArICcgcHItMTAnXCI+PC9zcGFuPlxuICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBmbGV4LTFcIj5cbiAgICA8ZGl2IHRyYW5zbGF0ZSBjbGFzcz1cInRleHQteGwgZm9udC1ib2xkIHBiLTFcIj5cbiAgICAgIHt7IHdpemFyZEZpZWxkQ29uZmlnLmxhYmVsIH19XG4gICAgPC9kaXY+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJ3LTEvMiBoLTEyXCJcbiAgICAgICpuZ0lmPVwid2l6YXJkRmllbGRUeXBlLlRFWFQgPT09IHdpemFyZEZpZWxkQ29uZmlnLnR5cGVcIlxuICAgID5cbiAgICAgIDxnbi11aS10ZXh0LWlucHV0XG4gICAgICAgICNzZWFyY2hUZXh0XG4gICAgICAgIFtpZF09XCJ3aXphcmRGaWVsZENvbmZpZy5pZFwiXG4gICAgICAgIFt2YWx1ZV09XCJ3aXphcmRGaWVsZERhdGFcIlxuICAgICAgICBbcmVxdWlyZWRdPVwid2l6YXJkRmllbGRDb25maWcucmVxdWlyZWQgfHwgZmFsc2VcIlxuICAgICAgICBoaW50PVwiXCJcbiAgICAgID48L2duLXVpLXRleHQtaW5wdXQ+XG4gICAgPC9kaXY+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJmbGV4LTEgdy0xMS8xMlwiXG4gICAgICAqbmdJZj1cIndpemFyZEZpZWxkVHlwZS5DSElQUyA9PT0gd2l6YXJkRmllbGRDb25maWcudHlwZVwiXG4gICAgPlxuICAgICAgPGduLXVpLWNoaXBzLWlucHV0XG4gICAgICAgICNjaGlwc1xuICAgICAgICBbc2VsZWN0ZWRJdGVtc109XCJ3aXphcmRGaWVsZERhdGFcIlxuICAgICAgICBwbGFjZWhvbGRlcj1cIlwiXG4gICAgICAgIFtpZF09XCJ3aXphcmRGaWVsZENvbmZpZy5pZFwiXG4gICAgICAgIFt1cmxdPVwid2l6YXJkRmllbGRDb25maWcub3B0aW9ucy51cmxcIlxuICAgICAgICBbbG9hZE9uY2VdPVwid2l6YXJkRmllbGRDb25maWcub3B0aW9ucy5sb2FkT25jZVwiXG4gICAgICA+PC9nbi11aS1jaGlwcy1pbnB1dD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cImgtMzIgdy0xMS8xMlwiXG4gICAgICAqbmdJZj1cIndpemFyZEZpZWxkVHlwZS5URVhUX0FSRUEgPT09IHdpemFyZEZpZWxkQ29uZmlnLnR5cGVcIlxuICAgID5cbiAgICAgIDxnbi11aS10ZXh0LWFyZWFcbiAgICAgICAgI3RleHRBcmVhXG4gICAgICAgIFtpZF09XCJ3aXphcmRGaWVsZENvbmZpZy5pZFwiXG4gICAgICAgIFt2YWx1ZV09XCJ3aXphcmRGaWVsZERhdGFcIlxuICAgICAgICBbcmVxdWlyZWRdPVwid2l6YXJkRmllbGRDb25maWcucmVxdWlyZWQgfHwgZmFsc2VcIlxuICAgICAgICBwbGFjZWhvbGRlcj1cIlwiXG4gICAgICA+PC9nbi11aS10ZXh0LWFyZWE+XG4gICAgPC9kaXY+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJ3LTEvMiBoLTEyXCJcbiAgICAgICpuZ0lmPVwid2l6YXJkRmllbGRUeXBlLkRBVEFfUElDS0VSID09PSB3aXphcmRGaWVsZENvbmZpZy50eXBlXCJcbiAgICA+XG4gICAgICA8aW5wdXRcbiAgICAgICAgW2lkXT1cIndpemFyZEZpZWxkQ29uZmlnLmlkXCJcbiAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAoY2xpY2spPVwiZGF0ZXBpY2tlci5vcGVuKClcIlxuICAgICAgICBjbGFzcz1cInJvdW5kZWQgcC0yIHRleHQtZ3JheS03MDAgdy1mdWxsIGxlYWRpbmctdGlnaHQgZm9jdXM6b3V0bGluZS1ub25lIGZvY3VzOmJvcmRlci1wcmltYXJ5XCJcbiAgICAgICAgW3ZhbHVlXT1cIndpemFyZEZpZWxkRGF0YVwiXG4gICAgICAgIFttYXREYXRlcGlja2VyXT1cImRhdGVwaWNrZXJcIlxuICAgICAgICAoZGF0ZUNoYW5nZSk9XCJvbkRhdGVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAvPlxuICAgICAgPG1hdC1kYXRlcGlja2VyICNkYXRlcGlja2VyPjwvbWF0LWRhdGVwaWNrZXI+XG4gICAgPC9kaXY+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJ3LTEvMiBoLTEyXCJcbiAgICAgICpuZ0lmPVwid2l6YXJkRmllbGRUeXBlLkRST1BET1dOID09PSB3aXphcmRGaWVsZENvbmZpZy50eXBlXCJcbiAgICA+XG4gICAgICA8Z24tdWktZHJvcGRvd24tc2VsZWN0b3JcbiAgICAgICAgI2Ryb3Bkb3duXG4gICAgICAgIFtpZF09XCJ3aXphcmRGaWVsZENvbmZpZy5pZFwiXG4gICAgICAgIFt0aXRsZV09XCInJ1wiXG4gICAgICAgIFtleHRyYUJ0bkNsYXNzXT1cIidzZWNvbmRhcnkgbWluLXctZnVsbCdcIlxuICAgICAgICBbc2hvd1RpdGxlXT1cImZhbHNlXCJcbiAgICAgICAgW2Nob2ljZXNdPVwiZHJvcGRvd25DaG9pY2VzXCJcbiAgICAgICAgW3NlbGVjdGVkXT1cIndpemFyZEZpZWxkRGF0YVwiXG4gICAgICAgIGFyaWFOYW1lPVwic2VhcmNoLXNvcnQtYnlcIlxuICAgICAgPjwvZ24tdWktZHJvcGRvd24tc2VsZWN0b3I+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
176
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l6YXJkLWZpZWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZmVhdHVyZS9lZGl0b3Ivc3JjL2xpYi9jb21wb25lbnRzL3dpemFyZC1maWVsZC93aXphcmQtZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9mZWF0dXJlL2VkaXRvci9zcmMvbGliL2NvbXBvbmVudHMvd2l6YXJkLWZpZWxkL3dpemFyZC1maWVsZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsS0FBSyxFQUVMLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQTtBQUN0QixPQUFPLEVBQ0wsK0JBQStCLEVBQy9CLGlCQUFpQixHQUNsQixNQUFNLGtDQUFrQyxDQUFBO0FBQ3pDLE9BQU8sRUFDTCxXQUFXLEVBQ1gsZ0JBQWdCLEVBQ2hCLGVBQWUsR0FDaEIsTUFBTSx3QkFBd0IsQ0FBQTtBQUUvQixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0seUNBQXlDLENBQUE7QUFDaEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seUNBQXlDLENBQUE7QUFFNUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGdDQUFnQyxDQUFBO0FBQ2hFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQTtBQUM3RCxPQUFPLEVBQ0wsbUJBQW1CLEVBQ25CLHlCQUF5QixFQUN6QixpQkFBaUIsRUFDakIsa0JBQWtCLEdBQ25CLE1BQU0seUNBQXlDLENBQUE7QUFDaEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQTs7Ozs7Ozs7OztBQUVuQyxNQUFNLENBQUMsMEJBQTBCLENBQUMsQ0FBQTtBQUNsQyxNQUFNLENBQUMsMkJBQTJCLENBQUMsQ0FB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VUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQge1xuICBNQVRfTU9NRU5UX0RBVEVfQURBUFRFUl9PUFRJT05TLFxuICBNb21lbnREYXRlQWRhcHRlcixcbn0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwtbW9tZW50LWFkYXB0ZXInXG5pbXBvcnQge1xuICBEYXRlQWRhcHRlcixcbiAgTUFUX0RBVEVfRk9STUFUUyxcbiAgTUFUX0RBVEVfTE9DQUxFLFxufSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJ1xuaW1wb3J0IHsgTWF0RGF0ZXBpY2tlcklucHV0RXZlbnQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kYXRlcGlja2VyJ1xuaW1wb3J0IHsgbWFya2VyIH0gZnJvbSAnQGJpZXNiamVyZy9uZ3gtdHJhbnNsYXRlLWV4dHJhY3QtbWFya2VyJ1xuaW1wb3J0IHsgZ2V0TGFuZ0Zyb21Ccm93c2VyIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91dGlsL2kxOG4vc3JjJ1xuaW1wb3J0IHsgV2l6YXJkRmllbGRNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy93aXphcmQtZmllbGQubW9kZWwnXG5pbXBvcnQgeyBXaXphcmRGaWVsZFR5cGUgfSBmcm9tICcuLi8uLi9tb2RlbHMvd2l6YXJkLWZpZWxkLnR5cGUnXG5pbXBvcnQgeyBXaXphcmRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvd2l6YXJkLnNlcnZpY2UnXG5pbXBvcnQge1xuICBDaGlwc0lucHV0Q29tcG9uZW50LFxuICBEcm9wZG93blNlbGVjdG9yQ29tcG9uZW50LFxuICBUZXh0QXJlYUNvbXBvbmVudCxcbiAgVGV4dElucHV0Q29tcG9uZW50LFxufSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL2lucHV0cy9zcmMnXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJ1xuXG5tYXJrZXIoJ2RhdGFmZWVkZXIubW9udGguamFudWFyeScpXG5tYXJrZXIoJ2RhdGFmZWVkZXIubW9udGguZmVicnVhcnknKVxubWFya2VyKCdkYXRhZmVlZGVyLm1vbnRoLm1hcmNoJylcbm1hcmtlcignZGF0YWZlZWRlci5tb250aC5hcHJpbCcpXG5tYXJrZXIoJ2RhdGFmZWVkZXIubW9udGgubWF5Jylcbm1hcmtlcignZGF0YWZlZWRlci5tb250aC5qdW5lJylcbm1hcmtlcignZGF0YWZlZWRlci5tb250aC5qdWx5Jylcbm1hcmtlcignZGF0YWZlZWRlci5tb250aC5hdWd1c3QnKVxubWFya2VyKCdkYXRhZmVlZGVyLm1vbnRoLnNlcHRlbWJlcicpXG5tYXJrZXIoJ2RhdGFmZWVkZXIubW9udGgub2N0b2JlcicpXG5tYXJrZXIoJ2RhdGFmZWVkZXIubW9udGgubm92ZW1iZXInKVxubWFya2VyKCdkYXRhZmVlZGVyLm1vbnRoLmRlY2VtYmVyJylcblxuZXhwb3J0IGNvbnN0IE1ZX0ZPUk1BVFMgPSB7XG4gIHBhcnNlOiB7XG4gICAgZGF0ZUlucHV0OiAnTEwnLFxuICB9LFxuICBkaXNwbGF5OiB7XG4gICAgZGF0ZUlucHV0OiAnTEwnLFxuICAgIG1vbnRoWWVhckxhYmVsOiAnTU1NIFlZWVknLFxuICAgIGRhdGVBMTF5TGFiZWw6ICdMTCcsXG4gICAgbW9udGhZZWFyQTExeUxhYmVsOiAnTU1NTSBZWVlZJyxcbiAgfSxcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ24tdWktd2l6YXJkLWZpZWxkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3dpemFyZC1maWVsZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3dpemFyZC1maWVsZC5jb21wb25lbnQuY3NzJ10sXG4gIHByb3ZpZGVyczogW1xuICAgIHsgcHJvdmlkZTogTUFUX0RBVEVfTE9DQUxFLCB1c2VWYWx1ZTogZ2V0TGFuZ0Zyb21Ccm93c2VyKCkgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBEYXRlQWRhcHRlcixcbiAgICAgIHVzZUNsYXNzOiBNb21lbnREYXRlQWRhcHRlcixcbiAgICAgIGRlcHM6IFtNQVRfREFURV9MT0NBTEUsIE1BVF9NT01FTlRfREFURV9BREFQVEVSX09QVElPTlNdLFxuICAgIH0sXG4gICAgeyBwcm92aWRlOiBNQVRfREFURV9GT1JNQVRTLCB1c2VWYWx1ZTogTVlfRk9STUFUUyB9LFxuICBdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgV2l6YXJkRmllbGRDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSB3aXphcmRGaWVsZENvbmZpZzogV2l6YXJkRmllbGRNb2RlbFxuXG4gIEBWaWV3Q2hpbGQoJ3NlYXJjaFRleHQnKSBzZWFyY2hUZXh0OiBUZXh0SW5wdXRDb21wb25lbnRcbiAgQFZpZXdDaGlsZCgnY2hpcHMnKSBjaGlwczogQ2hpcHNJbnB1dENvbXBvbmVudFxuICBAVmlld0NoaWxkKCd0ZXh0QXJlYScpIHRleHRBcmVhOiBUZXh0QXJlYUNvbXBvbmVudFxuICBAVmlld0NoaWxkKCdkcm9wZG93bicpIGRyb3Bkb3duOiBEcm9wZG93blNlbGVjdG9yQ29tcG9uZW50XG5cbiAgc3VicyA9IG5ldyBTdWJzY3JpcHRpb24oKVxuXG4gIGdldCB3aXphcmRGaWVsZFR5cGUoKTogdHlwZW9mIFdpemFyZEZpZWxkVHlwZSB7XG4gICAgcmV0dXJuIFdpemFyZEZpZWxkVHlwZVxuICB9XG5cbiAgZ2V0IGRyb3Bkb3duQ2hvaWNlcygpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLndpemFyZEZpZWxkQ29uZmlnLm9wdGlvbnNcbiAgfVxuXG4gIGdldCB3aXphcmRGaWVsZERhdGEoKSB7XG4gICAgY29uc3QgZGF0YSA9IHRoaXMud2l6YXJkU2VydmljZS5nZXRXaXphcmRGaWVsZERhdGEoXG4gICAgICB0aGlzLndpemFyZEZpZWxkQ29uZmlnLmlkXG4gICAgKVxuICAgIHN3aXRjaCAodGhpcy53aXphcmRGaWVsZENvbmZpZy50eXBlKSB7XG4gICAgICBjYXNlIFdpemFyZEZpZWxkVHlwZS5URVhUOiB7XG4gICAgICAgIHJldHVybiBkYXRhIHx8ICcnXG4gICAgICB9XG4gICAgICBjYXNlIFdpemFyZEZpZWxkVHlwZS5DSElQUzoge1xuICAgICAgICByZXR1cm4gZGF0YSA/IEpTT04ucGFyc2UoZGF0YSkgOiBbXVxuICAgICAgfVxuICAgICAgY2FzZSBXaXphcmRGaWVsZFR5cGUuVEVYVF9BUkVBOiB7XG4gICAgICAgIHJldHVybiBkYXRhIHx8ICcnXG4gICAgICB9XG4gICAgICBjYXNlIFdpemFyZEZpZWxkVHlwZS5EQVRBX1BJQ0tFUjoge1xuICAgICAgICByZXR1cm4gZGF0YSA/IG5ldyBEYXRlKE51bWJlcihkYXRhKSkgOiBuZXcgRGF0ZSgpXG4gICAgICB9XG4gICAgICBjYXNlIFdpemFyZEZpZWxkVHlwZS5EUk9QRE9XTjoge1xuICAgICAgICByZXR1cm4gZGF0YSA/IEpTT04ucGFyc2UoZGF0YSkgOiB0aGlzLmRyb3Bkb3duQ2hvaWNlc1swXT8udmFsdWVcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHdpemFyZFNlcnZpY2U6IFdpemFyZFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmXG4gICkge31cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5pbml0aWFsaXplTGlzdGVuZXJzKClcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKClcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuc3Vicy51bnN1YnNjcmliZSgpXG4gIH1cblxuICBwcml2YXRlIGluaXRpYWxpemVMaXN0ZW5lcnMoKSB7XG4gICAgc3dpdGNoICh0aGlzLndpemFyZEZpZWxkQ29uZmlnLnR5cGUpIHtcbiAgICAgIGNhc2UgV2l6YXJkRmllbGRUeXBlLlRFWFQ6IHtcbiAgICAgICAgdGhpcy5pbml0aWFsaXplVGV4dElucHV0TGlzdGVuZXIoKVxuICAgICAgICBicmVha1xuICAgICAgfVxuICAgICAgY2FzZSBXaXphcmRGaWVsZFR5cGUuQ0hJUFM6IHtcbiAgICAgICAgdGhpcy5pbml0aWFsaXplQ2hpcHNMaXN0ZW5lcigpXG4gICAgICAgIGJyZWFrXG4gICAgICB9XG4gICAgICBjYXNlIFdpemFyZEZpZWxkVHlwZS5URVhUX0FSRUE6IHtcbiAgICAgICAgdGhpcy5pbml0aWFsaXplVGV4dEFyZWFMaXN0ZW5lcigpXG4gICAgICAgIHJldHVyblxuICAgICAgfVxuICAgICAgY2FzZSBXaXphcmRGaWVsZFR5cGUuREFUQV9QSUNLRVI6IHtcbiAgICAgICAgdGhpcy5pbml0aWFsaXplRGF0ZUlucHV0KClcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG4gICAgICBjYXNlIFdpemFyZEZpZWxkVHlwZS5EUk9QRE9XTjoge1xuICAgICAgICB0aGlzLmluaXRpYWxpemVEcm9wZG93bkxpc3RlbmVyKClcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBpbml0aWFsaXplVGV4dElucHV0TGlzdGVuZXIoKSB7XG4gICAgdGhpcy5zdWJzLmFkZChcbiAgICAgIHRoaXMuc2VhcmNoVGV4dC52YWx1ZUNoYW5nZS5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG4gICAgICAgIHRoaXMud2l6YXJkU2VydmljZS5vbldpemFyZFdpemFyZEZpZWxkRGF0YUNoYW5nZWQoXG4gICAgICAgICAgdGhpcy53aXphcmRGaWVsZENvbmZpZy5pZCxcbiAgICAgICAgICB2YWx1ZVxuICAgICAgICApXG4gICAgICB9KVxuICAgIClcbiAgfVxuXG4gIHByaXZhdGUgaW5pdGlhbGl6ZUNoaXBzTGlzdGVuZXIoKSB7XG4gICAgdGhpcy5zdWJzLmFkZChcbiAgICAgIHRoaXMuY2hpcHMuaXRlbXNDaGFuZ2Uuc3Vic2NyaWJlKChpdGVtcykgPT4ge1xuICAgICAgICB0aGlzLndpemFyZFNlcnZpY2Uub25XaXphcmRXaXphcmRGaWVsZERhdGFDaGFuZ2VkKFxuICAgICAgICAgIHRoaXMud2l6YXJkRmllbGRDb25maWcuaWQsXG4gICAgICAgICAgSlNPTi5zdHJpbmdpZnkoaXRlbXMpXG4gICAgICAgIClcbiAgICAgIH0pXG4gICAgKVxuICB9XG5cbiAgcHJpdmF0ZSBpbml0aWFsaXplVGV4dEFyZWFMaXN0ZW5lcigpIHtcbiAgICB0aGlzLnN1YnMuYWRkKFxuICAgICAgdGhpcy50ZXh0QXJlYS52YWx1ZUNoYW5nZS5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG4gICAgICAgIHRoaXMud2l6YXJkU2VydmljZS5vbldpemFyZFdpemFyZEZpZWxkRGF0YUNoYW5nZWQoXG4gICAgICAgICAgdGhpcy53aXphcmRGaWVsZENvbmZpZy5pZCxcbiAgICAgICAgICB2YWx1ZVxuICAgICAgICApXG4gICAgICB9KVxuICAgIClcbiAgfVxuXG4gIGluaXRpYWxpemVEYXRlSW5wdXQoKSB7XG4gICAgY29uc3QgdGltZSA9IHRoaXMud2l6YXJkU2VydmljZS5nZXRXaXphcmRGaWVsZERhdGEoXG4gICAgICB0aGlzLndpemFyZEZpZWxkQ29uZmlnLmlkXG4gICAgKVxuICAgIGlmICghdGltZSkge1xuICAgICAgdGhpcy53aXphcmRTZXJ2aWNlLm9uV2l6YXJkV2l6YXJkRmllbGREYXRhQ2hhbmdlZChcbiAgICAgICAgdGhpcy53aXphcmRGaWVsZENvbmZpZy5pZCxcbiAgICAgICAgbmV3IERhdGUoKS52YWx1ZU9mKClcbiAgICAgIClcbiAgICB9XG4gIH1cblxuICBvbkRhdGVDaGFuZ2UoZXZlbnQ6IE1hdERhdGVwaWNrZXJJbnB1dEV2ZW50PERhdGU+KSB7XG4gICAgdGhpcy53aXphcmRTZXJ2aWNlLm9uV2l6YXJkV2l6YXJkRmllbGREYXRhQ2hhbmdlZChcbiAgICAgIHRoaXMud2l6YXJkRmllbGRDb25maWcuaWQsXG4gICAgICBldmVudC52YWx1ZS52YWx1ZU9mKClcbiAgICApXG4gIH1cblxuICBwcml2YXRlIGluaXRpYWxpemVEcm9wZG93bkxpc3RlbmVyKCkge1xuICAgIGlmIChcbiAgICAgIHRoaXMud2l6YXJkU2VydmljZS5nZXRXaXphcmRGaWVsZERhdGEodGhpcy53aXphcmRGaWVsZENvbmZpZy5pZCkgPT09XG4gICAgICAgIHVuZGVmaW5lZCAmJlxuICAgICAgISF0aGlzLmRyb3Bkb3duLnNlbGVjdGVkXG4gICAgKSB7XG4gICAgICB0aGlzLndpemFyZFNlcnZpY2Uuc2V0V2l6YXJkRmllbGREYXRhKFxuICAgICAgICB0aGlzLndpemFyZEZpZWxkQ29uZmlnLmlkLFxuICAgICAgICB0aGlzLmRyb3Bkb3duLnNlbGVjdGVkXG4gICAgICApXG4gICAgfVxuXG4gICAgdGhpcy5zdWJzLmFkZChcbiAgICAgIHRoaXMuZHJvcGRvd24uc2VsZWN0VmFsdWUuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xuICAgICAgICB0aGlzLndpemFyZFNlcnZpY2Uub25XaXphcmRXaXphcmRGaWVsZERhdGFDaGFuZ2VkKFxuICAgICAgICAgIHRoaXMud2l6YXJkRmllbGRDb25maWcuaWQsXG4gICAgICAgICAgdmFsdWVcbiAgICAgICAgKVxuICAgICAgfSlcbiAgICApXG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtMVwiPlxuICA8c3BhbiBbY2xhc3NdPVwid2l6YXJkRmllbGRDb25maWcuaWNvbiArICcgcHItMTAnXCI+PC9zcGFuPlxuICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBmbGV4LTFcIj5cbiAgICA8ZGl2IHRyYW5zbGF0ZSBjbGFzcz1cInRleHQteGwgZm9udC1ib2xkIHBiLTFcIj5cbiAgICAgIHt7IHdpemFyZEZpZWxkQ29uZmlnLmxhYmVsIH19XG4gICAgPC9kaXY+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJ3LTEvMiBoLTEyXCJcbiAgICAgICpuZ0lmPVwid2l6YXJkRmllbGRUeXBlLlRFWFQgPT09IHdpemFyZEZpZWxkQ29uZmlnLnR5cGVcIlxuICAgID5cbiAgICAgIDxnbi11aS10ZXh0LWlucHV0XG4gICAgICAgICNzZWFyY2hUZXh0XG4gICAgICAgIFtpZF09XCJ3aXphcmRGaWVsZENvbmZpZy5pZFwiXG4gICAgICAgIFt2YWx1ZV09XCJ3aXphcmRGaWVsZERhdGFcIlxuICAgICAgICBbcmVxdWlyZWRdPVwid2l6YXJkRmllbGRDb25maWcucmVxdWlyZWQgfHwgZmFsc2VcIlxuICAgICAgICBwbGFjZWhvbGRlcj1cIlwiXG4gICAgICA+PC9nbi11aS10ZXh0LWlucHV0PlxuICAgIDwvZGl2PlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwiZmxleC0xIHctMTEvMTJcIlxuICAgICAgKm5nSWY9XCJ3aXphcmRGaWVsZFR5cGUuQ0hJUFMgPT09IHdpemFyZEZpZWxkQ29uZmlnLnR5cGVcIlxuICAgID5cbiAgICAgIDxnbi11aS1jaGlwcy1pbnB1dFxuICAgICAgICAjY2hpcHNcbiAgICAgICAgW3NlbGVjdGVkSXRlbXNdPVwid2l6YXJkRmllbGREYXRhXCJcbiAgICAgICAgcGxhY2Vob2xkZXI9XCJcIlxuICAgICAgICBbaWRdPVwid2l6YXJkRmllbGRDb25maWcuaWRcIlxuICAgICAgICBbdXJsXT1cIndpemFyZEZpZWxkQ29uZmlnLm9wdGlvbnMudXJsXCJcbiAgICAgICAgW2xvYWRPbmNlXT1cIndpemFyZEZpZWxkQ29uZmlnLm9wdGlvbnMubG9hZE9uY2VcIlxuICAgICAgPjwvZ24tdWktY2hpcHMtaW5wdXQ+XG4gICAgPC9kaXY+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJoLTMyIHctMTEvMTJcIlxuICAgICAgKm5nSWY9XCJ3aXphcmRGaWVsZFR5cGUuVEVYVF9BUkVBID09PSB3aXphcmRGaWVsZENvbmZpZy50eXBlXCJcbiAgICA+XG4gICAgICA8Z24tdWktdGV4dC1hcmVhXG4gICAgICAgICN0ZXh0QXJlYVxuICAgICAgICBbaWRdPVwid2l6YXJkRmllbGRDb25maWcuaWRcIlxuICAgICAgICBbdmFsdWVdPVwid2l6YXJkRmllbGREYXRhXCJcbiAgICAgICAgW3JlcXVpcmVkXT1cIndpemFyZEZpZWxkQ29uZmlnLnJlcXVpcmVkIHx8IGZhbHNlXCJcbiAgICAgICAgcGxhY2Vob2xkZXI9XCJcIlxuICAgICAgPjwvZ24tdWktdGV4dC1hcmVhPlxuICAgIDwvZGl2PlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwidy0xLzIgaC0xMlwiXG4gICAgICAqbmdJZj1cIndpemFyZEZpZWxkVHlwZS5EQVRBX1BJQ0tFUiA9PT0gd2l6YXJkRmllbGRDb25maWcudHlwZVwiXG4gICAgPlxuICAgICAgPGlucHV0XG4gICAgICAgIFtpZF09XCJ3aXphcmRGaWVsZENvbmZpZy5pZFwiXG4gICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgKGNsaWNrKT1cImRhdGVwaWNrZXIub3BlbigpXCJcbiAgICAgICAgY2xhc3M9XCJyb3VuZGVkIHAtMiB0ZXh0LWdyYXktNzAwIHctZnVsbCBsZWFkaW5nLXRpZ2h0IGZvY3VzOm91dGxpbmUtbm9uZSBmb2N1czpib3JkZXItcHJpbWFyeVwiXG4gICAgICAgIFt2YWx1ZV09XCJ3aXphcmRGaWVsZERhdGFcIlxuICAgICAgICBbbWF0RGF0ZXBpY2tlcl09XCJkYXRlcGlja2VyXCJcbiAgICAgICAgKGRhdGVDaGFuZ2UpPVwib25EYXRlQ2hhbmdlKCRldmVudClcIlxuICAgICAgLz5cbiAgICAgIDxtYXQtZGF0ZXBpY2tlciAjZGF0ZXBpY2tlcj48L21hdC1kYXRlcGlja2VyPlxuICAgIDwvZGl2PlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwidy0xLzIgaC0xMlwiXG4gICAgICAqbmdJZj1cIndpemFyZEZpZWxkVHlwZS5EUk9QRE9XTiA9PT0gd2l6YXJkRmllbGRDb25maWcudHlwZVwiXG4gICAgPlxuICAgICAgPGduLXVpLWRyb3Bkb3duLXNlbGVjdG9yXG4gICAgICAgICNkcm9wZG93blxuICAgICAgICBbaWRdPVwid2l6YXJkRmllbGRDb25maWcuaWRcIlxuICAgICAgICBbdGl0bGVdPVwiJydcIlxuICAgICAgICBbZXh0cmFCdG5DbGFzc109XCInc2Vjb25kYXJ5IG1pbi13LWZ1bGwnXCJcbiAgICAgICAgW3Nob3dUaXRsZV09XCJmYWxzZVwiXG4gICAgICAgIFtjaG9pY2VzXT1cImRyb3Bkb3duQ2hvaWNlc1wiXG4gICAgICAgIFtzZWxlY3RlZF09XCJ3aXphcmRGaWVsZERhdGFcIlxuICAgICAgICBhcmlhTmFtZT1cInNlYXJjaC1zb3J0LWJ5XCJcbiAgICAgID48L2duLXVpLWRyb3Bkb3duLXNlbGVjdG9yPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -10,4 +10,4 @@ export function evaluate(expression) {
10
10
  throw new Error(`Unknown operator: ${operator}`);
11
11
  }
12
12
  }
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwcmVzc2lvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ZlYXR1cmUvZWRpdG9yL3NyYy9saWIvZXhwcmVzc2lvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsTUFBTSxVQUFVLFFBQVEsQ0FBQyxVQUFrQjtJQUN6QyxJQUFJLFVBQVUsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLEVBQUU7UUFDaEMsT0FBTyxRQUFRLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO0tBQ3pDO0lBQ0QsTUFBTSxRQUFRLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUN6QyxRQUFRLFFBQVEsRUFBRTtRQUNoQixLQUFLLFNBQVM7WUFDWixPQUFPLEdBQUcsRUFBRSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUE7UUFDekI7WUFDRSxNQUFNLElBQUksS0FBSyxDQUFDLHFCQUFxQixRQUFRLEVBQUUsQ0FBQyxDQUFBO0tBQ25EO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVkaXRvckZpZWxkU3RhdGUsIEVkaXRvckZpZWxkVmFsdWUgfSBmcm9tICcuL21vZGVscy9maWVsZHMubW9kZWwnXG5cbmV4cG9ydCB0eXBlIEV4cHJlc3Npb25FdmFsdWF0b3IgPSAoZmllbGQ6IEVkaXRvckZpZWxkU3RhdGUpID0+IEVkaXRvckZpZWxkVmFsdWVcblxuZXhwb3J0IGZ1bmN0aW9uIGV2YWx1YXRlKGV4cHJlc3Npb246IHN0cmluZyk6IEV4cHJlc3Npb25FdmFsdWF0b3Ige1xuICBpZiAoZXhwcmVzc2lvbi5tYXRjaCgvXlxcJHsuKn0kLykpIHtcbiAgICByZXR1cm4gZXZhbHVhdGUoZXhwcmVzc2lvbi5zbGljZSgyLCAtMSkpXG4gIH1cbiAgY29uc3Qgb3BlcmF0b3IgPSBleHByZXNzaW9uLnNwbGl0KCcoJylbMF1cbiAgc3dpdGNoIChvcGVyYXRvcikge1xuICAgIGNhc2UgJ2RhdGVOb3cnOlxuICAgICAgcmV0dXJuICgpID0+IG5ldyBEYXRlKClcbiAgICBkZWZhdWx0OlxuICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmtub3duIG9wZXJhdG9yOiAke29wZXJhdG9yfWApXG4gIH1cbn1cbiJdfQ==
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwcmVzc2lvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ZlYXR1cmUvZWRpdG9yL3NyYy9saWIvZXhwcmVzc2lvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsTUFBTSxVQUFVLFFBQVEsQ0FBQyxVQUFrQjtJQUN6QyxJQUFJLFVBQVUsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLEVBQUU7UUFDaEMsT0FBTyxRQUFRLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO0tBQ3pDO0lBQ0QsTUFBTSxRQUFRLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUN6QyxRQUFRLFFBQVEsRUFBRTtRQUNoQixLQUFLLFNBQVM7WUFDWixPQUFPLEdBQUcsRUFBRSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUE7UUFDekI7WUFDRSxNQUFNLElBQUksS0FBSyxDQUFDLHFCQUFxQixRQUFRLEVBQUUsQ0FBQyxDQUFBO0tBQ25EO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVkaXRvckZpZWxkU3RhdGUsIEVkaXRvckZpZWxkVmFsdWUgfSBmcm9tICcuL21vZGVscy8nXG5cbmV4cG9ydCB0eXBlIEV4cHJlc3Npb25FdmFsdWF0b3IgPSAoZmllbGQ6IEVkaXRvckZpZWxkU3RhdGUpID0+IEVkaXRvckZpZWxkVmFsdWVcblxuZXhwb3J0IGZ1bmN0aW9uIGV2YWx1YXRlKGV4cHJlc3Npb246IHN0cmluZyk6IEV4cHJlc3Npb25FdmFsdWF0b3Ige1xuICBpZiAoZXhwcmVzc2lvbi5tYXRjaCgvXlxcJHsuKn0kLykpIHtcbiAgICByZXR1cm4gZXZhbHVhdGUoZXhwcmVzc2lvbi5zbGljZSgyLCAtMSkpXG4gIH1cbiAgY29uc3Qgb3BlcmF0b3IgPSBleHByZXNzaW9uLnNwbGl0KCcoJylbMF1cbiAgc3dpdGNoIChvcGVyYXRvcikge1xuICAgIGNhc2UgJ2RhdGVOb3cnOlxuICAgICAgcmV0dXJuICgpID0+IG5ldyBEYXRlKClcbiAgICBkZWZhdWx0OlxuICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmtub3duIG9wZXJhdG9yOiAke29wZXJhdG9yfWApXG4gIH1cbn1cbiJdfQ==