geonetwork-ui 2.5.0-dev.bd37f68b3 → 2.5.0-dev.c2edb114e

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 (258) hide show
  1. package/esm2022/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.mjs +11 -1
  2. package/esm2022/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.mjs +1 -1
  3. package/esm2022/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.mjs +34 -28
  4. package/esm2022/libs/api/repository/src/lib/gn4/gn4-repository.mjs +25 -9
  5. package/esm2022/libs/common/domain/src/lib/model/record/metadata.model.mjs +1 -1
  6. package/esm2022/libs/common/domain/src/lib/repository/records-repository.interface.mjs +1 -1
  7. package/esm2022/libs/feature/dataviz/src/lib/chart-view/chart-view.component.mjs +7 -4
  8. package/esm2022/libs/feature/dataviz/src/lib/service/data.service.mjs +23 -15
  9. package/esm2022/libs/feature/dataviz/src/lib/table-view/table-view.component.mjs +7 -4
  10. package/esm2022/libs/feature/editor/src/index.mjs +2 -1
  11. package/esm2022/libs/feature/editor/src/lib/components/constraint-card/constraint-card.component.mjs +3 -3
  12. package/esm2022/libs/feature/editor/src/lib/components/generic-keywords/generic-keywords.component.mjs +2 -2
  13. package/esm2022/libs/feature/editor/src/lib/components/import-record/import-record.component.mjs +4 -4
  14. package/esm2022/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.mjs +2 -2
  15. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts/form-field-contacts.component.mjs +2 -2
  16. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.mjs +9 -11
  17. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-rich/form-field-rich.component.mjs +2 -2
  18. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/index.mjs +2 -1
  19. package/esm2022/libs/feature/editor/src/lib/components/wizard-field/wizard-field.component.mjs +7 -23
  20. package/esm2022/libs/feature/editor/src/lib/fields.config.mjs +2 -2
  21. package/esm2022/libs/feature/editor/src/lib/models/wizard-field.type.mjs +3 -4
  22. package/esm2022/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-from-catalog.component.mjs +1 -1
  23. package/esm2022/libs/feature/record/src/lib/data-view/data-view.component.mjs +25 -5
  24. package/esm2022/libs/feature/record/src/lib/map-view/map-view.component.mjs +10 -7
  25. package/esm2022/libs/feature/record/src/lib/state/mdview.actions.mjs +4 -1
  26. package/esm2022/libs/feature/record/src/lib/state/mdview.effects.mjs +7 -2
  27. package/esm2022/libs/feature/record/src/lib/state/mdview.facade.mjs +9 -1
  28. package/esm2022/libs/feature/record/src/lib/state/mdview.reducer.mjs +19 -1
  29. package/esm2022/libs/feature/record/src/lib/state/mdview.selectors.mjs +6 -1
  30. package/esm2022/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.mjs +6 -3
  31. package/esm2022/libs/feature/search/src/lib/results-table/results-table-container.component.mjs +1 -1
  32. package/esm2022/libs/feature/search/src/lib/utils/service/fields.mjs +46 -1
  33. package/esm2022/libs/feature/search/src/lib/utils/service/fields.service.mjs +3 -2
  34. package/esm2022/libs/ui/elements/src/index.mjs +2 -1
  35. package/esm2022/libs/ui/elements/src/lib/application-banner/application-banner.component.mjs +78 -0
  36. package/esm2022/libs/ui/elements/src/lib/markdown-parser/markdown-parser.component.mjs +3 -3
  37. package/esm2022/libs/ui/elements/src/lib/record-api-form/record-api-form.component.mjs +2 -1
  38. package/esm2022/libs/ui/elements/src/lib/ui-elements.module.mjs +10 -4
  39. package/esm2022/libs/ui/inputs/src/index.mjs +1 -2
  40. package/esm2022/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.mjs +43 -3
  41. package/esm2022/libs/ui/inputs/src/lib/ui-inputs.module.mjs +1 -6
  42. package/esm2022/libs/ui/inputs/src/lib/url-input/url-input.component.mjs +2 -7
  43. package/esm2022/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.mjs +14 -4
  44. package/esm2022/libs/ui/search/src/lib/results-table/results-table.component.mjs +10 -3
  45. package/esm2022/libs/ui/widgets/src/index.mjs +1 -2
  46. package/esm2022/libs/ui/widgets/src/lib/ui-widgets.module.mjs +5 -6
  47. package/esm2022/libs/util/data-fetcher/src/lib/data-fetcher.mjs +5 -4
  48. package/esm2022/libs/util/data-fetcher/src/lib/readers/base-cache.mjs +12 -0
  49. package/esm2022/libs/util/data-fetcher/src/lib/readers/base-file.mjs +3 -3
  50. package/esm2022/libs/util/data-fetcher/src/lib/readers/base.mjs +1 -1
  51. package/esm2022/libs/util/data-fetcher/src/lib/readers/csv.mjs +2 -2
  52. package/esm2022/libs/util/data-fetcher/src/lib/readers/excel.mjs +2 -2
  53. package/esm2022/libs/util/data-fetcher/src/lib/readers/geojson.mjs +2 -2
  54. package/esm2022/libs/util/data-fetcher/src/lib/readers/gml.mjs +5 -3
  55. package/esm2022/libs/util/data-fetcher/src/lib/readers/json.mjs +2 -2
  56. package/esm2022/libs/util/data-fetcher/src/lib/readers/wfs.mjs +19 -11
  57. package/esm2022/libs/util/data-fetcher/src/lib/utils.mjs +13 -9
  58. package/esm2022/translations/de.json +4 -76
  59. package/esm2022/translations/en.json +4 -76
  60. package/esm2022/translations/es.json +3 -75
  61. package/esm2022/translations/fr.json +16 -88
  62. package/esm2022/translations/it.json +21 -92
  63. package/esm2022/translations/nl.json +3 -75
  64. package/esm2022/translations/pt.json +3 -75
  65. package/fesm2022/geonetwork-ui.mjs +568 -900
  66. package/fesm2022/geonetwork-ui.mjs.map +1 -1
  67. package/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.d.ts.map +1 -1
  68. package/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.d.ts +3 -0
  69. package/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.d.ts.map +1 -1
  70. package/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.d.ts +1 -0
  71. package/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.d.ts.map +1 -1
  72. package/libs/api/repository/src/lib/gn4/gn4-repository.d.ts +2 -1
  73. package/libs/api/repository/src/lib/gn4/gn4-repository.d.ts.map +1 -1
  74. package/libs/common/domain/src/lib/model/record/metadata.model.d.ts +6 -0
  75. package/libs/common/domain/src/lib/model/record/metadata.model.d.ts.map +1 -1
  76. package/libs/common/domain/src/lib/repository/records-repository.interface.d.ts +2 -1
  77. package/libs/common/domain/src/lib/repository/records-repository.interface.d.ts.map +1 -1
  78. package/libs/feature/dataviz/src/lib/chart-view/chart-view.component.d.ts +2 -1
  79. package/libs/feature/dataviz/src/lib/chart-view/chart-view.component.d.ts.map +1 -1
  80. package/libs/feature/dataviz/src/lib/service/data.service.d.ts +2 -2
  81. package/libs/feature/dataviz/src/lib/service/data.service.d.ts.map +1 -1
  82. package/libs/feature/dataviz/src/lib/table-view/table-view.component.d.ts +2 -1
  83. package/libs/feature/dataviz/src/lib/table-view/table-view.component.d.ts.map +1 -1
  84. package/libs/feature/editor/src/index.d.ts +1 -0
  85. package/libs/feature/editor/src/index.d.ts.map +1 -1
  86. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.d.ts +1 -0
  87. 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 -1
  88. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-rich/form-field-rich.component.d.ts.map +1 -1
  89. package/libs/feature/editor/src/lib/components/record-form/form-field/index.d.ts +1 -0
  90. package/libs/feature/editor/src/lib/components/record-form/form-field/index.d.ts.map +1 -1
  91. package/libs/feature/editor/src/lib/components/wizard-field/wizard-field.component.d.ts +1 -3
  92. package/libs/feature/editor/src/lib/components/wizard-field/wizard-field.component.d.ts.map +1 -1
  93. package/libs/feature/editor/src/lib/models/wizard-field.type.d.ts +2 -3
  94. package/libs/feature/editor/src/lib/models/wizard-field.type.d.ts.map +1 -1
  95. package/libs/feature/record/src/lib/data-view/data-view.component.d.ts +5 -1
  96. package/libs/feature/record/src/lib/data-view/data-view.component.d.ts.map +1 -1
  97. package/libs/feature/record/src/lib/map-view/map-view.component.d.ts +3 -2
  98. package/libs/feature/record/src/lib/map-view/map-view.component.d.ts.map +1 -1
  99. package/libs/feature/record/src/lib/state/mdview.actions.d.ts +16 -1
  100. package/libs/feature/record/src/lib/state/mdview.actions.d.ts.map +1 -1
  101. package/libs/feature/record/src/lib/state/mdview.effects.d.ts +5 -0
  102. package/libs/feature/record/src/lib/state/mdview.effects.d.ts.map +1 -1
  103. package/libs/feature/record/src/lib/state/mdview.facade.d.ts +2 -0
  104. package/libs/feature/record/src/lib/state/mdview.facade.d.ts.map +1 -1
  105. package/libs/feature/record/src/lib/state/mdview.reducer.d.ts +4 -1
  106. package/libs/feature/record/src/lib/state/mdview.reducer.d.ts.map +1 -1
  107. package/libs/feature/record/src/lib/state/mdview.selectors.d.ts +2 -0
  108. package/libs/feature/record/src/lib/state/mdview.selectors.d.ts.map +1 -1
  109. package/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.d.ts +2 -1
  110. package/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.d.ts.map +1 -1
  111. package/libs/feature/search/src/lib/utils/service/fields.d.ts +10 -0
  112. package/libs/feature/search/src/lib/utils/service/fields.d.ts.map +1 -1
  113. package/libs/feature/search/src/lib/utils/service/fields.service.d.ts.map +1 -1
  114. package/libs/ui/elements/src/index.d.ts +1 -0
  115. package/libs/ui/elements/src/index.d.ts.map +1 -1
  116. package/libs/ui/elements/src/lib/application-banner/application-banner.component.d.ts +16 -0
  117. package/libs/ui/elements/src/lib/application-banner/application-banner.component.d.ts.map +1 -0
  118. package/libs/ui/elements/src/lib/record-api-form/record-api-form.component.d.ts.map +1 -1
  119. package/libs/ui/elements/src/lib/ui-elements.module.d.ts +2 -1
  120. package/libs/ui/elements/src/lib/ui-elements.module.d.ts.map +1 -1
  121. package/libs/ui/inputs/src/index.d.ts +0 -1
  122. package/libs/ui/inputs/src/index.d.ts.map +1 -1
  123. package/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.d.ts +16 -1
  124. package/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.d.ts.map +1 -1
  125. package/libs/ui/inputs/src/lib/ui-inputs.module.d.ts +27 -28
  126. package/libs/ui/inputs/src/lib/ui-inputs.module.d.ts.map +1 -1
  127. package/libs/ui/inputs/src/lib/url-input/url-input.component.d.ts +2 -3
  128. package/libs/ui/inputs/src/lib/url-input/url-input.component.d.ts.map +1 -1
  129. package/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.d.ts +4 -2
  130. package/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.d.ts.map +1 -1
  131. package/libs/ui/search/src/lib/results-table/results-table.component.d.ts +3 -1
  132. package/libs/ui/search/src/lib/results-table/results-table.component.d.ts.map +1 -1
  133. package/libs/ui/widgets/src/index.d.ts +0 -1
  134. package/libs/ui/widgets/src/index.d.ts.map +1 -1
  135. package/libs/ui/widgets/src/lib/ui-widgets.module.d.ts +8 -9
  136. package/libs/ui/widgets/src/lib/ui-widgets.module.d.ts.map +1 -1
  137. package/libs/util/data-fetcher/src/lib/data-fetcher.d.ts +2 -2
  138. package/libs/util/data-fetcher/src/lib/data-fetcher.d.ts.map +1 -1
  139. package/libs/util/data-fetcher/src/lib/readers/base-cache.d.ts +8 -0
  140. package/libs/util/data-fetcher/src/lib/readers/base-cache.d.ts.map +1 -0
  141. package/libs/util/data-fetcher/src/lib/readers/base-file.d.ts +2 -2
  142. package/libs/util/data-fetcher/src/lib/readers/base-file.d.ts.map +1 -1
  143. package/libs/util/data-fetcher/src/lib/readers/base.d.ts +2 -2
  144. package/libs/util/data-fetcher/src/lib/readers/base.d.ts.map +1 -1
  145. package/libs/util/data-fetcher/src/lib/readers/gml.d.ts +5 -3
  146. package/libs/util/data-fetcher/src/lib/readers/gml.d.ts.map +1 -1
  147. package/libs/util/data-fetcher/src/lib/readers/wfs.d.ts +7 -4
  148. package/libs/util/data-fetcher/src/lib/readers/wfs.d.ts.map +1 -1
  149. package/libs/util/data-fetcher/src/lib/utils.d.ts +2 -2
  150. package/libs/util/data-fetcher/src/lib/utils.d.ts.map +1 -1
  151. package/package.json +1 -1
  152. package/src/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.ts +25 -0
  153. package/src/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.ts +4 -0
  154. package/src/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.ts +36 -27
  155. package/src/libs/api/repository/src/lib/gn4/gn4-repository.ts +44 -13
  156. package/src/libs/common/domain/src/lib/model/record/metadata.model.ts +3 -1
  157. package/src/libs/common/domain/src/lib/repository/records-repository.interface.ts +4 -1
  158. package/src/libs/common/fixtures/src/lib/records.fixtures.ts +165 -0
  159. package/src/libs/feature/dataviz/src/lib/chart-view/chart-view.component.ts +4 -1
  160. package/src/libs/feature/dataviz/src/lib/service/data.service.ts +42 -21
  161. package/src/libs/feature/dataviz/src/lib/table-view/table-view.component.ts +2 -1
  162. package/src/libs/feature/editor/src/index.ts +1 -0
  163. package/src/libs/feature/editor/src/lib/components/constraint-card/constraint-card.component.html +1 -1
  164. package/src/libs/feature/editor/src/lib/components/import-record/import-record.component.ts +3 -3
  165. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.html +1 -0
  166. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.ts +10 -10
  167. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-rich/form-field-rich.component.ts +1 -1
  168. package/src/libs/feature/editor/src/lib/components/record-form/form-field/index.ts +1 -0
  169. package/src/libs/feature/editor/src/lib/components/wizard-field/wizard-field.component.html +0 -13
  170. package/src/libs/feature/editor/src/lib/components/wizard-field/wizard-field.component.ts +0 -20
  171. package/src/libs/feature/editor/src/lib/fields.config.ts +1 -1
  172. package/src/libs/feature/editor/src/lib/models/wizard-field.type.ts +0 -1
  173. package/src/libs/feature/record/src/lib/data-view/data-view.component.html +24 -11
  174. package/src/libs/feature/record/src/lib/data-view/data-view.component.ts +26 -4
  175. package/src/libs/feature/record/src/lib/map-view/map-view.component.html +71 -60
  176. package/src/libs/feature/record/src/lib/map-view/map-view.component.ts +6 -3
  177. package/src/libs/feature/record/src/lib/state/mdview.actions.ts +16 -0
  178. package/src/libs/feature/record/src/lib/state/mdview.effects.ts +21 -2
  179. package/src/libs/feature/record/src/lib/state/mdview.facade.ts +15 -0
  180. package/src/libs/feature/record/src/lib/state/mdview.reducer.ts +30 -1
  181. package/src/libs/feature/record/src/lib/state/mdview.selectors.ts +12 -0
  182. package/src/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.html +1 -0
  183. package/src/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.ts +1 -0
  184. package/src/libs/feature/search/src/lib/utils/service/fields.service.ts +2 -0
  185. package/src/libs/feature/search/src/lib/utils/service/fields.ts +55 -0
  186. package/src/libs/ui/elements/src/index.ts +1 -0
  187. package/src/libs/ui/elements/src/lib/application-banner/application-banner.component.css +0 -0
  188. package/src/libs/ui/elements/src/lib/application-banner/application-banner.component.html +25 -0
  189. package/src/libs/ui/elements/src/lib/application-banner/application-banner.component.ts +70 -0
  190. package/src/libs/ui/elements/src/lib/markdown-parser/markdown-parser.component.ts +2 -2
  191. package/src/libs/ui/elements/src/lib/record-api-form/record-api-form.component.ts +2 -0
  192. package/src/libs/ui/elements/src/lib/ui-elements.module.ts +3 -0
  193. package/src/libs/ui/inputs/src/index.ts +0 -1
  194. package/src/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.ts +48 -0
  195. package/src/libs/ui/inputs/src/lib/ui-inputs.module.ts +0 -3
  196. package/src/libs/ui/inputs/src/lib/url-input/url-input.component.ts +1 -7
  197. package/src/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.html +37 -1
  198. package/src/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.ts +8 -2
  199. package/src/libs/ui/search/src/lib/results-table/results-table.component.html +2 -0
  200. package/src/libs/ui/search/src/lib/results-table/results-table.component.ts +6 -0
  201. package/src/libs/ui/widgets/src/index.ts +0 -1
  202. package/src/libs/ui/widgets/src/lib/ui-widgets.module.ts +2 -3
  203. package/src/libs/util/data-fetcher/src/lib/data-fetcher.ts +13 -4
  204. package/src/libs/util/data-fetcher/src/lib/readers/base-cache.ts +14 -0
  205. package/src/libs/util/data-fetcher/src/lib/readers/base-file.ts +2 -1
  206. package/src/libs/util/data-fetcher/src/lib/readers/base.ts +2 -2
  207. package/src/libs/util/data-fetcher/src/lib/readers/csv.ts +1 -1
  208. package/src/libs/util/data-fetcher/src/lib/readers/excel.ts +1 -1
  209. package/src/libs/util/data-fetcher/src/lib/readers/geojson.ts +1 -1
  210. package/src/libs/util/data-fetcher/src/lib/readers/gml.ts +7 -7
  211. package/src/libs/util/data-fetcher/src/lib/readers/json.ts +1 -1
  212. package/src/libs/util/data-fetcher/src/lib/readers/wfs.ts +34 -11
  213. package/src/libs/util/data-fetcher/src/lib/utils.ts +38 -32
  214. package/translations/de.json +4 -76
  215. package/translations/en.json +4 -76
  216. package/translations/es.json +3 -75
  217. package/translations/fr.json +16 -88
  218. package/translations/it.json +21 -92
  219. package/translations/nl.json +3 -75
  220. package/translations/pt.json +3 -75
  221. package/translations/sk.json +3 -75
  222. package/esm2022/libs/ui/inputs/src/lib/chips-input/chips-input.component.mjs +0 -78
  223. package/esm2022/libs/ui/widgets/src/lib/step-bar/step-bar.component.mjs +0 -55
  224. package/libs/ui/inputs/src/lib/chips-input/chips-input.component.d.ts +0 -33
  225. package/libs/ui/inputs/src/lib/chips-input/chips-input.component.d.ts.map +0 -1
  226. package/libs/ui/widgets/src/lib/step-bar/step-bar.component.d.ts +0 -21
  227. package/libs/ui/widgets/src/lib/step-bar/step-bar.component.d.ts.map +0 -1
  228. package/src/libs/data-access/datafeeder/src/index.ts +0 -1
  229. package/src/libs/data-access/datafeeder/src/openapi/api/api.ts +0 -11
  230. package/src/libs/data-access/datafeeder/src/openapi/api/config.api.service.ts +0 -168
  231. package/src/libs/data-access/datafeeder/src/openapi/api/dataPublishing.api.service.ts +0 -270
  232. package/src/libs/data-access/datafeeder/src/openapi/api/fileUpload.api.service.ts +0 -734
  233. package/src/libs/data-access/datafeeder/src/openapi/api.module.ts +0 -46
  234. package/src/libs/data-access/datafeeder/src/openapi/configuration.ts +0 -125
  235. package/src/libs/data-access/datafeeder/src/openapi/encoder.ts +0 -20
  236. package/src/libs/data-access/datafeeder/src/openapi/index.ts +0 -5
  237. package/src/libs/data-access/datafeeder/src/openapi/model/analysisStatusEnum.api.model.ts +0 -24
  238. package/src/libs/data-access/datafeeder/src/openapi/model/boundingBox.api.model.ts +0 -20
  239. package/src/libs/data-access/datafeeder/src/openapi/model/cRS.api.model.ts +0 -25
  240. package/src/libs/data-access/datafeeder/src/openapi/model/datasetMetadata.api.model.ts +0 -45
  241. package/src/libs/data-access/datafeeder/src/openapi/model/datasetPublishRequest.api.model.ts +0 -39
  242. package/src/libs/data-access/datafeeder/src/openapi/model/datasetPublishingStatus.api.model.ts +0 -50
  243. package/src/libs/data-access/datafeeder/src/openapi/model/datasetUploadStatus.api.model.ts +0 -39
  244. package/src/libs/data-access/datafeeder/src/openapi/model/models.ts +0 -13
  245. package/src/libs/data-access/datafeeder/src/openapi/model/property.api.model.ts +0 -17
  246. package/src/libs/data-access/datafeeder/src/openapi/model/publishJobStatus.api.model.ts +0 -33
  247. package/src/libs/data-access/datafeeder/src/openapi/model/publishRequest.api.model.ts +0 -16
  248. package/src/libs/data-access/datafeeder/src/openapi/model/publishStatusEnum.api.model.ts +0 -20
  249. package/src/libs/data-access/datafeeder/src/openapi/model/publishStepEnum.api.model.ts +0 -42
  250. package/src/libs/data-access/datafeeder/src/openapi/model/uploadJobStatus.api.model.ts +0 -33
  251. package/src/libs/data-access/datafeeder/src/openapi/variables.ts +0 -9
  252. package/src/libs/data-access/datafeeder/src/spec.yaml +0 -537
  253. package/src/libs/ui/inputs/src/lib/chips-input/chips-input.component.css +0 -36
  254. package/src/libs/ui/inputs/src/lib/chips-input/chips-input.component.html +0 -23
  255. package/src/libs/ui/inputs/src/lib/chips-input/chips-input.component.ts +0 -81
  256. package/src/libs/ui/widgets/src/lib/step-bar/step-bar.component.css +0 -3
  257. package/src/libs/ui/widgets/src/lib/step-bar/step-bar.component.html +0 -13
  258. package/src/libs/ui/widgets/src/lib/step-bar/step-bar.component.ts +0 -55
@@ -5,17 +5,16 @@ import { marker } from '@biesbjerg/ngx-translate-extract-marker';
5
5
  import { getLangFromBrowser } from '../../../../../../../libs/util/i18n/src';
6
6
  import { WizardFieldType } from '../../models/wizard-field.type';
7
7
  import { WizardService } from '../../services/wizard.service';
8
- import { ChipsInputComponent, DropdownSelectorComponent, TextAreaComponent, TextInputComponent, } from '../../../../../../../libs/ui/inputs/src';
8
+ import { DropdownSelectorComponent, TextAreaComponent, TextInputComponent, } from '../../../../../../../libs/ui/inputs/src';
9
9
  import { Subscription } from 'rxjs';
10
10
  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
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";
15
+ import * as i5 from "@ngx-translate/core";
16
+ import * as i6 from "@angular/material/datepicker";
17
+ import * as i7 from "../../../../../../ui/inputs/src/lib/text-input/text-input.component";
19
18
  marker('datafeeder.month.january');
20
19
  marker('datafeeder.month.february');
21
20
  marker('datafeeder.month.march');
@@ -52,9 +51,6 @@ export class WizardFieldComponent {
52
51
  case WizardFieldType.TEXT: {
53
52
  return data || '';
54
53
  }
55
- case WizardFieldType.CHIPS: {
56
- return data ? JSON.parse(data) : [];
57
- }
58
54
  case WizardFieldType.TEXT_AREA: {
59
55
  return data || '';
60
56
  }
@@ -84,10 +80,6 @@ export class WizardFieldComponent {
84
80
  this.initializeTextInputListener();
85
81
  break;
86
82
  }
87
- case WizardFieldType.CHIPS: {
88
- this.initializeChipsListener();
89
- break;
90
- }
91
83
  case WizardFieldType.TEXT_AREA: {
92
84
  this.initializeTextAreaListener();
93
85
  return;
@@ -107,11 +99,6 @@ export class WizardFieldComponent {
107
99
  this.wizardService.onWizardWizardFieldDataChanged(this.wizardFieldConfig.id, value);
108
100
  }));
109
101
  }
110
- initializeChipsListener() {
111
- this.subs.add(this.chips.itemsChange.subscribe((items) => {
112
- this.wizardService.onWizardWizardFieldDataChanged(this.wizardFieldConfig.id, JSON.stringify(items));
113
- }));
114
- }
115
102
  initializeTextAreaListener() {
116
103
  this.subs.add(this.textArea.valueChange.subscribe((value) => {
117
104
  this.wizardService.onWizardWizardFieldDataChanged(this.wizardFieldConfig.id, value);
@@ -145,7 +132,7 @@ export class WizardFieldComponent {
145
132
  deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS],
146
133
  },
147
134
  { 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 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:#fff;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 }); }
135
+ ], viewQueries: [{ propertyName: "searchText", first: true, predicate: ["searchText"], 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=\"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:#fff;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: "directive", type: i5.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i6.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i6.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i7.TextInputComponent, selector: "gn-ui-text-input", inputs: ["value", "extraClass", "placeholder", "required", "disabled"], outputs: ["valueChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
149
136
  }
150
137
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: WizardFieldComponent, decorators: [{
151
138
  type: Component,
@@ -157,15 +144,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
157
144
  deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS],
158
145
  },
159
146
  { 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 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:#fff;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"] }]
147
+ ], 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=\"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:#fff;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
148
  }], ctorParameters: () => [{ type: i1.WizardService }, { type: i0.ChangeDetectorRef }], propDecorators: { wizardFieldConfig: [{
162
149
  type: Input
163
150
  }], searchText: [{
164
151
  type: ViewChild,
165
152
  args: ['searchText']
166
- }], chips: [{
167
- type: ViewChild,
168
- args: ['chips']
169
153
  }], textArea: [{
170
154
  type: ViewChild,
171
155
  args: ['textArea']
@@ -173,4 +157,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
173
157
  type: ViewChild,
174
158
  args: ['dropdown']
175
159
  }] } });
176
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l6YXJkLWZpZWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZmVhdHVyZS9lZGl0b3Ivc3JjL2xpYi9jb21wb25lbnRzL3dpemFyZC1maWVsZC93aXphcmQtZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9mZWF0dXJlL2VkaXRvci9zcmMvbGliL2NvbXBvbmVudHMvd2l6YXJkLWZpZWxkL3dpemFyZC1maWVsZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsS0FBSyxFQUVMLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQTtBQUN0QixPQUFPLEVBQ0wsK0JBQStCLEVBQy9CLGlCQUFpQixHQUNsQixNQUFNLGtDQUFrQyxDQUFBO0FBQ3pDLE9BQU8sRUFDTCxXQUFXLEVBQ1gsZ0JBQWdCLEVBQ2hCLGVBQWUsR0FDaEIsTUFBTSx3QkFBd0IsQ0FBQTtBQUUvQixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0seUNBQXlDLENBQUE7QUFDaEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seUNBQXlDLENBQUE7QUFFNUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGdDQUFnQyxDQUFBO0FBQ2hFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQTtBQUM3RCxPQUFPLEVBQ0wsbUJBQW1CLEVBQ25CLHlCQUF5QixFQUN6QixpQkFBaUIsRUFDakIsa0JBQWtCLEdBQ25CLE1BQU0seUNBQXlDLENBQUE7QUFDaEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQTs7Ozs7Ozs7OztBQUVuQyxNQUFNLENBQUMsMEJBQTBCLENBQUMsQ0FBQTtBQUNsQyxNQUFNLENBQUMsMkJBQTJCLENBQUMsQ0FB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ekIsS0FBSztnQkFFbUIsVUFBVTtzQkFBbEMsU0FBUzt1QkFBQyxZQUFZO2dCQUNILEtBQUs7c0JBQXhCLFNBQVM7dUJBQUMsT0FBTztnQkFDSyxRQUFRO3NCQUE5QixTQUFTO3VCQUFDLFVBQVU7Z0JBQ0UsUUFBUTtzQkFBOUIsU0FBUzt1QkFBQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7XG4gIE1BVF9NT01FTlRfREFURV9BREFQVEVSX09QVElPTlMsXG4gIE1vbWVudERhdGVBZGFwdGVyLFxufSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC1tb21lbnQtYWRhcHRlcidcbmltcG9ydCB7XG4gIERhdGVBZGFwdGVyLFxuICBNQVRfREFURV9GT1JNQVRTLFxuICBNQVRfREFURV9MT0NBTEUsXG59IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnXG5pbXBvcnQgeyBNYXREYXRlcGlja2VySW5wdXRFdmVudCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RhdGVwaWNrZXInXG5pbXBvcnQgeyBtYXJrZXIgfSBmcm9tICdAYmllc2JqZXJnL25neC10cmFuc2xhdGUtZXh0cmFjdC1tYXJrZXInXG5pbXBvcnQgeyBnZXRMYW5nRnJvbUJyb3dzZXIgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3V0aWwvaTE4bi9zcmMnXG5pbXBvcnQgeyBXaXphcmRGaWVsZE1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3dpemFyZC1maWVsZC5tb2RlbCdcbmltcG9ydCB7IFdpemFyZEZpZWxkVHlwZSB9IGZyb20gJy4uLy4uL21vZGVscy93aXphcmQtZmllbGQudHlwZSdcbmltcG9ydCB7IFdpemFyZFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy93aXphcmQuc2VydmljZSdcbmltcG9ydCB7XG4gIENoaXBzSW5wdXRDb21wb25lbnQsXG4gIERyb3Bkb3duU2VsZWN0b3JDb21wb25lbnQsXG4gIFRleHRBcmVhQ29tcG9uZW50LFxuICBUZXh0SW5wdXRDb21wb25lbnQsXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvaW5wdXRzL3NyYydcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnXG5cbm1hcmtlcignZGF0YWZlZWRlci5tb250aC5qYW51YXJ5Jylcbm1hcmtlcignZGF0YWZlZWRlci5tb250aC5mZWJydWFyeScpXG5tYXJrZXIoJ2RhdGFmZWVkZXIubW9udGgubWFyY2gnKVxubWFya2VyKCdkYXRhZmVlZGVyLm1vbnRoLmFwcmlsJylcbm1hcmtlcignZGF0YWZlZWRlci5tb250aC5tYXknKVxubWFya2VyKCdkYXRhZmVlZGVyLm1vbnRoLmp1bmUnKVxubWFya2VyKCdkYXRhZmVlZGVyLm1vbnRoLmp1bHknKVxubWFya2VyKCdkYXRhZmVlZGVyLm1vbnRoLmF1Z3VzdCcpXG5tYXJrZXIoJ2RhdGFmZWVkZXIubW9udGguc2VwdGVtYmVyJylcbm1hcmtlcignZGF0YWZlZWRlci5tb250aC5vY3RvYmVyJylcbm1hcmtlcignZGF0YWZlZWRlci5tb250aC5ub3ZlbWJlcicpXG5tYXJrZXIoJ2RhdGFmZWVkZXIubW9udGguZGVjZW1iZXInKVxuXG5leHBvcnQgY29uc3QgTVlfRk9STUFUUyA9IHtcbiAgcGFyc2U6IHtcbiAgICBkYXRlSW5wdXQ6ICdMTCcsXG4gIH0sXG4gIGRpc3BsYXk6IHtcbiAgICBkYXRlSW5wdXQ6ICdMTCcsXG4gICAgbW9udGhZZWFyTGFiZWw6ICdNTU0gWVlZWScsXG4gICAgZGF0ZUExMXlMYWJlbDogJ0xMJyxcbiAgICBtb250aFllYXJBMTF5TGFiZWw6ICdNTU1NIFlZWVknLFxuICB9LFxufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdnbi11aS13aXphcmQtZmllbGQnLFxuICB0ZW1wbGF0ZVVybDogJy4vd2l6YXJkLWZpZWxkLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vd2l6YXJkLWZpZWxkLmNvbXBvbmVudC5jc3MnXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgeyBwcm92aWRlOiBNQVRfREFURV9MT0NBTEUsIHVzZVZhbHVlOiBnZXRMYW5nRnJvbUJyb3dzZXIoKSB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IERhdGVBZGFwdGVyLFxuICAgICAgdXNlQ2xhc3M6IE1vbWVudERhdGVBZGFwdGVyLFxuICAgICAgZGVwczogW01BVF9EQVRFX0xPQ0FMRSwgTUFUX01PTUVOVF9EQVRFX0FEQVBURVJfT1BUSU9OU10sXG4gICAgfSxcbiAgICB7IHByb3ZpZGU6IE1BVF9EQVRFX0ZPUk1BVFMsIHVzZVZhbHVlOiBNWV9GT1JNQVRTIH0sXG4gIF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBXaXphcmRGaWVsZENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIHdpemFyZEZpZWxkQ29uZmlnOiBXaXphcmRGaWVsZE1vZGVsXG5cbiAgQFZpZXdDaGlsZCgnc2VhcmNoVGV4dCcpIHNlYXJjaFRleHQ6IFRleHRJbnB1dENvbXBvbmVudFxuICBAVmlld0NoaWxkKCdjaGlwcycpIGNoaXBzOiBDaGlwc0lucHV0Q29tcG9uZW50XG4gIEBWaWV3Q2hpbGQoJ3RleHRBcmVhJykgdGV4dEFyZWE6IFRleHRBcmVhQ29tcG9uZW50XG4gIEBWaWV3Q2hpbGQoJ2Ryb3Bkb3duJykgZHJvcGRvd246IERyb3Bkb3duU2VsZWN0b3JDb21wb25lbnRcblxuICBzdWJzID0gbmV3IFN1YnNjcmlwdGlvbigpXG5cbiAgZ2V0IHdpemFyZEZpZWxkVHlwZSgpOiB0eXBlb2YgV2l6YXJkRmllbGRUeXBlIHtcbiAgICByZXR1cm4gV2l6YXJkRmllbGRUeXBlXG4gIH1cblxuICBnZXQgZHJvcGRvd25DaG9pY2VzKCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMud2l6YXJkRmllbGRDb25maWcub3B0aW9uc1xuICB9XG5cbiAgZ2V0IHdpemFyZEZpZWxkRGF0YSgpIHtcbiAgICBjb25zdCBkYXRhID0gdGhpcy53aXphcmRTZXJ2aWNlLmdldFdpemFyZEZpZWxkRGF0YShcbiAgICAgIHRoaXMud2l6YXJkRmllbGRDb25maWcuaWRcbiAgICApXG4gICAgc3dpdGNoICh0aGlzLndpemFyZEZpZWxkQ29uZmlnLnR5cGUpIHtcbiAgICAgIGNhc2UgV2l6YXJkRmllbGRUeXBlLlRFWFQ6IHtcbiAgICAgICAgcmV0dXJuIGRhdGEgfHwgJydcbiAgICAgIH1cbiAgICAgIGNhc2UgV2l6YXJkRmllbGRUeXBlLkNISVBTOiB7XG4gICAgICAgIHJldHVybiBkYXRhID8gSlNPTi5wYXJzZShkYXRhKSA6IFtdXG4gICAgICB9XG4gICAgICBjYXNlIFdpemFyZEZpZWxkVHlwZS5URVhUX0FSRUE6IHtcbiAgICAgICAgcmV0dXJuIGRhdGEgfHwgJydcbiAgICAgIH1cbiAgICAgIGNhc2UgV2l6YXJkRmllbGRUeXBlLkRBVEFfUElDS0VSOiB7XG4gICAgICAgIHJldHVybiBkYXRhID8gbmV3IERhdGUoTnVtYmVyKGRhdGEpKSA6IG5ldyBEYXRlKClcbiAgICAgIH1cbiAgICAgIGNhc2UgV2l6YXJkRmllbGRUeXBlLkRST1BET1dOOiB7XG4gICAgICAgIHJldHVybiBkYXRhID8gSlNPTi5wYXJzZShkYXRhKSA6IHRoaXMuZHJvcGRvd25DaG9pY2VzWzBdPy52YWx1ZVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgd2l6YXJkU2VydmljZTogV2l6YXJkU2VydmljZSxcbiAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgKSB7fVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICB0aGlzLmluaXRpYWxpemVMaXN0ZW5lcnMoKVxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5zdWJzLnVuc3Vic2NyaWJlKClcbiAgfVxuXG4gIHByaXZhdGUgaW5pdGlhbGl6ZUxpc3RlbmVycygpIHtcbiAgICBzd2l0Y2ggKHRoaXMud2l6YXJkRmllbGRDb25maWcudHlwZSkge1xuICAgICAgY2FzZSBXaXphcmRGaWVsZFR5cGUuVEVYVDoge1xuICAgICAgICB0aGlzLmluaXRpYWxpemVUZXh0SW5wdXRMaXN0ZW5lcigpXG4gICAgICAgIGJyZWFrXG4gICAgICB9XG4gICAgICBjYXNlIFdpemFyZEZpZWxkVHlwZS5DSElQUzoge1xuICAgICAgICB0aGlzLmluaXRpYWxpemVDaGlwc0xpc3RlbmVyKClcbiAgICAgICAgYnJlYWtcbiAgICAgIH1cbiAgICAgIGNhc2UgV2l6YXJkRmllbGRUeXBlLlRFWFRfQVJFQToge1xuICAgICAgICB0aGlzLmluaXRpYWxpemVUZXh0QXJlYUxpc3RlbmVyKClcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG4gICAgICBjYXNlIFdpemFyZEZpZWxkVHlwZS5EQVRBX1BJQ0tFUjoge1xuICAgICAgICB0aGlzLmluaXRpYWxpemVEYXRlSW5wdXQoKVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cbiAgICAgIGNhc2UgV2l6YXJkRmllbGRUeXBlLkRST1BET1dOOiB7XG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZURyb3Bkb3duTGlzdGVuZXIoKVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGluaXRpYWxpemVUZXh0SW5wdXRMaXN0ZW5lcigpIHtcbiAgICB0aGlzLnN1YnMuYWRkKFxuICAgICAgdGhpcy5zZWFyY2hUZXh0LnZhbHVlQ2hhbmdlLnN1YnNjcmliZSgodmFsdWUpID0+IHtcbiAgICAgICAgdGhpcy53aXphcmRTZXJ2aWNlLm9uV2l6YXJkV2l6YXJkRmllbGREYXRhQ2hhbmdlZChcbiAgICAgICAgICB0aGlzLndpemFyZEZpZWxkQ29uZmlnLmlkLFxuICAgICAgICAgIHZhbHVlXG4gICAgICAgIClcbiAgICAgIH0pXG4gICAgKVxuICB9XG5cbiAgcHJpdmF0ZSBpbml0aWFsaXplQ2hpcHNMaXN0ZW5lcigpIHtcbiAgICB0aGlzLnN1YnMuYWRkKFxuICAgICAgdGhpcy5jaGlwcy5pdGVtc0NoYW5nZS5zdWJzY3JpYmUoKGl0ZW1zKSA9PiB7XG4gICAgICAgIHRoaXMud2l6YXJkU2VydmljZS5vbldpemFyZFdpemFyZEZpZWxkRGF0YUNoYW5nZWQoXG4gICAgICAgICAgdGhpcy53aXphcmRGaWVsZENvbmZpZy5pZCxcbiAgICAgICAgICBKU09OLnN0cmluZ2lmeShpdGVtcylcbiAgICAgICAgKVxuICAgICAgfSlcbiAgICApXG4gIH1cblxuICBwcml2YXRlIGluaXRpYWxpemVUZXh0QXJlYUxpc3RlbmVyKCkge1xuICAgIHRoaXMuc3Vicy5hZGQoXG4gICAgICB0aGlzLnRleHRBcmVhLnZhbHVlQ2hhbmdlLnN1YnNjcmliZSgodmFsdWUpID0+IHtcbiAgICAgICAgdGhpcy53aXphcmRTZXJ2aWNlLm9uV2l6YXJkV2l6YXJkRmllbGREYXRhQ2hhbmdlZChcbiAgICAgICAgICB0aGlzLndpemFyZEZpZWxkQ29uZmlnLmlkLFxuICAgICAgICAgIHZhbHVlXG4gICAgICAgIClcbiAgICAgIH0pXG4gICAgKVxuICB9XG5cbiAgaW5pdGlhbGl6ZURhdGVJbnB1dCgpIHtcbiAgICBjb25zdCB0aW1lID0gdGhpcy53aXphcmRTZXJ2aWNlLmdldFdpemFyZEZpZWxkRGF0YShcbiAgICAgIHRoaXMud2l6YXJkRmllbGRDb25maWcuaWRcbiAgICApXG4gICAgaWYgKCF0aW1lKSB7XG4gICAgICB0aGlzLndpemFyZFNlcnZpY2Uub25XaXphcmRXaXphcmRGaWVsZERhdGFDaGFuZ2VkKFxuICAgICAgICB0aGlzLndpemFyZEZpZWxkQ29uZmlnLmlkLFxuICAgICAgICBuZXcgRGF0ZSgpLnZhbHVlT2YoKVxuICAgICAgKVxuICAgIH1cbiAgfVxuXG4gIG9uRGF0ZUNoYW5nZShldmVudDogTWF0RGF0ZXBpY2tlcklucHV0RXZlbnQ8RGF0ZT4pIHtcbiAgICB0aGlzLndpemFyZFNlcnZpY2Uub25XaXphcmRXaXphcmRGaWVsZERhdGFDaGFuZ2VkKFxuICAgICAgdGhpcy53aXphcmRGaWVsZENvbmZpZy5pZCxcbiAgICAgIGV2ZW50LnZhbHVlLnZhbHVlT2YoKVxuICAgIClcbiAgfVxuXG4gIHByaXZhdGUgaW5pdGlhbGl6ZURyb3Bkb3duTGlzdGVuZXIoKSB7XG4gICAgaWYgKFxuICAgICAgdGhpcy53aXphcmRTZXJ2aWNlLmdldFdpemFyZEZpZWxkRGF0YSh0aGlzLndpemFyZEZpZWxkQ29uZmlnLmlkKSA9PT1cbiAgICAgICAgdW5kZWZpbmVkICYmXG4gICAgICAhIXRoaXMuZHJvcGRvd24uc2VsZWN0ZWRcbiAgICApIHtcbiAgICAgIHRoaXMud2l6YXJkU2VydmljZS5zZXRXaXphcmRGaWVsZERhdGEoXG4gICAgICAgIHRoaXMud2l6YXJkRmllbGRDb25maWcuaWQsXG4gICAgICAgIHRoaXMuZHJvcGRvd24uc2VsZWN0ZWRcbiAgICAgIClcbiAgICB9XG5cbiAgICB0aGlzLnN1YnMuYWRkKFxuICAgICAgdGhpcy5kcm9wZG93bi5zZWxlY3RWYWx1ZS5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG4gICAgICAgIHRoaXMud2l6YXJkU2VydmljZS5vbldpemFyZFdpemFyZEZpZWxkRGF0YUNoYW5nZWQoXG4gICAgICAgICAgdGhpcy53aXphcmRGaWVsZENvbmZpZy5pZCxcbiAgICAgICAgICB2YWx1ZVxuICAgICAgICApXG4gICAgICB9KVxuICAgIClcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImZsZXggZmxleC0xXCI+XG4gIDxzcGFuIFtjbGFzc109XCJ3aXphcmRGaWVsZENvbmZpZy5pY29uICsgJyBwci0xMCdcIj48L3NwYW4+XG4gIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGZsZXgtMVwiPlxuICAgIDxkaXYgdHJhbnNsYXRlIGNsYXNzPVwidGV4dC14bCBmb250LWJvbGQgcGItMVwiPlxuICAgICAge3sgd2l6YXJkRmllbGRDb25maWcubGFiZWwgfX1cbiAgICA8L2Rpdj5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cInctMS8yIGgtMTJcIlxuICAgICAgKm5nSWY9XCJ3aXphcmRGaWVsZFR5cGUuVEVYVCA9PT0gd2l6YXJkRmllbGRDb25maWcudHlwZVwiXG4gICAgPlxuICAgICAgPGduLXVpLXRleHQtaW5wdXRcbiAgICAgICAgI3NlYXJjaFRleHRcbiAgICAgICAgW2lkXT1cIndpemFyZEZpZWxkQ29uZmlnLmlkXCJcbiAgICAgICAgW3ZhbHVlXT1cIndpemFyZEZpZWxkRGF0YVwiXG4gICAgICAgIFtyZXF1aXJlZF09XCJ3aXphcmRGaWVsZENvbmZpZy5yZXF1aXJlZCB8fCBmYWxzZVwiXG4gICAgICAgIHBsYWNlaG9sZGVyPVwiXCJcbiAgICAgID48L2duLXVpLXRleHQtaW5wdXQ+XG4gICAgPC9kaXY+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJmbGV4LTEgdy0xMS8xMlwiXG4gICAgICAqbmdJZj1cIndpemFyZEZpZWxkVHlwZS5DSElQUyA9PT0gd2l6YXJkRmllbGRDb25maWcudHlwZVwiXG4gICAgPlxuICAgICAgPGduLXVpLWNoaXBzLWlucHV0XG4gICAgICAgICNjaGlwc1xuICAgICAgICBbc2VsZWN0ZWRJdGVtc109XCJ3aXphcmRGaWVsZERhdGFcIlxuICAgICAgICBwbGFjZWhvbGRlcj1cIlwiXG4gICAgICAgIFtpZF09XCJ3aXphcmRGaWVsZENvbmZpZy5pZFwiXG4gICAgICAgIFt1cmxdPVwid2l6YXJkRmllbGRDb25maWcub3B0aW9ucy51cmxcIlxuICAgICAgICBbbG9hZE9uY2VdPVwid2l6YXJkRmllbGRDb25maWcub3B0aW9ucy5sb2FkT25jZVwiXG4gICAgICA+PC9nbi11aS1jaGlwcy1pbnB1dD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cImgtMzIgdy0xMS8xMlwiXG4gICAgICAqbmdJZj1cIndpemFyZEZpZWxkVHlwZS5URVhUX0FSRUEgPT09IHdpemFyZEZpZWxkQ29uZmlnLnR5cGVcIlxuICAgID5cbiAgICAgIDxnbi11aS10ZXh0LWFyZWFcbiAgICAgICAgI3RleHRBcmVhXG4gICAgICAgIFtpZF09XCJ3aXphcmRGaWVsZENvbmZpZy5pZFwiXG4gICAgICAgIFt2YWx1ZV09XCJ3aXphcmRGaWVsZERhdGFcIlxuICAgICAgICBbcmVxdWlyZWRdPVwid2l6YXJkRmllbGRDb25maWcucmVxdWlyZWQgfHwgZmFsc2VcIlxuICAgICAgICBwbGFjZWhvbGRlcj1cIlwiXG4gICAgICA+PC9nbi11aS10ZXh0LWFyZWE+XG4gICAgPC9kaXY+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJ3LTEvMiBoLTEyXCJcbiAgICAgICpuZ0lmPVwid2l6YXJkRmllbGRUeXBlLkRBVEFfUElDS0VSID09PSB3aXphcmRGaWVsZENvbmZpZy50eXBlXCJcbiAgICA+XG4gICAgICA8aW5wdXRcbiAgICAgICAgW2lkXT1cIndpemFyZEZpZWxkQ29uZmlnLmlkXCJcbiAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAoY2xpY2spPVwiZGF0ZXBpY2tlci5vcGVuKClcIlxuICAgICAgICBjbGFzcz1cInJvdW5kZWQgcC0yIHRleHQtZ3JheS03MDAgdy1mdWxsIGxlYWRpbmctdGlnaHQgZm9jdXM6b3V0bGluZS1ub25lIGZvY3VzOmJvcmRlci1wcmltYXJ5XCJcbiAgICAgICAgW3ZhbHVlXT1cIndpemFyZEZpZWxkRGF0YVwiXG4gICAgICAgIFttYXREYXRlcGlja2VyXT1cImRhdGVwaWNrZXJcIlxuICAgICAgICAoZGF0ZUNoYW5nZSk9XCJvbkRhdGVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAvPlxuICAgICAgPG1hdC1kYXRlcGlja2VyICNkYXRlcGlja2VyPjwvbWF0LWRhdGVwaWNrZXI+XG4gICAgPC9kaXY+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJ3LTEvMiBoLTEyXCJcbiAgICAgICpuZ0lmPVwid2l6YXJkRmllbGRUeXBlLkRST1BET1dOID09PSB3aXphcmRGaWVsZENvbmZpZy50eXBlXCJcbiAgICA+XG4gICAgICA8Z24tdWktZHJvcGRvd24tc2VsZWN0b3JcbiAgICAgICAgI2Ryb3Bkb3duXG4gICAgICAgIFtpZF09XCJ3aXphcmRGaWVsZENvbmZpZy5pZFwiXG4gICAgICAgIFt0aXRsZV09XCInJ1wiXG4gICAgICAgIFtleHRyYUJ0bkNsYXNzXT1cIidzZWNvbmRhcnkgbWluLXctZnVsbCdcIlxuICAgICAgICBbc2hvd1RpdGxlXT1cImZhbHNlXCJcbiAgICAgICAgW2Nob2ljZXNdPVwiZHJvcGRvd25DaG9pY2VzXCJcbiAgICAgICAgW3NlbGVjdGVkXT1cIndpemFyZEZpZWxkRGF0YVwiXG4gICAgICAgIGFyaWFOYW1lPVwic2VhcmNoLXNvcnQtYnlcIlxuICAgICAgPjwvZ24tdWktZHJvcGRvd24tc2VsZWN0b3I+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
160
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l6YXJkLWZpZWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZmVhdHVyZS9lZGl0b3Ivc3JjL2xpYi9jb21wb25lbnRzL3dpemFyZC1maWVsZC93aXphcmQtZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9mZWF0dXJlL2VkaXRvci9zcmMvbGliL2NvbXBvbmVudHMvd2l6YXJkLWZpZWxkL3dpemFyZC1maWVsZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsS0FBSyxFQUVMLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQTtBQUN0QixPQUFPLEVBQ0wsK0JBQStCLEVBQy9CLGlCQUFpQixHQUNsQixNQUFNLGtDQUFrQyxDQUFBO0FBQ3pDLE9BQU8sRUFDTCxXQUFXLEVBQ1gsZ0JBQWdCLEVBQ2hCLGVBQWUsR0FDaEIsTUFBTSx3QkFBd0IsQ0FBQTtBQUUvQixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0seUNBQXlDLENBQUE7QUFDaEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seUNBQXlDLENBQUE7QUFFNUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGdDQUFnQyxDQUFBO0FBQ2hFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQTtBQUM3RCxPQUFPLEVBQ0wseUJBQXlCLEVBQ3pCLGlCQUFpQixFQUNqQixrQkFBa0IsR0FDbkIsTUFBTSx5Q0FBeUMsQ0FBQTtBQUNoRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFBOzs7Ozs7Ozs7QUFFbkMsTUFBTSxDQUFDLDBCQUEwQixDQUFDLENBQUE7QUFDbEMsTUFBTSxDQUFDLDJCQUEyQixDQUFDLENBQUE7QUFDbkMsTUFBTSxD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QStCLENBQUM7YUFDekQ7WUFDRCxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFO1NBQ3BELGtUQ3BFSCxpOERBOERBOzs0RkRTYSxvQkFBb0I7a0JBZmhDLFNBQVM7K0JBQ0Usb0JBQW9CLGFBR25CO3dCQUNULEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxRQUFRLEVBQUUsa0JBQWtCLEVBQUUsRUFBRTt3QkFDNUQ7NEJBQ0UsT0FBTyxFQUFFLFdBQVc7NEJBQ3BCLFFBQVEsRUFBRSxpQkFBaUI7NEJBQzNCLElBQUksRUFBRSxDQUFDLGVBQWUsRUFBRSwrQkFBK0IsQ0FBQzt5QkFDekQ7d0JBQ0QsRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRTtxQkFDcEQsbUJBQ2dCLHVCQUF1QixDQUFDLE1BQU07a0hBR3RDLGlCQUFpQjtzQkFBekIsS0FBSztnQkFFbUIsVUFBVTtzQkFBbEMsU0FBUzt1QkFBQyxZQUFZO2dCQUNBLFFBQVE7c0JBQTlCLFNBQVM7dUJBQUMsVUFBVTtnQkFDRSxRQUFRO3NCQUE5QixTQUFTO3VCQUFDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHtcbiAgTUFUX01PTUVOVF9EQVRFX0FEQVBURVJfT1BUSU9OUyxcbiAgTW9tZW50RGF0ZUFkYXB0ZXIsXG59IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsLW1vbWVudC1hZGFwdGVyJ1xuaW1wb3J0IHtcbiAgRGF0ZUFkYXB0ZXIsXG4gIE1BVF9EQVRFX0ZPUk1BVFMsXG4gIE1BVF9EQVRFX0xPQ0FMRSxcbn0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSdcbmltcG9ydCB7IE1hdERhdGVwaWNrZXJJbnB1dEV2ZW50IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGF0ZXBpY2tlcidcbmltcG9ydCB7IG1hcmtlciB9IGZyb20gJ0BiaWVzYmplcmcvbmd4LXRyYW5zbGF0ZS1leHRyYWN0LW1hcmtlcidcbmltcG9ydCB7IGdldExhbmdGcm9tQnJvd3NlciB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdXRpbC9pMThuL3NyYydcbmltcG9ydCB7IFdpemFyZEZpZWxkTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvd2l6YXJkLWZpZWxkLm1vZGVsJ1xuaW1wb3J0IHsgV2l6YXJkRmllbGRUeXBlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3dpemFyZC1maWVsZC50eXBlJ1xuaW1wb3J0IHsgV2l6YXJkU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3dpemFyZC5zZXJ2aWNlJ1xuaW1wb3J0IHtcbiAgRHJvcGRvd25TZWxlY3RvckNvbXBvbmVudCxcbiAgVGV4dEFyZWFDb21wb25lbnQsXG4gIFRleHRJbnB1dENvbXBvbmVudCxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS9pbnB1dHMvc3JjJ1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcydcblxubWFya2VyKCdkYXRhZmVlZGVyLm1vbnRoLmphbnVhcnknKVxubWFya2VyKCdkYXRhZmVlZGVyLm1vbnRoLmZlYnJ1YXJ5Jylcbm1hcmtlcignZGF0YWZlZWRlci5tb250aC5tYXJjaCcpXG5tYXJrZXIoJ2RhdGFmZWVkZXIubW9udGguYXByaWwnKVxubWFya2VyKCdkYXRhZmVlZGVyLm1vbnRoLm1heScpXG5tYXJrZXIoJ2RhdGFmZWVkZXIubW9udGguanVuZScpXG5tYXJrZXIoJ2RhdGFmZWVkZXIubW9udGguanVseScpXG5tYXJrZXIoJ2RhdGFmZWVkZXIubW9udGguYXVndXN0Jylcbm1hcmtlcignZGF0YWZlZWRlci5tb250aC5zZXB0ZW1iZXInKVxubWFya2VyKCdkYXRhZmVlZGVyLm1vbnRoLm9jdG9iZXInKVxubWFya2VyKCdkYXRhZmVlZGVyLm1vbnRoLm5vdmVtYmVyJylcbm1hcmtlcignZGF0YWZlZWRlci5tb250aC5kZWNlbWJlcicpXG5cbmV4cG9ydCBjb25zdCBNWV9GT1JNQVRTID0ge1xuICBwYXJzZToge1xuICAgIGRhdGVJbnB1dDogJ0xMJyxcbiAgfSxcbiAgZGlzcGxheToge1xuICAgIGRhdGVJbnB1dDogJ0xMJyxcbiAgICBtb250aFllYXJMYWJlbDogJ01NTSBZWVlZJyxcbiAgICBkYXRlQTExeUxhYmVsOiAnTEwnLFxuICAgIG1vbnRoWWVhckExMXlMYWJlbDogJ01NTU0gWVlZWScsXG4gIH0sXG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2duLXVpLXdpemFyZC1maWVsZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi93aXphcmQtZmllbGQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi93aXphcmQtZmllbGQuY29tcG9uZW50LmNzcyddLFxuICBwcm92aWRlcnM6IFtcbiAgICB7IHByb3ZpZGU6IE1BVF9EQVRFX0xPQ0FMRSwgdXNlVmFsdWU6IGdldExhbmdGcm9tQnJvd3NlcigpIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogRGF0ZUFkYXB0ZXIsXG4gICAgICB1c2VDbGFzczogTW9tZW50RGF0ZUFkYXB0ZXIsXG4gICAgICBkZXBzOiBbTUFUX0RBVEVfTE9DQUxFLCBNQVRfTU9NRU5UX0RBVEVfQURBUFRFUl9PUFRJT05TXSxcbiAgICB9LFxuICAgIHsgcHJvdmlkZTogTUFUX0RBVEVfRk9STUFUUywgdXNlVmFsdWU6IE1ZX0ZPUk1BVFMgfSxcbiAgXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFdpemFyZEZpZWxkQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgQElucHV0KCkgd2l6YXJkRmllbGRDb25maWc6IFdpemFyZEZpZWxkTW9kZWxcblxuICBAVmlld0NoaWxkKCdzZWFyY2hUZXh0Jykgc2VhcmNoVGV4dDogVGV4dElucHV0Q29tcG9uZW50XG4gIEBWaWV3Q2hpbGQoJ3RleHRBcmVhJykgdGV4dEFyZWE6IFRleHRBcmVhQ29tcG9uZW50XG4gIEBWaWV3Q2hpbGQoJ2Ryb3Bkb3duJykgZHJvcGRvd246IERyb3Bkb3duU2VsZWN0b3JDb21wb25lbnRcblxuICBzdWJzID0gbmV3IFN1YnNjcmlwdGlvbigpXG5cbiAgZ2V0IHdpemFyZEZpZWxkVHlwZSgpOiB0eXBlb2YgV2l6YXJkRmllbGRUeXBlIHtcbiAgICByZXR1cm4gV2l6YXJkRmllbGRUeXBlXG4gIH1cblxuICBnZXQgZHJvcGRvd25DaG9pY2VzKCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMud2l6YXJkRmllbGRDb25maWcub3B0aW9uc1xuICB9XG5cbiAgZ2V0IHdpemFyZEZpZWxkRGF0YSgpIHtcbiAgICBjb25zdCBkYXRhID0gdGhpcy53aXphcmRTZXJ2aWNlLmdldFdpemFyZEZpZWxkRGF0YShcbiAgICAgIHRoaXMud2l6YXJkRmllbGRDb25maWcuaWRcbiAgICApXG4gICAgc3dpdGNoICh0aGlzLndpemFyZEZpZWxkQ29uZmlnLnR5cGUpIHtcbiAgICAgIGNhc2UgV2l6YXJkRmllbGRUeXBlLlRFWFQ6IHtcbiAgICAgICAgcmV0dXJuIGRhdGEgfHwgJydcbiAgICAgIH1cbiAgICAgIGNhc2UgV2l6YXJkRmllbGRUeXBlLlRFWFRfQVJFQToge1xuICAgICAgICByZXR1cm4gZGF0YSB8fCAnJ1xuICAgICAgfVxuICAgICAgY2FzZSBXaXphcmRGaWVsZFR5cGUuREFUQV9QSUNLRVI6IHtcbiAgICAgICAgcmV0dXJuIGRhdGEgPyBuZXcgRGF0ZShOdW1iZXIoZGF0YSkpIDogbmV3IERhdGUoKVxuICAgICAgfVxuICAgICAgY2FzZSBXaXphcmRGaWVsZFR5cGUuRFJPUERPV046IHtcbiAgICAgICAgcmV0dXJuIGRhdGEgPyBKU09OLnBhcnNlKGRhdGEpIDogdGhpcy5kcm9wZG93bkNob2ljZXNbMF0/LnZhbHVlXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSB3aXphcmRTZXJ2aWNlOiBXaXphcmRTZXJ2aWNlLFxuICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZlxuICApIHt9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMuaW5pdGlhbGl6ZUxpc3RlbmVycygpXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpXG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLnN1YnMudW5zdWJzY3JpYmUoKVxuICB9XG5cbiAgcHJpdmF0ZSBpbml0aWFsaXplTGlzdGVuZXJzKCkge1xuICAgIHN3aXRjaCAodGhpcy53aXphcmRGaWVsZENvbmZpZy50eXBlKSB7XG4gICAgICBjYXNlIFdpemFyZEZpZWxkVHlwZS5URVhUOiB7XG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZVRleHRJbnB1dExpc3RlbmVyKClcbiAgICAgICAgYnJlYWtcbiAgICAgIH1cbiAgICAgIGNhc2UgV2l6YXJkRmllbGRUeXBlLlRFWFRfQVJFQToge1xuICAgICAgICB0aGlzLmluaXRpYWxpemVUZXh0QXJlYUxpc3RlbmVyKClcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG4gICAgICBjYXNlIFdpemFyZEZpZWxkVHlwZS5EQVRBX1BJQ0tFUjoge1xuICAgICAgICB0aGlzLmluaXRpYWxpemVEYXRlSW5wdXQoKVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cbiAgICAgIGNhc2UgV2l6YXJkRmllbGRUeXBlLkRST1BET1dOOiB7XG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZURyb3Bkb3duTGlzdGVuZXIoKVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGluaXRpYWxpemVUZXh0SW5wdXRMaXN0ZW5lcigpIHtcbiAgICB0aGlzLnN1YnMuYWRkKFxuICAgICAgdGhpcy5zZWFyY2hUZXh0LnZhbHVlQ2hhbmdlLnN1YnNjcmliZSgodmFsdWUpID0+IHtcbiAgICAgICAgdGhpcy53aXphcmRTZXJ2aWNlLm9uV2l6YXJkV2l6YXJkRmllbGREYXRhQ2hhbmdlZChcbiAgICAgICAgICB0aGlzLndpemFyZEZpZWxkQ29uZmlnLmlkLFxuICAgICAgICAgIHZhbHVlXG4gICAgICAgIClcbiAgICAgIH0pXG4gICAgKVxuICB9XG5cbiAgcHJpdmF0ZSBpbml0aWFsaXplVGV4dEFyZWFMaXN0ZW5lcigpIHtcbiAgICB0aGlzLnN1YnMuYWRkKFxuICAgICAgdGhpcy50ZXh0QXJlYS52YWx1ZUNoYW5nZS5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG4gICAgICAgIHRoaXMud2l6YXJkU2VydmljZS5vbldpemFyZFdpemFyZEZpZWxkRGF0YUNoYW5nZWQoXG4gICAgICAgICAgdGhpcy53aXphcmRGaWVsZENvbmZpZy5pZCxcbiAgICAgICAgICB2YWx1ZVxuICAgICAgICApXG4gICAgICB9KVxuICAgIClcbiAgfVxuXG4gIGluaXRpYWxpemVEYXRlSW5wdXQoKSB7XG4gICAgY29uc3QgdGltZSA9IHRoaXMud2l6YXJkU2VydmljZS5nZXRXaXphcmRGaWVsZERhdGEoXG4gICAgICB0aGlzLndpemFyZEZpZWxkQ29uZmlnLmlkXG4gICAgKVxuICAgIGlmICghdGltZSkge1xuICAgICAgdGhpcy53aXphcmRTZXJ2aWNlLm9uV2l6YXJkV2l6YXJkRmllbGREYXRhQ2hhbmdlZChcbiAgICAgICAgdGhpcy53aXphcmRGaWVsZENvbmZpZy5pZCxcbiAgICAgICAgbmV3IERhdGUoKS52YWx1ZU9mKClcbiAgICAgIClcbiAgICB9XG4gIH1cblxuICBvbkRhdGVDaGFuZ2UoZXZlbnQ6IE1hdERhdGVwaWNrZXJJbnB1dEV2ZW50PERhdGU+KSB7XG4gICAgdGhpcy53aXphcmRTZXJ2aWNlLm9uV2l6YXJkV2l6YXJkRmllbGREYXRhQ2hhbmdlZChcbiAgICAgIHRoaXMud2l6YXJkRmllbGRDb25maWcuaWQsXG4gICAgICBldmVudC52YWx1ZS52YWx1ZU9mKClcbiAgICApXG4gIH1cblxuICBwcml2YXRlIGluaXRpYWxpemVEcm9wZG93bkxpc3RlbmVyKCkge1xuICAgIGlmIChcbiAgICAgIHRoaXMud2l6YXJkU2VydmljZS5nZXRXaXphcmRGaWVsZERhdGEodGhpcy53aXphcmRGaWVsZENvbmZpZy5pZCkgPT09XG4gICAgICAgIHVuZGVmaW5lZCAmJlxuICAgICAgISF0aGlzLmRyb3Bkb3duLnNlbGVjdGVkXG4gICAgKSB7XG4gICAgICB0aGlzLndpemFyZFNlcnZpY2Uuc2V0V2l6YXJkRmllbGREYXRhKFxuICAgICAgICB0aGlzLndpemFyZEZpZWxkQ29uZmlnLmlkLFxuICAgICAgICB0aGlzLmRyb3Bkb3duLnNlbGVjdGVkXG4gICAgICApXG4gICAgfVxuXG4gICAgdGhpcy5zdWJzLmFkZChcbiAgICAgIHRoaXMuZHJvcGRvd24uc2VsZWN0VmFsdWUuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xuICAgICAgICB0aGlzLndpemFyZFNlcnZpY2Uub25XaXphcmRXaXphcmRGaWVsZERhdGFDaGFuZ2VkKFxuICAgICAgICAgIHRoaXMud2l6YXJkRmllbGRDb25maWcuaWQsXG4gICAgICAgICAgdmFsdWVcbiAgICAgICAgKVxuICAgICAgfSlcbiAgICApXG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtMVwiPlxuICA8c3BhbiBbY2xhc3NdPVwid2l6YXJkRmllbGRDb25maWcuaWNvbiArICcgcHItMTAnXCI+PC9zcGFuPlxuICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBmbGV4LTFcIj5cbiAgICA8ZGl2IHRyYW5zbGF0ZSBjbGFzcz1cInRleHQteGwgZm9udC1ib2xkIHBiLTFcIj5cbiAgICAgIHt7IHdpemFyZEZpZWxkQ29uZmlnLmxhYmVsIH19XG4gICAgPC9kaXY+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJ3LTEvMiBoLTEyXCJcbiAgICAgICpuZ0lmPVwid2l6YXJkRmllbGRUeXBlLlRFWFQgPT09IHdpemFyZEZpZWxkQ29uZmlnLnR5cGVcIlxuICAgID5cbiAgICAgIDxnbi11aS10ZXh0LWlucHV0XG4gICAgICAgICNzZWFyY2hUZXh0XG4gICAgICAgIFtpZF09XCJ3aXphcmRGaWVsZENvbmZpZy5pZFwiXG4gICAgICAgIFt2YWx1ZV09XCJ3aXphcmRGaWVsZERhdGFcIlxuICAgICAgICBbcmVxdWlyZWRdPVwid2l6YXJkRmllbGRDb25maWcucmVxdWlyZWQgfHwgZmFsc2VcIlxuICAgICAgICBwbGFjZWhvbGRlcj1cIlwiXG4gICAgICA+PC9nbi11aS10ZXh0LWlucHV0PlxuICAgIDwvZGl2PlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwiaC0zMiB3LTExLzEyXCJcbiAgICAgICpuZ0lmPVwid2l6YXJkRmllbGRUeXBlLlRFWFRfQVJFQSA9PT0gd2l6YXJkRmllbGRDb25maWcudHlwZVwiXG4gICAgPlxuICAgICAgPGduLXVpLXRleHQtYXJlYVxuICAgICAgICAjdGV4dEFyZWFcbiAgICAgICAgW2lkXT1cIndpemFyZEZpZWxkQ29uZmlnLmlkXCJcbiAgICAgICAgW3ZhbHVlXT1cIndpemFyZEZpZWxkRGF0YVwiXG4gICAgICAgIFtyZXF1aXJlZF09XCJ3aXphcmRGaWVsZENvbmZpZy5yZXF1aXJlZCB8fCBmYWxzZVwiXG4gICAgICAgIHBsYWNlaG9sZGVyPVwiXCJcbiAgICAgID48L2duLXVpLXRleHQtYXJlYT5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cInctMS8yIGgtMTJcIlxuICAgICAgKm5nSWY9XCJ3aXphcmRGaWVsZFR5cGUuREFUQV9QSUNLRVIgPT09IHdpemFyZEZpZWxkQ29uZmlnLnR5cGVcIlxuICAgID5cbiAgICAgIDxpbnB1dFxuICAgICAgICBbaWRdPVwid2l6YXJkRmllbGRDb25maWcuaWRcIlxuICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgIChjbGljayk9XCJkYXRlcGlja2VyLm9wZW4oKVwiXG4gICAgICAgIGNsYXNzPVwicm91bmRlZCBwLTIgdGV4dC1ncmF5LTcwMCB3LWZ1bGwgbGVhZGluZy10aWdodCBmb2N1czpvdXRsaW5lLW5vbmUgZm9jdXM6Ym9yZGVyLXByaW1hcnlcIlxuICAgICAgICBbdmFsdWVdPVwid2l6YXJkRmllbGREYXRhXCJcbiAgICAgICAgW21hdERhdGVwaWNrZXJdPVwiZGF0ZXBpY2tlclwiXG4gICAgICAgIChkYXRlQ2hhbmdlKT1cIm9uRGF0ZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgIC8+XG4gICAgICA8bWF0LWRhdGVwaWNrZXIgI2RhdGVwaWNrZXI+PC9tYXQtZGF0ZXBpY2tlcj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cInctMS8yIGgtMTJcIlxuICAgICAgKm5nSWY9XCJ3aXphcmRGaWVsZFR5cGUuRFJPUERPV04gPT09IHdpemFyZEZpZWxkQ29uZmlnLnR5cGVcIlxuICAgID5cbiAgICAgIDxnbi11aS1kcm9wZG93bi1zZWxlY3RvclxuICAgICAgICAjZHJvcGRvd25cbiAgICAgICAgW2lkXT1cIndpemFyZEZpZWxkQ29uZmlnLmlkXCJcbiAgICAgICAgW3RpdGxlXT1cIicnXCJcbiAgICAgICAgW2V4dHJhQnRuQ2xhc3NdPVwiJ3NlY29uZGFyeSBtaW4tdy1mdWxsJ1wiXG4gICAgICAgIFtzaG93VGl0bGVdPVwiZmFsc2VcIlxuICAgICAgICBbY2hvaWNlc109XCJkcm9wZG93bkNob2ljZXNcIlxuICAgICAgICBbc2VsZWN0ZWRdPVwid2l6YXJkRmllbGREYXRhXCJcbiAgICAgICAgYXJpYU5hbWU9XCJzZWFyY2gtc29ydC1ieVwiXG4gICAgICA+PC9nbi11aS1kcm9wZG93bi1zZWxlY3Rvcj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -230,8 +230,8 @@ export const DEFAULT_CONFIGURATION = {
230
230
  labelKey: marker('editor.record.form.page.description'),
231
231
  sections: [
232
232
  TITLE_SECTION,
233
- ABOUT_SECTION,
234
233
  CLASSIFICATION_SECTION,
234
+ ABOUT_SECTION,
235
235
  GEOGRAPHICAL_COVERAGE_SECTION,
236
236
  ],
237
237
  },
@@ -293,4 +293,4 @@ export const SPATIAL_SCOPES = [
293
293
  type: 'theme',
294
294
  },
295
295
  ];
296
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGRzLmNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZmVhdHVyZS9lZGl0b3Ivc3JjL2xpYi9maWVsZHMuY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQTtBQVFoRTs7Ozs7R0FLRztBQUVIOzs7R0FHRztBQUVILE1BQU0sQ0FBQyxNQUFNLDhCQUE4QixHQUFnQjtJQUN6RCxLQUFLLEVBQUUsa0JBQWtCO0lBQ3pCLGVBQWUsRUFBRTtRQUNmLFFBQVEsRUFBRSxNQUFNLENBQUMsMkNBQTJDLENBQUM7S0FDOUQ7SUFDRCxNQUFNLEVBQUUsSUFBSTtDQUNiLENBQUE7QUFFRCxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBZ0I7SUFDaEQsYUFBYSxFQUFFLGtDQUFrQztJQUNqRCxlQUFlLEVBQUU7UUFDZixRQUFRLEVBQUUsTUFBTSxDQUFDLCtDQUErQyxDQUFDO0tBQ2xFO0NBQ0YsQ0FBQTtBQUVELE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFnQjtJQUNsRCxLQUFLLEVBQUUsa0JBQWtCO0lBQ3pCLGVBQWUsRUFBRTtRQUNmLFFBQVEsRUFBRSxNQUFNLENBQUMsMkNBQTJDLENBQUM7S0FDOUQ7Q0FDRixDQUFBO0FBQ0QsTUFBTSxDQUFDLE1BQU0sMEJBQTBCLEdBQWdCO0lBQ3JELEtBQUssRUFBRSxxQkFBcUI7SUFDNUIsZUFBZSxFQUFFO1FBQ2YsUUFBUSxFQUFFLE1BQU0sQ0FBQyw4Q0FBOEMsQ0FBQztLQUNqRTtDQUNGLENBQUE7QUFDRCxNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBZ0I7SUFDbEQsS0FBSyxFQUFFLGtCQUFrQjtJQUN6QixlQUFlLEVBQUU7UUFDZixRQUFRLEVBQUUsTUFBTSxDQUFDLDJDQUEyQyxDQUFDO0tBQzlEO0NBQ0YsQ0FBQTtBQUVELE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFnQjtJQUMvQyxLQUFLLEVBQUUsVUFBVTtJQUNqQixlQUFlLEVBQUU7UUFDZixRQUFRLEVBQUUsTUFBTSxDQUFDLGtDQUFrQyxDQUFDO0tBQ3JEO0NBQ0YsQ0FBQTtBQUVELE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFnQjtJQUNoRCxLQUFLLEVBQUUsVUFBVTtJQUNqQixlQUFlLEVBQUUsRUFBRTtDQUNwQixDQUFBO0FBQ0QsOERBQThEO0FBQzlELE1BQU0sQ0FBQyxtQ0FBbUMsQ0FBQyxDQUFBO0FBRTNDLE1BQU0sQ0FBQyxNQUFNLDZCQUE2QixHQUFnQjtJQUN4RCxLQUFLLEVBQUUsaUJBQWlCO0lBQ3hCLGVBQWUsRUFBRTtRQUNmLFFBQVEsRUFBRSxNQUFNLENBQUMsMENBQTBDLENBQUM7S0FDN0Q7SUFDRCxjQUFjLEVBQUUsQ0FBQztDQUNsQixDQUFBO0FBRUQsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQWdCO0lBQ3BELEtBQUssRUFBRSxvQkFBb0I7SUFDM0IsZUFBZSxFQUFFO1FBQ2YsUUFBUSxFQUFFLE1BQU0sQ0FBQyw2Q0FBNkMsQ0FBQztLQUNoRTtDQUNGLENBQUE7QUFFRCxNQUFNLENBQUMsTUFBTSw2QkFBNkIsR0FBZ0I7SUFDeEQsS0FBSyxFQUFFLGlCQUFpQjtJQUN4QixlQUFlLEVBQUU7UUFDZixRQUFRLEVBQUUsTUFBTSxDQUFDLDBDQUEwQyxDQUFDO0tBQzdEO0lBQ0QsY0FBYyxFQUFFLENBQUM7Q0FDbEIsQ0FBQTtBQUVELE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFnQjtJQUMvQyxLQUFLLEVBQUUsZUFBZTtJQUN0QixlQUFlLEVBQUU7UUFDZixRQUFRLEVBQUUsTUFBTSxDQUFDLHdDQUF3QyxDQUFDO0tBQzNEO0lBQ0QsYUFBYSxFQUFFLGNBQWM7SUFDN0IsY0FBYyxFQUFFLENBQUM7SUFDakIsTUFBTSxFQUFFLElBQUk7Q0FDYixDQUFBO0FBRUQsTUFBTSxDQUFDLE1BQU0sNkJBQTZCLEdBQWdCO0lBQ3hELEtBQUssRUFBRSxpQkFBaUI7SUFDeEIsZUFBZSxFQUFFLEVBQUU7Q0FDcEIsQ0FBQTtBQUNELDhEQUE4RDtBQUM5RCxNQUFNLENBQUMsMENBQTBDLENBQUMsQ0FBQTtBQUVsRCxNQUFNLENBQUMsTUFBTSw2QkFBNkIsR0FBZ0I7SUFDeEQsS0FBSyxFQUFFLGlCQUFpQjtJQUN4QixlQUFlLEVBQUU7UUFDZixRQUFRLEVBQUUsTUFBTSxDQUFDLDBDQUEwQyxDQUFDO0tBQzdEO0NBQ0YsQ0FBQTtBQUVELE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFnQjtJQUM3QyxLQUFLLEVBQUUsT0FBTztJQUNkLGVBQWUsRUFBRTtRQUNmLFFBQVEsRUFBRSxNQUFNLENBQUMsZ0NBQWdDLENBQUM7S0FDbkQ7Q0FDRixDQUFBO0FBRUQsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQWdCO0lBQ2hELEtBQUssRUFBRSxVQUFVO0lBQ2pCLGVBQWUsRUFBRTtRQUNmLFFBQVEsRUFBRSxNQUFNLENBQUMsbUNBQW1DLENBQUM7S0FDdEQ7Q0FDRixDQUFBO0FBRUQsTUFBTSxDQUFDLE1BQU0sMkJBQTJCLEdBQWdCO0lBQ3RELEtBQUssRUFBRSxxQkFBcUI7SUFDNUIsZUFBZSxFQUFFO1FBQ2YsUUFBUSxFQUFFLEVBQUU7S0FDYjtDQUNGLENBQUE7QUFFRCxNQUFNLENBQUMsTUFBTSxRQUFRLEdBQWdCO0lBQ25DLEtBQUssRUFBRSxVQUFVO0lBQ2pCLGVBQWUsRUFBRTtRQUNmLFFBQVEsRUFBRSxFQUFFO0tBQ2I7Q0FDRixDQUFBO0FBRUQsTUFBTSxDQUFDLE1BQU0sK0JBQStCLEdBQWdCO0lBQzFELEtBQUssRUFBRSxXQUFXO0lBQ2xCLGVBQWUsRUFBRTtRQUNmLFFBQVEsRUFBRSxNQUFNLENBQUMsb0NBQW9DLENBQUM7S0FDdkQ7Q0FDRixDQUFBO0FBRUQsTUFBTSxDQUFDLE1BQU0sMkJBQTJCLEdBQWdCO0lBQ3RELGFBQWEsRUFBRSwyQkFBMkI7SUFDMUMsZUFBZSxFQUFFLEVBQUU7SUFDbkIsTUFBTSxFQUFFLElBQUk7Q0FDYixDQUFBO0FBRUQsTUFBTSxDQUFDLE1BQU0sNEJBQTRCLEdBQWdCO0lBQ3ZELEtBQUssRUFBRSxnQkFBZ0I7SUFDdkIsZUFBZSxFQUFFLEVBQUU7Q0FDcEIsQ0FBQTtBQUNELDhEQUE4RDtBQUM5RCxNQUFNLENBQUMseUNBQXlDLENBQUMsQ0FBQTtBQUVqRCxNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBZ0I7SUFDbEQsS0FBSyxFQUFFLGlCQUFpQjtJQUN4QixjQUFjLEVBQUUsMEJBQTBCO0lBQzFDLGVBQWUsRUFBRSxFQUFFO0NBQ3BCLENBQUE7QUFDRCw4REFBOEQ7QUFDOUQsTUFBTSxDQUFDLDBDQUEwQyxDQUFDLENBQUE7QUFFbEQsTUFBTSxDQUFDLE1BQU0sNEJBQTRCLEdBQWdCO0lBQ3ZELEtBQUssRUFBRSxpQkFBaUI7SUFDeEIsY0FBYyxFQUFFLHlCQUF5QjtJQUN6QyxlQUFlLEVBQUUsRUFBRTtDQUNwQixDQUFBO0FBQ0QsOERBQThEO0FBQzlELE1BQU0sQ0FBQyw4Q0FBOEMsQ0FBQyxDQUFBO0FBRXREOzs7R0FHRztBQUVILE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBa0I7SUFDMUMsTUFBTSxFQUFFLEtBQUs7SUFDYixNQUFNLEVBQUU7UUFDTixrQkFBa0I7UUFDbEIscUJBQXFCO1FBQ3JCLCtCQUErQjtLQUNoQztDQUNGLENBQUE7QUFFRCxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQWtCO0lBQzFDLFFBQVEsRUFBRSxNQUFNLENBQUMsd0NBQXdDLENBQUM7SUFDMUQsY0FBYyxFQUFFLE1BQU0sQ0FBQyw4Q0FBOEMsQ0FBQztJQUN0RSxNQUFNLEVBQUUsS0FBSztJQUNiLE1BQU0sRUFBRTtRQUNOLDhCQUE4QjtRQUM5Qix5QkFBeUI7UUFDekIsNkJBQTZCO1FBQzdCLDZCQUE2QjtRQUM3QixvQkFBb0I7UUFDcEIsNkJBQTZCO1FBQzdCLDZCQUE2QjtLQUM5QjtDQUNGLENBQUE7QUFFRCxNQUFNLENBQUMsTUFBTSw2QkFBNkIsR0FBa0I7SUFDMUQsUUFBUSxFQUFFLE1BQU0sQ0FBQyx1REFBdUQsQ0FBQztJQUN6RSxNQUFNLEVBQUUsS0FBSztJQUNiLE1BQU0sRUFBRSxDQUFDLDJCQUEyQixFQUFFLDRCQUE0QixDQUFDO0NBQ3BFLENBQUE7QUFFRCxNQUFNLENBQUMsTUFBTSw0QkFBNEIsR0FBa0I7SUFDekQsUUFBUSxFQUFFLE1BQU0sQ0FBQyxzREFBc0QsQ0FBQztJQUN4RSxjQUFjLEVBQUUsTUFBTSxDQUNwQiw0REFBNEQsQ0FDN0Q7SUFDRCxNQUFNLEVBQUUsS0FBSztJQUNiLE1BQU0sRUFBRSxDQUFDLHVCQUF1QixDQUFDO0NBQ2xDLENBQUE7QUFFRCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQWtCO0lBQzVDLFFBQVEsRUFBRSxNQUFNLENBQUMsMENBQTBDLENBQUM7SUFDNUQsY0FBYyxFQUFFLE1BQU0sQ0FBQyxnREFBZ0QsQ0FBQztJQUN4RSxNQUFNLEVBQUUsS0FBSztJQUNiLE1BQU0sRUFBRSxDQUFDLDRCQUE0QixDQUFDO0NBQ3ZDLENBQUE7QUFFRCxNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBa0I7SUFDbkQsUUFBUSxFQUFFLE1BQU0sQ0FBQyxpREFBaUQsQ0FBQztJQUNuRSxjQUFjLEVBQUUsTUFBTSxDQUNwQix1REFBdUQsQ0FDeEQ7SUFDRCxNQUFNLEVBQUUsS0FBSztJQUNiLE1BQU0sRUFBRSxDQUFDLHFCQUFxQixDQUFDO0NBQ2hDLENBQUE7QUFFRCxNQUFNLENBQUMsTUFBTSxpQ0FBaUMsR0FBa0I7SUFDOUQsUUFBUSxFQUFFLE1BQU0sQ0FBQyx5REFBeUQsQ0FBQztJQUMzRSxNQUFNLEVBQUUsS0FBSztJQUNiLE1BQU0sRUFBRTtRQUNOLG9CQUFvQjtRQUNwQixxQkFBcUI7UUFDckIsdUJBQXVCO1FBQ3ZCLDBCQUEwQjtRQUMxQix1QkFBdUI7S0FDeEI7Q0FDRixDQUFBO0FBRUQsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQWtCO0lBQ2xELFFBQVEsRUFBRSxNQUFNLENBQUMsK0NBQStDLENBQUM7SUFDakUsY0FBYyxFQUFFLE1BQU0sQ0FBQyxxREFBcUQsQ0FBQztJQUM3RSxNQUFNLEVBQUUsS0FBSztJQUNiLE1BQU0sRUFBRSxDQUFDLDJCQUEyQixDQUFDO0NBQ3RDLENBQUE7QUFFRCxNQUFNLENBQUMsTUFBTSxpQ0FBaUMsR0FBa0I7SUFDOUQsUUFBUSxFQUFFLE1BQU0sQ0FBQyx5REFBeUQsQ0FBQztJQUMzRSxjQUFjLEVBQUUsTUFBTSxDQUNwQiwrREFBK0QsQ0FDaEU7SUFDRCxNQUFNLEVBQUUsS0FBSztJQUNiLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQztDQUNuQixDQUFBO0FBRUQ7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQWlCO0lBQ2pELEtBQUssRUFBRTtRQUNMO1lBQ0UsUUFBUSxFQUFFLE1BQU0sQ0FBQyxxQ0FBcUMsQ0FBQztZQUN2RCxRQUFRLEVBQUU7Z0JBQ1IsYUFBYTtnQkFDYixhQUFhO2dCQUNiLHNCQUFzQjtnQkFDdEIsNkJBQTZCO2FBQzlCO1NBQ0Y7UUFDRDtZQUNFLFFBQVEsRUFBRSxNQUFNLENBQUMsbUNBQW1DLENBQUM7WUFDckQsUUFBUSxFQUFFLENBQUMsNEJBQTRCLEVBQUUsZUFBZSxDQUFDO1NBQzFEO1FBQ0Q7WUFDRSxRQUFRLEVBQUUsTUFBTSxDQUFDLDBDQUEwQyxDQUFDO1lBQzVELFFBQVEsRUFBRTtnQkFDUixpQ0FBaUM7Z0JBQ2pDLHFCQUFxQjtnQkFDckIsaUNBQWlDO2FBQ2xDO1NBQ0Y7S0FDRjtDQUNGLENBQUE7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBYTtJQUMxQyxPQUFPO0lBQ1AsVUFBVTtJQUNWLFNBQVM7SUFDVCxRQUFRO0lBQ1IsV0FBVztJQUNYLE1BQU07SUFDTixRQUFRO0lBQ1IsTUFBTTtJQUNOLFNBQVM7Q0FDVixDQUFBO0FBRUQsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsUUFBUSxDQUFBO0FBRXpDLE1BQU0sQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFBO0FBQzFDLE1BQU0sQ0FBQyxxQ0FBcUMsQ0FBQyxDQUFBO0FBQzdDLE1BQU0sQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFBO0FBQzVDLE1BQU0sQ0FBQyxtQ0FBbUMsQ0FBQyxDQUFBO0FBQzNDLE1BQU0sQ0FBQyxzQ0FBc0MsQ0FBQyxDQUFBO0FBQzlDLE1BQU0sQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFBO0FBQ3pDLE1BQU0sQ0FBQyxtQ0FBbUMsQ0FBQyxDQUFBO0FBQzNDLE1BQU0sQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFBO0FBQ3pDLE1BQU0sQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFBO0FBRTVDLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLEVBQUUsQ0FBQTtBQUNwQzs7O0dBR0c7QUFFSCxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQWM7SUFDdkM7UUFDRSxHQUFHLEVBQUUscUVBQXFFO1FBQzFFLEtBQUssRUFBRSxVQUFVO1FBQ2pCLFdBQVcsRUFBRSxFQUFFO1FBQ2YsSUFBSSxFQUFFLE9BQU87S0FDZDtJQUNEO1FBQ0UsR0FBRyxFQUFFLHFFQUFxRTtRQUMxRSxLQUFLLEVBQUUsVUFBVTtRQUNqQixXQUFXLEVBQUUsRUFBRTtRQUNmLElBQUksRUFBRSxPQUFPO0tBQ2Q7Q0FDRixDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbWFya2VyIH0gZnJvbSAnQGJpZXNiamVyZy9uZ3gtdHJhbnNsYXRlLWV4dHJhY3QtbWFya2VyJ1xuaW1wb3J0IHtcbiAgRWRpdG9yQ29uZmlnLFxuICBFZGl0b3JGaWVsZCxcbiAgRWRpdG9yU2VjdGlvbixcbn0gZnJvbSAnLi9tb2RlbHMvZWRpdG9yLWNvbmZpZy5tb2RlbCdcbmltcG9ydCB7IEtleXdvcmQgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9tb2RlbC9yZWNvcmQnXG5cbi8qKlxuICogVGhpcyBmaWxlIGNvbnRhaW5zIHRoZSBjb25maWd1cmF0aW9uIG9mIHRoZSBmaWVsZHMgdGhhdCB3aWxsIGJlIGRpc3BsYXllZCBpbiB0aGUgZWRpdG9yLlxuICogVG8gYWRkIGEgbmV3IGZpZWxkLCB5b3UgbmVlZCB0byBjcmVhdGUgYSBuZXcgRWRpdG9yRmllbGQgb2JqZWN0IGluIHRoZSBmaWVsZHMgcGFydCBvZiB0aGlzIGZpbGUuXG4gKiBUaGVuIGFkZCBpdCB0byB0aGUgY29ycmVzcG9uZGluZyBzZWN0aW9uIGluIHRoZSBzZWN0aW9ucyBwYXJ0IG9mIHRoaXMgZmlsZS5cbiAqIEZpbmFsbHksIGFkZCB0aGUgc2VjdGlvbiB0byB0aGUgY29ycmVzcG9uZGluZyBwYWdlIGluIHRoZSBwYWdlcyBwYXJ0IG9mIHRoaXMgZmlsZS5cbiAqL1xuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKioqKioqKioqKioqKioqICAgICAgICAgICBGSUVMRFMgICAgICAgICAgICoqKioqKioqKioqKioqKioqXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKi9cblxuZXhwb3J0IGNvbnN0IFJFQ09SRF9VTklRVUVfSURFTlRJRklFUl9GSUVMRDogRWRpdG9yRmllbGQgPSB7XG4gIG1vZGVsOiAndW5pcXVlSWRlbnRpZmllcicsXG4gIGZvcm1GaWVsZENvbmZpZzoge1xuICAgIGxhYmVsS2V5OiBtYXJrZXIoJ2VkaXRvci5yZWNvcmQuZm9ybS5maWVsZC51bmlxdWVJZGVudGlmaWVyJyksXG4gIH0sXG4gIGhpZGRlbjogdHJ1ZSxcbn1cblxuZXhwb3J0IGNvbnN0IENPTlNUUkFJTlRTX1NIT1JUQ1VUUzogRWRpdG9yRmllbGQgPSB7XG4gIGNvbXBvbmVudE5hbWU6ICdmb3JtLWZpZWxkLWNvbnN0cmFpbnRzLXNob3J0Y3V0cycsXG4gIGZvcm1GaWVsZENvbmZpZzoge1xuICAgIGxhYmVsS2V5OiBtYXJrZXIoJ2VkaXRvci5yZWNvcmQuZm9ybS5maWVsZC5jb25zdHJhaW50c1Nob3J0Y3V0cycpLFxuICB9LFxufVxuXG5leHBvcnQgY29uc3QgTEVHQUxfQ09OU1RSQUlOVFNfRklFTEQ6IEVkaXRvckZpZWxkID0ge1xuICBtb2RlbDogJ2xlZ2FsQ29uc3RyYWludHMnLFxuICBmb3JtRmllbGRDb25maWc6IHtcbiAgICBsYWJlbEtleTogbWFya2VyKCdlZGl0b3IucmVjb3JkLmZvcm0uZmllbGQubGVnYWxDb25zdHJhaW50cycpLFxuICB9LFxufVxuZXhwb3J0IGNvbnN0IFNFQ1VSSVRZX0NPTlNUUkFJTlRTX0ZJRUxEOiBFZGl0b3JGaWVsZCA9IHtcbiAgbW9kZWw6ICdzZWN1cml0eUNvbnN0cmFpbnRzJyxcbiAgZm9ybUZpZWxkQ29uZmlnOiB7XG4gICAgbGFiZWxLZXk6IG1hcmtlcignZWRpdG9yLnJlY29yZC5mb3JtLmZpZWxkLnNlY3VyaXR5Q29uc3RyYWludHMnKSxcbiAgfSxcbn1cbmV4cG9ydCBjb25zdCBPVEhFUl9DT05TVFJBSU5UU19GSUVMRDogRWRpdG9yRmllbGQgPSB7XG4gIG1vZGVsOiAnb3RoZXJDb25zdHJhaW50cycsXG4gIGZvcm1GaWVsZENvbmZpZzoge1xuICAgIGxhYmVsS2V5OiBtYXJrZXIoJ2VkaXRvci5yZWNvcmQuZm9ybS5maWVsZC5vdGhlckNvbnN0cmFpbnRzJyksXG4gIH0sXG59XG5cbmV4cG9ydCBjb25zdCBSRUNPUkRfTElDRU5TRV9GSUVMRDogRWRpdG9yRmllbGQgPSB7XG4gIG1vZGVsOiAnbGljZW5zZXMnLFxuICBmb3JtRmllbGRDb25maWc6IHtcbiAgICBsYWJlbEtleTogbWFya2VyKCdlZGl0b3IucmVjb3JkLmZvcm0uZmllbGQubGljZW5zZScpLFxuICB9LFxufVxuXG5leHBvcnQgY29uc3QgUkVDT1JEX0tFWVdPUkRTX0ZJRUxEOiBFZGl0b3JGaWVsZCA9IHtcbiAgbW9kZWw6ICdrZXl3b3JkcycsXG4gIGZvcm1GaWVsZENvbmZpZzoge30sXG59XG4vLyBrZWVwaW5nIHRyYWNrIG9mIHRoZSBsYWJlbCB0byBub3QgbG9zZSBleGlzdGluZyB0cmFuc2xhdGlvblxubWFya2VyKCdlZGl0b3IucmVjb3JkLmZvcm0uZmllbGQua2V5d29yZHMnKVxuXG5leHBvcnQgY29uc3QgUkVDT1JEX1JFU09VUkNFX0NSRUFURURfRklFTEQ6IEVkaXRvckZpZWxkID0ge1xuICBtb2RlbDogJ3Jlc291cmNlQ3JlYXRlZCcsXG4gIGZvcm1GaWVsZENvbmZpZzoge1xuICAgIGxhYmVsS2V5OiBtYXJrZXIoJ2VkaXRvci5yZWNvcmQuZm9ybS5maWVsZC5yZXNvdXJjZUNyZWF0ZWQnKSxcbiAgfSxcbiAgZ3JpZENvbHVtblNwYW46IDEsXG59XG5cbmV4cG9ydCBjb25zdCBSRVNPVVJDRV9JREVOVElGSUVSX0ZJRUxEOiBFZGl0b3JGaWVsZCA9IHtcbiAgbW9kZWw6ICdyZXNvdXJjZUlkZW50aWZpZXInLFxuICBmb3JtRmllbGRDb25maWc6IHtcbiAgICBsYWJlbEtleTogbWFya2VyKCdlZGl0b3IucmVjb3JkLmZvcm0uZmllbGQucmVzb3VyY2VJZGVudGlmaWVyJyksXG4gIH0sXG59XG5cbmV4cG9ydCBjb25zdCBSRUNPUkRfUkVTT1VSQ0VfVVBEQVRFRF9GSUVMRDogRWRpdG9yRmllbGQgPSB7XG4gIG1vZGVsOiAncmVzb3VyY2VVcGRhdGVkJyxcbiAgZm9ybUZpZWxkQ29uZmlnOiB7XG4gICAgbGFiZWxLZXk6IG1hcmtlcignZWRpdG9yLnJlY29yZC5mb3JtLmZpZWxkLnJlc291cmNlVXBkYXRlZCcpLFxuICB9LFxuICBncmlkQ29sdW1uU3BhbjogMSxcbn1cblxuZXhwb3J0IGNvbnN0IFJFQ09SRF9VUERBVEVEX0ZJRUxEOiBFZGl0b3JGaWVsZCA9IHtcbiAgbW9kZWw6ICdyZWNvcmRVcGRhdGVkJyxcbiAgZm9ybUZpZWxkQ29uZmlnOiB7XG4gICAgbGFiZWxLZXk6IG1hcmtlcignZWRpdG9yLnJlY29yZC5mb3JtLmZpZWxkLnJlY29yZFVwZGF0ZWQnKSxcbiAgfSxcbiAgb25TYXZlUHJvY2VzczogJyR7ZGF0ZU5vdygpfScsXG4gIGdyaWRDb2x1bW5TcGFuOiAxLFxuICBoaWRkZW46IHRydWUsXG59XG5cbmV4cG9ydCBjb25zdCBSRUNPUkRfVVBEQVRFX0ZSRVFVRU5DWV9GSUVMRDogRWRpdG9yRmllbGQgPSB7XG4gIG1vZGVsOiAndXBkYXRlRnJlcXVlbmN5JyxcbiAgZm9ybUZpZWxkQ29uZmlnOiB7fSxcbn1cbi8vIGtlZXBpbmcgdHJhY2sgb2YgdGhlIGxhYmVsIHRvIG5vdCBsb3NlIGV4aXN0aW5nIHRyYW5zbGF0aW9uXG5tYXJrZXIoJ2VkaXRvci5yZWNvcmQuZm9ybS5maWVsZC51cGRhdGVGcmVxdWVuY3knKVxuXG5leHBvcnQgY29uc3QgUkVDT1JEX1RFTVBPUkFMX0VYVEVOVFNfRklFTEQ6IEVkaXRvckZpZWxkID0ge1xuICBtb2RlbDogJ3RlbXBvcmFsRXh0ZW50cycsXG4gIGZvcm1GaWVsZENvbmZpZzoge1xuICAgIGxhYmVsS2V5OiBtYXJrZXIoJ2VkaXRvci5yZWNvcmQuZm9ybS5maWVsZC50ZW1wb3JhbEV4dGVudHMnKSxcbiAgfSxcbn1cblxuZXhwb3J0IGNvbnN0IFJFQ09SRF9USVRMRV9GSUVMRDogRWRpdG9yRmllbGQgPSB7XG4gIG1vZGVsOiAndGl0bGUnLFxuICBmb3JtRmllbGRDb25maWc6IHtcbiAgICBsYWJlbEtleTogbWFya2VyKCdlZGl0b3IucmVjb3JkLmZvcm0uZmllbGQudGl0bGUnKSxcbiAgfSxcbn1cblxuZXhwb3J0IGNvbnN0IFJFQ09SRF9BQlNUUkFDVF9GSUVMRDogRWRpdG9yRmllbGQgPSB7XG4gIG1vZGVsOiAnYWJzdHJhY3QnLFxuICBmb3JtRmllbGRDb25maWc6IHtcbiAgICBsYWJlbEtleTogbWFya2VyKCdlZGl0b3IucmVjb3JkLmZvcm0uZmllbGQuYWJzdHJhY3QnKSxcbiAgfSxcbn1cblxuZXhwb3J0IGNvbnN0IENPTlRBQ1RTX0ZPUl9SRVNPVVJDRV9GSUVMRDogRWRpdG9yRmllbGQgPSB7XG4gIG1vZGVsOiAnY29udGFjdHNGb3JSZXNvdXJjZScsXG4gIGZvcm1GaWVsZENvbmZpZzoge1xuICAgIGxhYmVsS2V5OiAnJyxcbiAgfSxcbn1cblxuZXhwb3J0IGNvbnN0IENPTlRBQ1RTOiBFZGl0b3JGaWVsZCA9IHtcbiAgbW9kZWw6ICdjb250YWN0cycsXG4gIGZvcm1GaWVsZENvbmZpZzoge1xuICAgIGxhYmVsS2V5OiAnJyxcbiAgfSxcbn1cblxuZXhwb3J0IGNvbnN0IFJFQ09SRF9HUkFQSElDQUxfT1ZFUlZJRVdfRklFTEQ6IEVkaXRvckZpZWxkID0ge1xuICBtb2RlbDogJ292ZXJ2aWV3cycsXG4gIGZvcm1GaWVsZENvbmZpZzoge1xuICAgIGxhYmVsS2V5OiBtYXJrZXIoJ2VkaXRvci5yZWNvcmQuZm9ybS5maWVsZC5vdmVydmlld3MnKSxcbiAgfSxcbn1cblxuZXhwb3J0IGNvbnN0IFJFQ09SRF9TUEFUSUFMX1RPR0dMRV9GSUVMRDogRWRpdG9yRmllbGQgPSB7XG4gIGNvbXBvbmVudE5hbWU6ICdmb3JtLWZpZWxkLXNwYXRpYWwtdG9nZ2xlJyxcbiAgZm9ybUZpZWxkQ29uZmlnOiB7fSxcbiAgaGlkZGVuOiB0cnVlLFxufVxuXG5leHBvcnQgY29uc3QgUkVDT1JEX1NQQVRJQUxfRVhURU5UU19GSUVMRDogRWRpdG9yRmllbGQgPSB7XG4gIG1vZGVsOiAnc3BhdGlhbEV4dGVudHMnLFxuICBmb3JtRmllbGRDb25maWc6IHt9LFxufVxuLy8ga2VlcGluZyB0cmFjayBvZiB0aGUgbGFiZWwgdG8gbm90IGxvc2UgZXhpc3RpbmcgdHJhbnNsYXRpb25cbm1hcmtlcignZWRpdG9yLnJlY29yZC5mb3JtLmZpZWxkLnNwYXRpYWxFeHRlbnRzJylcblxuZXhwb3J0IGNvbnN0IFJFQ09SRF9PTkxJTkVfUkVTT1VSQ0VTOiBFZGl0b3JGaWVsZCA9IHtcbiAgbW9kZWw6ICdvbmxpbmVSZXNvdXJjZXMnLFxuICBtb2RlbFNwZWNpZmllcjogJ29ubGluZVJlc291cmNlVHlwZTohbGluaycsXG4gIGZvcm1GaWVsZENvbmZpZzoge30sXG59XG4vLyBrZWVwaW5nIHRyYWNrIG9mIHRoZSBsYWJlbCB0byBub3QgbG9zZSBleGlzdGluZyB0cmFuc2xhdGlvblxubWFya2VyKCdlZGl0b3IucmVjb3JkLmZvcm0uZmllbGQub25saW5lUmVzb3VyY2VzJylcblxuZXhwb3J0IGNvbnN0IFJFQ09SRF9PTkxJTkVfTElOS19SRVNPVVJDRVM6IEVkaXRvckZpZWxkID0ge1xuICBtb2RlbDogJ29ubGluZVJlc291cmNlcycsXG4gIG1vZGVsU3BlY2lmaWVyOiAnb25saW5lUmVzb3VyY2VUeXBlOmxpbmsnLFxuICBmb3JtRmllbGRDb25maWc6IHt9LFxufVxuLy8ga2VlcGluZyB0cmFjayBvZiB0aGUgbGFiZWwgdG8gbm90IGxvc2UgZXhpc3RpbmcgdHJhbnNsYXRpb25cbm1hcmtlcignZWRpdG9yLnJlY29yZC5mb3JtLmZpZWxkLm9ubGluZUxpbmtSZXNvdXJjZXMnKVxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKioqKioqKioqKioqKioqICAgICAgICAgIFNFQ1RJT05TICAgICAgICAgICoqKioqKioqKioqKioqKioqXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKi9cblxuZXhwb3J0IGNvbnN0IFRJVExFX1NFQ1RJT046IEVkaXRvclNlY3Rpb24gPSB7XG4gIGhpZGRlbjogZmFsc2UsXG4gIGZpZWxkczogW1xuICAgIFJFQ09SRF9USVRMRV9GSUVMRCxcbiAgICBSRUNPUkRfQUJTVFJBQ1RfRklFTEQsXG4gICAgUkVDT1JEX0dSQVBISUNBTF9PVkVSVklFV19GSUVMRCxcbiAgXSxcbn1cblxuZXhwb3J0IGNvbnN0IEFCT1VUX1NFQ1RJT046IEVkaXRvclNlY3Rpb24gPSB7XG4gIGxhYmVsS2V5OiBtYXJrZXIoJ2VkaXRvci5yZWNvcmQuZm9ybS5zZWN0aW9uLmFib3V0LmxhYmVsJyksXG4gIGRlc2NyaXB0aW9uS2V5OiBtYXJrZXIoJ2VkaXRvci5yZWNvcmQuZm9ybS5zZWN0aW9uLmFib3V0LmRlc2NyaXB0aW9uJyksXG4gIGhpZGRlbjogZmFsc2UsXG4gIGZpZWxkczogW1xuICAgIFJFQ09SRF9VTklRVUVfSURFTlRJRklFUl9GSUVMRCxcbiAgICBSRVNPVVJDRV9JREVOVElGSUVSX0ZJRUxELFxuICAgIFJFQ09SRF9SRVNPVVJDRV9DUkVBVEVEX0ZJRUxELFxuICAgIFJFQ09SRF9SRVNPVVJDRV9VUERBVEVEX0ZJRUxELFxuICAgIFJFQ09SRF9VUERBVEVEX0ZJRUxELFxuICAgIFJFQ09SRF9VUERBVEVfRlJFUVVFTkNZX0ZJRUxELFxuICAgIFJFQ09SRF9URU1QT1JBTF9FWFRFTlRTX0ZJRUxELFxuICBdLFxufVxuXG5leHBvcnQgY29uc3QgR0VPR1JBUEhJQ0FMX0NPVkVSQUdFX1NFQ1RJT046IEVkaXRvclNlY3Rpb24gPSB7XG4gIGxhYmVsS2V5OiBtYXJrZXIoJ2VkaXRvci5yZWNvcmQuZm9ybS5zZWN0aW9uLmdlb2dyYXBoaWNhbENvdmVyYWdlLmxhYmVsJyksXG4gIGhpZGRlbjogZmFsc2UsXG4gIGZpZWxkczogW1JFQ09SRF9TUEFUSUFMX1RPR0dMRV9GSUVMRCwgUkVDT1JEX1NQQVRJQUxfRVhURU5UU19GSUVMRF0sXG59XG5cbmV4cG9ydCBjb25zdCBBU1NPQ0lBVEVEX1JFU09VUkNFU19TRUNUSU9OOiBFZGl0b3JTZWN0aW9uID0ge1xuICBsYWJlbEtleTogbWFya2VyKCdlZGl0b3IucmVjb3JkLmZvcm0uc2VjdGlvbi5hc3NvY2lhdGVkUmVzb3VyY2VzLmxhYmVsJyksXG4gIGRlc2NyaXB0aW9uS2V5OiBtYXJrZXIoXG4gICAgJ2VkaXRvci5yZWNvcmQuZm9ybS5zZWN0aW9uLmFzc29jaWF0ZWRSZXNvdXJjZXMuZGVzY3JpcHRpb24nXG4gICksXG4gIGhpZGRlbjogZmFsc2UsXG4gIGZpZWxkczogW1JFQ09SRF9PTkxJTkVfUkVTT1VSQ0VTXSxcbn1cblxuZXhwb3J0IGNvbnN0IEFOTkVYRVNfU0VDVElPTjogRWRpdG9yU2VjdGlvbiA9IHtcbiAgbGFiZWxLZXk6IG1hcmtlcignZWRpdG9yLnJlY29yZC5mb3JtLnNlY3Rpb24uYW5uZXhlcy5sYWJlbCcpLFxuICBkZXNjcmlwdGlvbktleTogbWFya2VyKCdlZGl0b3IucmVjb3JkLmZvcm0uc2VjdGlvbi5hbm5leGVzLmRlc2NyaXB0aW9uJyksXG4gIGhpZGRlbjogZmFsc2UsXG4gIGZpZWxkczogW1JFQ09SRF9PTkxJTkVfTElOS19SRVNPVVJDRVNdLFxufVxuXG5leHBvcnQgY29uc3QgQ0xBU1NJRklDQVRJT05fU0VDVElPTjogRWRpdG9yU2VjdGlvbiA9IHtcbiAgbGFiZWxLZXk6IG1hcmtlcignZWRpdG9yLnJlY29yZC5mb3JtLnNlY3Rpb24uY2xhc3NpZmljYXRpb24ubGFiZWwnKSxcbiAgZGVzY3JpcHRpb25LZXk6IG1hcmtlcihcbiAgICAnZWRpdG9yLnJlY29yZC5mb3JtLnNlY3Rpb24uY2xhc3NpZmljYXRpb24uZGVzY3JpcHRpb24nXG4gICksXG4gIGhpZGRlbjogZmFsc2UsXG4gIGZpZWxkczogW1JFQ09SRF9LRVlXT1JEU19GSUVMRF0sXG59XG5cbmV4cG9ydCBjb25zdCBVU0VfQU5EX0FDQ0VTU19DT05ESVRJT05TX1NFQ1RJT046IEVkaXRvclNlY3Rpb24gPSB7XG4gIGxhYmVsS2V5OiBtYXJrZXIoJ2VkaXRvci5yZWNvcmQuZm9ybS5zZWN0aW9uLnVzZUFuZEFjY2Vzc0NvbmRpdGlvbnMubGFiZWwnKSxcbiAgaGlkZGVuOiBmYWxzZSxcbiAgZmllbGRzOiBbXG4gICAgUkVDT1JEX0xJQ0VOU0VfRklFTEQsXG4gICAgQ09OU1RSQUlOVFNfU0hPUlRDVVRTLFxuICAgIExFR0FMX0NPTlNUUkFJTlRTX0ZJRUxELFxuICAgIFNFQ1VSSVRZX0NPTlNUUkFJTlRTX0ZJRUxELFxuICAgIE9USEVSX0NPTlNUUkFJTlRTX0ZJRUxELFxuICBdLFxufVxuXG5leHBvcnQgY29uc3QgREFUQV9NQU5BR0VSU19TRUNUSU9OOiBFZGl0b3JTZWN0aW9uID0ge1xuICBsYWJlbEtleTogbWFya2VyKCdlZGl0b3IucmVjb3JkLmZvcm0uc2VjdGlvbi5kYXRhTWFuYWdlcnMubGFiZWwnKSxcbiAgZGVzY3JpcHRpb25LZXk6IG1hcmtlcignZWRpdG9yLnJlY29yZC5mb3JtLnNlY3Rpb24uZGF0YU1hbmFnZXJzLmRlc2NyaXB0aW9uJyksXG4gIGhpZGRlbjogZmFsc2UsXG4gIGZpZWxkczogW0NPTlRBQ1RTX0ZPUl9SRVNPVVJDRV9GSUVMRF0sXG59XG5cbmV4cG9ydCBjb25zdCBNRVRBREFUQV9QT0lOVF9PRl9DT05UQUNUX1NFQ1RJT046IEVkaXRvclNlY3Rpb24gPSB7XG4gIGxhYmVsS2V5OiBtYXJrZXIoJ2VkaXRvci5yZWNvcmQuZm9ybS5zZWN0aW9uLm1ldGFkYXRhUG9pbnRPZkNvbnRhY3QubGFiZWwnKSxcbiAgZGVzY3JpcHRpb25LZXk6IG1hcmtlcihcbiAgICAnZWRpdG9yLnJlY29yZC5mb3JtLnNlY3Rpb24ubWV0YWRhdGFQb2ludE9mQ29udGFjdC5kZXNjcmlwdGlvbidcbiAgKSxcbiAgaGlkZGVuOiBmYWxzZSxcbiAgZmllbGRzOiBbQ09OVEFDVFNdLFxufVxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKioqKioqKioqKioqKioqICAgICAgICAgICBQQUdFUyAgICAgICAgICAgICoqKioqKioqKioqKioqKioqXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKi9cbmV4cG9ydCBjb25zdCBERUZBVUxUX0NPTkZJR1VSQVRJT046IEVkaXRvckNvbmZpZyA9IHtcbiAgcGFnZXM6IFtcbiAgICB7XG4gICAgICBsYWJlbEtleTogbWFya2VyKCdlZGl0b3IucmVjb3JkLmZvcm0ucGFnZS5kZXNjcmlwdGlvbicpLFxuICAgICAgc2VjdGlvbnM6IFtcbiAgICAgICAgVElUTEVfU0VDVElPTixcbiAgICAgICAgQUJPVVRfU0VDVElPTixcbiAgICAgICAgQ0xBU1NJRklDQVRJT05fU0VDVElPTixcbiAgICAgICAgR0VPR1JBUEhJQ0FMX0NPVkVSQUdFX1NFQ1RJT04sXG4gICAgICBdLFxuICAgIH0sXG4gICAge1xuICAgICAgbGFiZWxLZXk6IG1hcmtlcignZWRpdG9yLnJlY29yZC5mb3JtLnBhZ2UucmVzb3VyY2VzJyksXG4gICAgICBzZWN0aW9uczogW0FTU09DSUFURURfUkVTT1VSQ0VTX1NFQ1RJT04sIEFOTkVYRVNfU0VDVElPTl0sXG4gICAgfSxcbiAgICB7XG4gICAgICBsYWJlbEtleTogbWFya2VyKCdlZGl0b3IucmVjb3JkLmZvcm0ucGFnZS5hY2Nlc3NBbmRDb250YWN0JyksXG4gICAgICBzZWN0aW9uczogW1xuICAgICAgICBVU0VfQU5EX0FDQ0VTU19DT05ESVRJT05TX1NFQ1RJT04sXG4gICAgICAgIERBVEFfTUFOQUdFUlNfU0VDVElPTixcbiAgICAgICAgTUVUQURBVEFfUE9JTlRfT0ZfQ09OVEFDVF9TRUNUSU9OLFxuICAgICAgXSxcbiAgICB9LFxuICBdLFxufVxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKioqKioqKioqKioqKioqICAgICAgICAgICBMSUNFTlNFUyAgICAgICAgICAgICoqKioqKioqKioqKioqXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKi9cbmV4cG9ydCBjb25zdCBBVkFJTEFCTEVfTElDRU5TRVM6IHN0cmluZ1tdID0gW1xuICAnY2MtYnknLFxuICAnY2MtYnktc2EnLFxuICAnY2MtemVybycsXG4gICdldGFsYWInLFxuICAnZXRhbGFiLXYyJyxcbiAgJ29kYmwnLFxuICAnb2RjLWJ5JyxcbiAgJ3BkZGwnLFxuICAndW5rbm93bicsXG5dXG5cbmV4cG9ydCBjb25zdCBPUEVOX0RBVEFfTElDRU5TRSA9ICdldGFsYWInXG5cbm1hcmtlcignZWRpdG9yLnJlY29yZC5mb3JtLmxpY2Vuc2UuY2MtYnknKVxubWFya2VyKCdlZGl0b3IucmVjb3JkLmZvcm0ubGljZW5zZS5jYy1ieS1zYScpXG5tYXJrZXIoJ2VkaXRvci5yZWNvcmQuZm9ybS5saWNlbnNlLmNjLXplcm8nKVxubWFya2VyKCdlZGl0b3IucmVjb3JkLmZvcm0ubGljZW5zZS5ldGFsYWInKVxubWFya2VyKCdlZGl0b3IucmVjb3JkLmZvcm0ubGljZW5zZS5ldGFsYWItdjInKVxubWFya2VyKCdlZGl0b3IucmVjb3JkLmZvcm0ubGljZW5zZS5vZGJsJylcbm1hcmtlcignZWRpdG9yLnJlY29yZC5mb3JtLmxpY2Vuc2Uub2RjLWJ5Jylcbm1hcmtlcignZWRpdG9yLnJlY29yZC5mb3JtLmxpY2Vuc2UucGRkbCcpXG5tYXJrZXIoJ2VkaXRvci5yZWNvcmQuZm9ybS5saWNlbnNlLnVua25vd24nKVxuXG5leHBvcnQgY29uc3QgTUFYX1VQTE9BRF9TSVpFX01CID0gMTBcbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqKioqKioqKioqKioqKiogICAgICAgIFNQQVRJQUwgU0NPUEUgICAgICAgICAgICAqKioqKioqKioqKipcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqL1xuXG5leHBvcnQgY29uc3QgU1BBVElBTF9TQ09QRVM6IEtleXdvcmRbXSA9IFtcbiAge1xuICAgIGtleTogJ2h0dHA6Ly9pbnNwaXJlLmVjLmV1cm9wYS5ldS9tZXRhZGF0YS1jb2RlbGlzdC9TcGF0aWFsU2NvcGUvbmF0aW9uYWwnLFxuICAgIGxhYmVsOiAnTmF0aW9uYWwnLFxuICAgIGRlc2NyaXB0aW9uOiAnJyxcbiAgICB0eXBlOiAndGhlbWUnLFxuICB9LFxuICB7XG4gICAga2V5OiAnaHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21ldGFkYXRhLWNvZGVsaXN0L1NwYXRpYWxTY29wZS9yZWdpb25hbCcsXG4gICAgbGFiZWw6ICdSZWdpb25hbCcsXG4gICAgZGVzY3JpcHRpb246ICcnLFxuICAgIHR5cGU6ICd0aGVtZScsXG4gIH0sXG5dXG4iXX0=
296
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGRzLmNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZmVhdHVyZS9lZGl0b3Ivc3JjL2xpYi9maWVsZHMuY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQTtBQVFoRTs7Ozs7R0FLRztBQUVIOzs7R0FHRztBQUVILE1BQU0sQ0FBQyxNQUFNLDhCQUE4QixHQUFnQjtJQUN6RCxLQUFLLEVBQUUsa0JBQWtCO0lBQ3pCLGVBQWUsRUFBRTtRQUNmLFFBQVEsRUFBRSxNQUFNLENBQUMsMkNBQTJDLENBQUM7S0FDOUQ7SUFDRCxNQUFNLEVBQUUsSUFBSTtDQUNiLENBQUE7QUFFRCxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBZ0I7SUFDaEQsYUFBYSxFQUFFLGtDQUFrQztJQUNqRCxlQUFlLEVBQUU7UUFDZixRQUFRLEVBQUUsTUFBTSxDQUFDLCtDQUErQyxDQUFDO0tBQ2xFO0NBQ0YsQ0FBQTtBQUVELE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFnQjtJQUNsRCxLQUFLLEVBQUUsa0JBQWtCO0lBQ3pCLGVBQWUsRUFBRTtRQUNmLFFBQVEsRUFBRSxNQUFNLENBQUMsMkNBQTJDLENBQUM7S0FDOUQ7Q0FDRixDQUFBO0FBQ0QsTUFBTSxDQUFDLE1BQU0sMEJBQTBCLEdBQWdCO0lBQ3JELEtBQUssRUFBRSxxQkFBcUI7SUFDNUIsZUFBZSxFQUFFO1FBQ2YsUUFBUSxFQUFFLE1BQU0sQ0FBQyw4Q0FBOEMsQ0FBQztLQUNqRTtDQUNGLENBQUE7QUFDRCxNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBZ0I7SUFDbEQsS0FBSyxFQUFFLGtCQUFrQjtJQUN6QixlQUFlLEVBQUU7UUFDZixRQUFRLEVBQUUsTUFBTSxDQUFDLDJDQUEyQyxDQUFDO0tBQzlEO0NBQ0YsQ0FBQTtBQUVELE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixH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Q0FBbUMsQ0FBQyxDQUFBO0FBQzNDLE1BQU0sQ0FBQyxzQ0FBc0MsQ0FBQyxDQUFBO0FBQzlDLE1BQU0sQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFBO0FBQ3pDLE1BQU0sQ0FBQyxtQ0FBbUMsQ0FBQyxDQUFBO0FBQzNDLE1BQU0sQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFBO0FBQ3pDLE1BQU0sQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFBO0FBRTVDLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLEVBQUUsQ0FBQTtBQUNwQzs7O0dBR0c7QUFFSCxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQWM7SUFDdkM7UUFDRSxHQUFHLEVBQUUscUVBQXFFO1FBQzFFLEtBQUssRUFBRSxVQUFVO1FBQ2pCLFdBQVcsRUFBRSxFQUFFO1FBQ2YsSUFBSSxFQUFFLE9BQU87S0FDZDtJQUNEO1FBQ0UsR0FBRyxFQUFFLHFFQUFxRTtRQUMxRSxLQUFLLEVBQUUsVUFBVTtRQUNqQixXQUFXLEVBQUUsRUFBRTtRQUNmLElBQUksRUFBRSxPQUFPO0tBQ2Q7Q0FDRixDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbWFya2VyIH0gZnJvbSAnQGJpZXNiamVyZy9uZ3gtdHJhbnNsYXRlLWV4dHJhY3QtbWFya2VyJ1xuaW1wb3J0IHtcbiAgRWRpdG9yQ29uZmlnLFxuICBFZGl0b3JGaWVsZCxcbiAgRWRpdG9yU2VjdGlvbixcbn0gZnJvbSAnLi9tb2RlbHMvZWRpdG9yLWNvbmZpZy5tb2RlbCdcbmltcG9ydCB7IEtleXdvcmQgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9tb2RlbC9yZWNvcmQnXG5cbi8qKlxuICogVGhpcyBmaWxlIGNvbnRhaW5zIHRoZSBjb25maWd1cmF0aW9uIG9mIHRoZSBmaWVsZHMgdGhhdCB3aWxsIGJlIGRpc3BsYXllZCBpbiB0aGUgZWRpdG9yLlxuICogVG8gYWRkIGEgbmV3IGZpZWxkLCB5b3UgbmVlZCB0byBjcmVhdGUgYSBuZXcgRWRpdG9yRmllbGQgb2JqZWN0IGluIHRoZSBmaWVsZHMgcGFydCBvZiB0aGlzIGZpbGUuXG4gKiBUaGVuIGFkZCBpdCB0byB0aGUgY29ycmVzcG9uZGluZyBzZWN0aW9uIGluIHRoZSBzZWN0aW9ucyBwYXJ0IG9mIHRoaXMgZmlsZS5cbiAqIEZpbmFsbHksIGFkZCB0aGUgc2VjdGlvbiB0byB0aGUgY29ycmVzcG9uZGluZyBwYWdlIGluIHRoZSBwYWdlcyBwYXJ0IG9mIHRoaXMgZmlsZS5cbiAqL1xuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKioqKioqKioqKioqKioqICAgICAgICAgICBGSUVMRFMgICAgICAgICAgICoqKioqKioqKioqKioqKioqXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKi9cblxuZXhwb3J0IGNvbnN0IFJFQ09SRF9VTklRVUVfSURFTlRJRklFUl9GSUVMRDogRWRpdG9yRmllbGQgPSB7XG4gIG1vZGVsOiAndW5pcXVlSWRlbnRpZmllcicsXG4gIGZvcm1GaWVsZENvbmZpZzoge1xuICAgIGxhYmVsS2V5OiBtYXJrZXIoJ2VkaXRvci5yZWNvcmQuZm9ybS5maWVsZC51bmlxdWVJZGVudGlmaWVyJyksXG4gIH0sXG4gIGhpZGRlbjogdHJ1ZSxcbn1cblxuZXhwb3J0IGNvbnN0IENPTlNUUkFJTlRTX1NIT1JUQ1VUUzogRWRpdG9yRmllbGQgPSB7XG4gIGNvbXBvbmVudE5hbWU6ICdmb3JtLWZpZWxkLWNvbnN0cmFpbnRzLXNob3J0Y3V0cycsXG4gIGZvcm1GaWVsZENvbmZpZzoge1xuICAgIGxhYmVsS2V5OiBtYXJrZXIoJ2VkaXRvci5yZWNvcmQuZm9ybS5maWVsZC5jb25zdHJhaW50c1Nob3J0Y3V0cycpLFxuICB9LFxufVxuXG5leHBvcnQgY29uc3QgTEVHQUxfQ09OU1RSQUlOVFNfRklFTEQ6IEVkaXRvckZpZWxkID0ge1xuICBtb2RlbDogJ2xlZ2FsQ29uc3RyYWludHMnLFxuICBmb3JtRmllbGRDb25maWc6IHtcbiAgICBsYWJlbEtleTogbWFya2VyKCdlZGl0b3IucmVjb3JkLmZvcm0uZmllbGQubGVnYWxDb25zdHJhaW50cycpLFxuICB9LFxufVxuZXhwb3J0IGNvbnN0IFNFQ1VSSVRZX0NPTlNUUkFJTlRTX0ZJRUxEOiBFZGl0b3JGaWVsZCA9IHtcbiAgbW9kZWw6ICdzZWN1cml0eUNvbnN0cmFpbnRzJyxcbiAgZm9ybUZpZWxkQ29uZmlnOiB7XG4gICAgbGFiZWxLZXk6IG1hcmtlcignZWRpdG9yLnJlY29yZC5mb3JtLmZpZWxkLnNlY3VyaXR5Q29uc3RyYWludHMnKSxcbiAgfSxcbn1cbmV4cG9ydCBjb25zdCBPVEhFUl9DT05TVFJBSU5UU19GSUVMRDogRWRpdG9yRmllbGQgPSB7XG4gIG1vZGVsOiAnb3RoZXJDb25zdHJhaW50cycsXG4gIGZvcm1GaWVsZENvbmZpZzoge1xuICAgIGxhYmVsS2V5OiBtYXJrZXIoJ2VkaXRvci5yZWNvcmQuZm9ybS5maWVsZC5vdGhlckNvbnN0cmFpbnRzJyksXG4gIH0sXG59XG5cbmV4cG9ydCBjb25zdCBSRUNPUkRfTElDRU5TRV9GSUVMRDogRWRpdG9yRmllbGQgPSB7XG4gIG1vZGVsOiAnbGljZW5zZXMnLFxuICBmb3JtRmllbGRDb25maWc6IHtcbiAgICBsYWJlbEtleTogbWFya2VyKCdlZGl0b3IucmVjb3JkLmZvcm0uZmllbGQubGljZW5zZScpLFxuICB9LFxufVxuXG5leHBvcnQgY29uc3QgUkVDT1JEX0tFWVdPUkRTX0ZJRUxEOiBFZGl0b3JGaWVsZCA9IHtcbiAgbW9kZWw6ICdrZXl3b3JkcycsXG4gIGZvcm1GaWVsZENvbmZpZzoge30sXG59XG4vLyBrZWVwaW5nIHRyYWNrIG9mIHRoZSBsYWJlbCB0byBub3QgbG9zZSBleGlzdGluZyB0cmFuc2xhdGlvblxubWFya2VyKCdlZGl0b3IucmVjb3JkLmZvcm0uZmllbGQua2V5d29yZHMnKVxuXG5leHBvcnQgY29uc3QgUkVDT1JEX1JFU09VUkNFX0NSRUFURURfRklFTEQ6IEVkaXRvckZpZWxkID0ge1xuICBtb2RlbDogJ3Jlc291cmNlQ3JlYXRlZCcsXG4gIGZvcm1GaWVsZENvbmZpZzoge1xuICAgIGxhYmVsS2V5OiBtYXJrZXIoJ2VkaXRvci5yZWNvcmQuZm9ybS5maWVsZC5yZXNvdXJjZUNyZWF0ZWQnKSxcbiAgfSxcbiAgZ3JpZENvbHVtblNwYW46IDEsXG59XG5cbmV4cG9ydCBjb25zdCBSRVNPVVJDRV9JREVOVElGSUVSX0ZJRUxEOiBFZGl0b3JGaWVsZCA9IHtcbiAgbW9kZWw6ICdyZXNvdXJjZUlkZW50aWZpZXInLFxuICBmb3JtRmllbGRDb25maWc6IHtcbiAgICBsYWJlbEtleTogbWFya2VyKCdlZGl0b3IucmVjb3JkLmZvcm0uZmllbGQucmVzb3VyY2VJZGVudGlmaWVyJyksXG4gIH0sXG59XG5cbmV4cG9ydCBjb25zdCBSRUNPUkRfUkVTT1VSQ0VfVVBEQVRFRF9GSUVMRDogRWRpdG9yRmllbGQgPSB7XG4gIG1vZGVsOiAncmVzb3VyY2VVcGRhdGVkJyxcbiAgZm9ybUZpZWxkQ29uZmlnOiB7XG4gICAgbGFiZWxLZXk6IG1hcmtlcignZWRpdG9yLnJlY29yZC5mb3JtLmZpZWxkLnJlc291cmNlVXBkYXRlZCcpLFxuICB9LFxuICBncmlkQ29sdW1uU3BhbjogMSxcbn1cblxuZXhwb3J0IGNvbnN0IFJFQ09SRF9VUERBVEVEX0ZJRUxEOiBFZGl0b3JGaWVsZCA9IHtcbiAgbW9kZWw6ICdyZWNvcmRVcGRhdGVkJyxcbiAgZm9ybUZpZWxkQ29uZmlnOiB7XG4gICAgbGFiZWxLZXk6IG1hcmtlcignZWRpdG9yLnJlY29yZC5mb3JtLmZpZWxkLnJlY29yZFVwZGF0ZWQnKSxcbiAgfSxcbiAgb25TYXZlUHJvY2VzczogJyR7ZGF0ZU5vdygpfScsXG4gIGdyaWRDb2x1bW5TcGFuOiAxLFxuICBoaWRkZW46IHRydWUsXG59XG5cbmV4cG9ydCBjb25zdCBSRUNPUkRfVVBEQVRFX0ZSRVFVRU5DWV9GSUVMRDogRWRpdG9yRmllbGQgPSB7XG4gIG1vZGVsOiAndXBkYXRlRnJlcXVlbmN5JyxcbiAgZm9ybUZpZWxkQ29uZmlnOiB7fSxcbn1cbi8vIGtlZXBpbmcgdHJhY2sgb2YgdGhlIGxhYmVsIHRvIG5vdCBsb3NlIGV4aXN0aW5nIHRyYW5zbGF0aW9uXG5tYXJrZXIoJ2VkaXRvci5yZWNvcmQuZm9ybS5maWVsZC51cGRhdGVGcmVxdWVuY3knKVxuXG5leHBvcnQgY29uc3QgUkVDT1JEX1RFTVBPUkFMX0VYVEVOVFNfRklFTEQ6IEVkaXRvckZpZWxkID0ge1xuICBtb2RlbDogJ3RlbXBvcmFsRXh0ZW50cycsXG4gIGZvcm1GaWVsZENvbmZpZzoge1xuICAgIGxhYmVsS2V5OiBtYXJrZXIoJ2VkaXRvci5yZWNvcmQuZm9ybS5maWVsZC50ZW1wb3JhbEV4dGVudHMnKSxcbiAgfSxcbn1cblxuZXhwb3J0IGNvbnN0IFJFQ09SRF9USVRMRV9GSUVMRDogRWRpdG9yRmllbGQgPSB7XG4gIG1vZGVsOiAndGl0bGUnLFxuICBmb3JtRmllbGRDb25maWc6IHtcbiAgICBsYWJlbEtleTogbWFya2VyKCdlZGl0b3IucmVjb3JkLmZvcm0uZmllbGQudGl0bGUnKSxcbiAgfSxcbn1cblxuZXhwb3J0IGNvbnN0IFJFQ09SRF9BQlNUUkFDVF9GSUVMRDogRWRpdG9yRmllbGQgPSB7XG4gIG1vZGVsOiAnYWJzdHJhY3QnLFxuICBmb3JtRmllbGRDb25maWc6IHtcbiAgICBsYWJlbEtleTogbWFya2VyKCdlZGl0b3IucmVjb3JkLmZvcm0uZmllbGQuYWJzdHJhY3QnKSxcbiAgfSxcbn1cblxuZXhwb3J0IGNvbnN0IENPTlRBQ1RTX0ZPUl9SRVNPVVJDRV9GSUVMRDogRWRpdG9yRmllbGQgPSB7XG4gIG1vZGVsOiAnY29udGFjdHNGb3JSZXNvdXJjZScsXG4gIGZvcm1GaWVsZENvbmZpZzoge1xuICAgIGxhYmVsS2V5OiAnJyxcbiAgfSxcbn1cblxuZXhwb3J0IGNvbnN0IENPTlRBQ1RTOiBFZGl0b3JGaWVsZCA9IHtcbiAgbW9kZWw6ICdjb250YWN0cycsXG4gIGZvcm1GaWVsZENvbmZpZzoge1xuICAgIGxhYmVsS2V5OiAnJyxcbiAgfSxcbn1cblxuZXhwb3J0IGNvbnN0IFJFQ09SRF9HUkFQSElDQUxfT1ZFUlZJRVdfRklFTEQ6IEVkaXRvckZpZWxkID0ge1xuICBtb2RlbDogJ292ZXJ2aWV3cycsXG4gIGZvcm1GaWVsZENvbmZpZzoge1xuICAgIGxhYmVsS2V5OiBtYXJrZXIoJ2VkaXRvci5yZWNvcmQuZm9ybS5maWVsZC5vdmVydmlld3MnKSxcbiAgfSxcbn1cblxuZXhwb3J0IGNvbnN0IFJFQ09SRF9TUEFUSUFMX1RPR0dMRV9GSUVMRDogRWRpdG9yRmllbGQgPSB7XG4gIGNvbXBvbmVudE5hbWU6ICdmb3JtLWZpZWxkLXNwYXRpYWwtdG9nZ2xlJyxcbiAgZm9ybUZpZWxkQ29uZmlnOiB7fSxcbiAgaGlkZGVuOiB0cnVlLFxufVxuXG5leHBvcnQgY29uc3QgUkVDT1JEX1NQQVRJQUxfRVhURU5UU19GSUVMRDogRWRpdG9yRmllbGQgPSB7XG4gIG1vZGVsOiAnc3BhdGlhbEV4dGVudHMnLFxuICBmb3JtRmllbGRDb25maWc6IHt9LFxufVxuLy8ga2VlcGluZyB0cmFjayBvZiB0aGUgbGFiZWwgdG8gbm90IGxvc2UgZXhpc3RpbmcgdHJhbnNsYXRpb25cbm1hcmtlcignZWRpdG9yLnJlY29yZC5mb3JtLmZpZWxkLnNwYXRpYWxFeHRlbnRzJylcblxuZXhwb3J0IGNvbnN0IFJFQ09SRF9PTkxJTkVfUkVTT1VSQ0VTOiBFZGl0b3JGaWVsZCA9IHtcbiAgbW9kZWw6ICdvbmxpbmVSZXNvdXJjZXMnLFxuICBtb2RlbFNwZWNpZmllcjogJ29ubGluZVJlc291cmNlVHlwZTohbGluaycsXG4gIGZvcm1GaWVsZENvbmZpZzoge30sXG59XG4vLyBrZWVwaW5nIHRyYWNrIG9mIHRoZSBsYWJlbCB0byBub3QgbG9zZSBleGlzdGluZyB0cmFuc2xhdGlvblxubWFya2VyKCdlZGl0b3IucmVjb3JkLmZvcm0uZmllbGQub25saW5lUmVzb3VyY2VzJylcblxuZXhwb3J0IGNvbnN0IFJFQ09SRF9PTkxJTkVfTElOS19SRVNPVVJDRVM6IEVkaXRvckZpZWxkID0ge1xuICBtb2RlbDogJ29ubGluZVJlc291cmNlcycsXG4gIG1vZGVsU3BlY2lmaWVyOiAnb25saW5lUmVzb3VyY2VUeXBlOmxpbmsnLFxuICBmb3JtRmllbGRDb25maWc6IHt9LFxufVxuLy8ga2VlcGluZyB0cmFjayBvZiB0aGUgbGFiZWwgdG8gbm90IGxvc2UgZXhpc3RpbmcgdHJhbnNsYXRpb25cbm1hcmtlcignZWRpdG9yLnJlY29yZC5mb3JtLmZpZWxkLm9ubGluZUxpbmtSZXNvdXJjZXMnKVxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKioqKioqKioqKioqKioqICAgICAgICAgIFNFQ1RJT05TICAgICAgICAgICoqKioqKioqKioqKioqKioqXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKi9cblxuZXhwb3J0IGNvbnN0IFRJVExFX1NFQ1RJT046IEVkaXRvclNlY3Rpb24gPSB7XG4gIGhpZGRlbjogZmFsc2UsXG4gIGZpZWxkczogW1xuICAgIFJFQ09SRF9USVRMRV9GSUVMRCxcbiAgICBSRUNPUkRfQUJTVFJBQ1RfRklFTEQsXG4gICAgUkVDT1JEX0dSQVBISUNBTF9PVkVSVklFV19GSUVMRCxcbiAgXSxcbn1cblxuZXhwb3J0IGNvbnN0IEFCT1VUX1NFQ1RJT046IEVkaXRvclNlY3Rpb24gPSB7XG4gIGxhYmVsS2V5OiBtYXJrZXIoJ2VkaXRvci5yZWNvcmQuZm9ybS5zZWN0aW9uLmFib3V0LmxhYmVsJyksXG4gIGRlc2NyaXB0aW9uS2V5OiBtYXJrZXIoJ2VkaXRvci5yZWNvcmQuZm9ybS5zZWN0aW9uLmFib3V0LmRlc2NyaXB0aW9uJyksXG4gIGhpZGRlbjogZmFsc2UsXG4gIGZpZWxkczogW1xuICAgIFJFQ09SRF9VTklRVUVfSURFTlRJRklFUl9GSUVMRCxcbiAgICBSRVNPVVJDRV9JREVOVElGSUVSX0ZJRUxELFxuICAgIFJFQ09SRF9SRVNPVVJDRV9DUkVBVEVEX0ZJRUxELFxuICAgIFJFQ09SRF9SRVNPVVJDRV9VUERBVEVEX0ZJRUxELFxuICAgIFJFQ09SRF9VUERBVEVEX0ZJRUxELFxuICAgIFJFQ09SRF9VUERBVEVfRlJFUVVFTkNZX0ZJRUxELFxuICAgIFJFQ09SRF9URU1QT1JBTF9FWFRFTlRTX0ZJRUxELFxuICBdLFxufVxuXG5leHBvcnQgY29uc3QgR0VPR1JBUEhJQ0FMX0NPVkVSQUdFX1NFQ1RJT046IEVkaXRvclNlY3Rpb24gPSB7XG4gIGxhYmVsS2V5OiBtYXJrZXIoJ2VkaXRvci5yZWNvcmQuZm9ybS5zZWN0aW9uLmdlb2dyYXBoaWNhbENvdmVyYWdlLmxhYmVsJyksXG4gIGhpZGRlbjogZmFsc2UsXG4gIGZpZWxkczogW1JFQ09SRF9TUEFUSUFMX1RPR0dMRV9GSUVMRCwgUkVDT1JEX1NQQVRJQUxfRVhURU5UU19GSUVMRF0sXG59XG5cbmV4cG9ydCBjb25zdCBBU1NPQ0lBVEVEX1JFU09VUkNFU19TRUNUSU9OOiBFZGl0b3JTZWN0aW9uID0ge1xuICBsYWJlbEtleTogbWFya2VyKCdlZGl0b3IucmVjb3JkLmZvcm0uc2VjdGlvbi5hc3NvY2lhdGVkUmVzb3VyY2VzLmxhYmVsJyksXG4gIGRlc2NyaXB0aW9uS2V5OiBtYXJrZXIoXG4gICAgJ2VkaXRvci5yZWNvcmQuZm9ybS5zZWN0aW9uLmFzc29jaWF0ZWRSZXNvdXJjZXMuZGVzY3JpcHRpb24nXG4gICksXG4gIGhpZGRlbjogZmFsc2UsXG4gIGZpZWxkczogW1JFQ09SRF9PTkxJTkVfUkVTT1VSQ0VTXSxcbn1cblxuZXhwb3J0IGNvbnN0IEFOTkVYRVNfU0VDVElPTjogRWRpdG9yU2VjdGlvbiA9IHtcbiAgbGFiZWxLZXk6IG1hcmtlcignZWRpdG9yLnJlY29yZC5mb3JtLnNlY3Rpb24uYW5uZXhlcy5sYWJlbCcpLFxuICBkZXNjcmlwdGlvbktleTogbWFya2VyKCdlZGl0b3IucmVjb3JkLmZvcm0uc2VjdGlvbi5hbm5leGVzLmRlc2NyaXB0aW9uJyksXG4gIGhpZGRlbjogZmFsc2UsXG4gIGZpZWxkczogW1JFQ09SRF9PTkxJTkVfTElOS19SRVNPVVJDRVNdLFxufVxuXG5leHBvcnQgY29uc3QgQ0xBU1NJRklDQVRJT05fU0VDVElPTjogRWRpdG9yU2VjdGlvbiA9IHtcbiAgbGFiZWxLZXk6IG1hcmtlcignZWRpdG9yLnJlY29yZC5mb3JtLnNlY3Rpb24uY2xhc3NpZmljYXRpb24ubGFiZWwnKSxcbiAgZGVzY3JpcHRpb25LZXk6IG1hcmtlcihcbiAgICAnZWRpdG9yLnJlY29yZC5mb3JtLnNlY3Rpb24uY2xhc3NpZmljYXRpb24uZGVzY3JpcHRpb24nXG4gICksXG4gIGhpZGRlbjogZmFsc2UsXG4gIGZpZWxkczogW1JFQ09SRF9LRVlXT1JEU19GSUVMRF0sXG59XG5cbmV4cG9ydCBjb25zdCBVU0VfQU5EX0FDQ0VTU19DT05ESVRJT05TX1NFQ1RJT046IEVkaXRvclNlY3Rpb24gPSB7XG4gIGxhYmVsS2V5OiBtYXJrZXIoJ2VkaXRvci5yZWNvcmQuZm9ybS5zZWN0aW9uLnVzZUFuZEFjY2Vzc0NvbmRpdGlvbnMubGFiZWwnKSxcbiAgaGlkZGVuOiBmYWxzZSxcbiAgZmllbGRzOiBbXG4gICAgUkVDT1JEX0xJQ0VOU0VfRklFTEQsXG4gICAgQ09OU1RSQUlOVFNfU0hPUlRDVVRTLFxuICAgIExFR0FMX0NPTlNUUkFJTlRTX0ZJRUxELFxuICAgIFNFQ1VSSVRZX0NPTlNUUkFJTlRTX0ZJRUxELFxuICAgIE9USEVSX0NPTlNUUkFJTlRTX0ZJRUxELFxuICBdLFxufVxuXG5leHBvcnQgY29uc3QgREFUQV9NQU5BR0VSU19TRUNUSU9OOiBFZGl0b3JTZWN0aW9uID0ge1xuICBsYWJlbEtleTogbWFya2VyKCdlZGl0b3IucmVjb3JkLmZvcm0uc2VjdGlvbi5kYXRhTWFuYWdlcnMubGFiZWwnKSxcbiAgZGVzY3JpcHRpb25LZXk6IG1hcmtlcignZWRpdG9yLnJlY29yZC5mb3JtLnNlY3Rpb24uZGF0YU1hbmFnZXJzLmRlc2NyaXB0aW9uJyksXG4gIGhpZGRlbjogZmFsc2UsXG4gIGZpZWxkczogW0NPTlRBQ1RTX0ZPUl9SRVNPVVJDRV9GSUVMRF0sXG59XG5cbmV4cG9ydCBjb25zdCBNRVRBREFUQV9QT0lOVF9PRl9DT05UQUNUX1NFQ1RJT046IEVkaXRvclNlY3Rpb24gPSB7XG4gIGxhYmVsS2V5OiBtYXJrZXIoJ2VkaXRvci5yZWNvcmQuZm9ybS5zZWN0aW9uLm1ldGFkYXRhUG9pbnRPZkNvbnRhY3QubGFiZWwnKSxcbiAgZGVzY3JpcHRpb25LZXk6IG1hcmtlcihcbiAgICAnZWRpdG9yLnJlY29yZC5mb3JtLnNlY3Rpb24ubWV0YWRhdGFQb2ludE9mQ29udGFjdC5kZXNjcmlwdGlvbidcbiAgKSxcbiAgaGlkZGVuOiBmYWxzZSxcbiAgZmllbGRzOiBbQ09OVEFDVFNdLFxufVxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKioqKioqKioqKioqKioqICAgICAgICAgICBQQUdFUyAgICAgICAgICAgICoqKioqKioqKioqKioqKioqXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKi9cbmV4cG9ydCBjb25zdCBERUZBVUxUX0NPTkZJR1VSQVRJT046IEVkaXRvckNvbmZpZyA9IHtcbiAgcGFnZXM6IFtcbiAgICB7XG4gICAgICBsYWJlbEtleTogbWFya2VyKCdlZGl0b3IucmVjb3JkLmZvcm0ucGFnZS5kZXNjcmlwdGlvbicpLFxuICAgICAgc2VjdGlvbnM6IFtcbiAgICAgICAgVElUTEVfU0VDVElPTixcbiAgICAgICAgQ0xBU1NJRklDQVRJT05fU0VDVElPTixcbiAgICAgICAgQUJPVVRfU0VDVElPTixcbiAgICAgICAgR0VPR1JBUEhJQ0FMX0NPVkVSQUdFX1NFQ1RJT04sXG4gICAgICBdLFxuICAgIH0sXG4gICAge1xuICAgICAgbGFiZWxLZXk6IG1hcmtlcignZWRpdG9yLnJlY29yZC5mb3JtLnBhZ2UucmVzb3VyY2VzJyksXG4gICAgICBzZWN0aW9uczogW0FTU09DSUFURURfUkVTT1VSQ0VTX1NFQ1RJT04sIEFOTkVYRVNfU0VDVElPTl0sXG4gICAgfSxcbiAgICB7XG4gICAgICBsYWJlbEtleTogbWFya2VyKCdlZGl0b3IucmVjb3JkLmZvcm0ucGFnZS5hY2Nlc3NBbmRDb250YWN0JyksXG4gICAgICBzZWN0aW9uczogW1xuICAgICAgICBVU0VfQU5EX0FDQ0VTU19DT05ESVRJT05TX1NFQ1RJT04sXG4gICAgICAgIERBVEFfTUFOQUdFUlNfU0VDVElPTixcbiAgICAgICAgTUVUQURBVEFfUE9JTlRfT0ZfQ09OVEFDVF9TRUNUSU9OLFxuICAgICAgXSxcbiAgICB9LFxuICBdLFxufVxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKioqKioqKioqKioqKioqICAgICAgICAgICBMSUNFTlNFUyAgICAgICAgICAgICoqKioqKioqKioqKioqXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKi9cbmV4cG9ydCBjb25zdCBBVkFJTEFCTEVfTElDRU5TRVM6IHN0cmluZ1tdID0gW1xuICAnY2MtYnknLFxuICAnY2MtYnktc2EnLFxuICAnY2MtemVybycsXG4gICdldGFsYWInLFxuICAnZXRhbGFiLXYyJyxcbiAgJ29kYmwnLFxuICAnb2RjLWJ5JyxcbiAgJ3BkZGwnLFxuICAndW5rbm93bicsXG5dXG5cbmV4cG9ydCBjb25zdCBPUEVOX0RBVEFfTElDRU5TRSA9ICdldGFsYWInXG5cbm1hcmtlcignZWRpdG9yLnJlY29yZC5mb3JtLmxpY2Vuc2UuY2MtYnknKVxubWFya2VyKCdlZGl0b3IucmVjb3JkLmZvcm0ubGljZW5zZS5jYy1ieS1zYScpXG5tYXJrZXIoJ2VkaXRvci5yZWNvcmQuZm9ybS5saWNlbnNlLmNjLXplcm8nKVxubWFya2VyKCdlZGl0b3IucmVjb3JkLmZvcm0ubGljZW5zZS5ldGFsYWInKVxubWFya2VyKCdlZGl0b3IucmVjb3JkLmZvcm0ubGljZW5zZS5ldGFsYWItdjInKVxubWFya2VyKCdlZGl0b3IucmVjb3JkLmZvcm0ubGljZW5zZS5vZGJsJylcbm1hcmtlcignZWRpdG9yLnJlY29yZC5mb3JtLmxpY2Vuc2Uub2RjLWJ5Jylcbm1hcmtlcignZWRpdG9yLnJlY29yZC5mb3JtLmxpY2Vuc2UucGRkbCcpXG5tYXJrZXIoJ2VkaXRvci5yZWNvcmQuZm9ybS5saWNlbnNlLnVua25vd24nKVxuXG5leHBvcnQgY29uc3QgTUFYX1VQTE9BRF9TSVpFX01CID0gMTBcbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqKioqKioqKioqKioqKiogICAgICAgIFNQQVRJQUwgU0NPUEUgICAgICAgICAgICAqKioqKioqKioqKipcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqL1xuXG5leHBvcnQgY29uc3QgU1BBVElBTF9TQ09QRVM6IEtleXdvcmRbXSA9IFtcbiAge1xuICAgIGtleTogJ2h0dHA6Ly9pbnNwaXJlLmVjLmV1cm9wYS5ldS9tZXRhZGF0YS1jb2RlbGlzdC9TcGF0aWFsU2NvcGUvbmF0aW9uYWwnLFxuICAgIGxhYmVsOiAnTmF0aW9uYWwnLFxuICAgIGRlc2NyaXB0aW9uOiAnJyxcbiAgICB0eXBlOiAndGhlbWUnLFxuICB9LFxuICB7XG4gICAga2V5OiAnaHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21ldGFkYXRhLWNvZGVsaXN0L1NwYXRpYWxTY29wZS9yZWdpb25hbCcsXG4gICAgbGFiZWw6ICdSZWdpb25hbCcsXG4gICAgZGVzY3JpcHRpb246ICcnLFxuICAgIHR5cGU6ICd0aGVtZScsXG4gIH0sXG5dXG4iXX0=
@@ -2,8 +2,7 @@ export var WizardFieldType;
2
2
  (function (WizardFieldType) {
3
3
  WizardFieldType[WizardFieldType["TEXT"] = 0] = "TEXT";
4
4
  WizardFieldType[WizardFieldType["TEXT_AREA"] = 1] = "TEXT_AREA";
5
- WizardFieldType[WizardFieldType["CHIPS"] = 2] = "CHIPS";
6
- WizardFieldType[WizardFieldType["DATA_PICKER"] = 3] = "DATA_PICKER";
7
- WizardFieldType[WizardFieldType["DROPDOWN"] = 4] = "DROPDOWN";
5
+ WizardFieldType[WizardFieldType["DATA_PICKER"] = 2] = "DATA_PICKER";
6
+ WizardFieldType[WizardFieldType["DROPDOWN"] = 3] = "DROPDOWN";
8
7
  })(WizardFieldType || (WizardFieldType = {}));
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l6YXJkLWZpZWxkLnR5cGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ZlYXR1cmUvZWRpdG9yL3NyYy9saWIvbW9kZWxzL3dpemFyZC1maWVsZC50eXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBTixJQUFZLGVBTVg7QUFORCxXQUFZLGVBQWU7SUFDekIscURBQUksQ0FBQTtJQUNKLCtEQUFTLENBQUE7SUFDVCx1REFBSyxDQUFBO0lBQ0wsbUVBQVcsQ0FBQTtJQUNYLDZEQUFRLENBQUE7QUFDVixDQUFDLEVBTlcsZUFBZSxLQUFmLGVBQWUsUUFNMUIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZW51bSBXaXphcmRGaWVsZFR5cGUge1xuICBURVhULFxuICBURVhUX0FSRUEsXG4gIENISVBTLFxuICBEQVRBX1BJQ0tFUixcbiAgRFJPUERPV04sXG59XG4iXX0=
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l6YXJkLWZpZWxkLnR5cGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ZlYXR1cmUvZWRpdG9yL3NyYy9saWIvbW9kZWxzL3dpemFyZC1maWVsZC50eXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBTixJQUFZLGVBS1g7QUFMRCxXQUFZLGVBQWU7SUFDekIscURBQUksQ0FBQTtJQUNKLCtEQUFTLENBQUE7SUFDVCxtRUFBVyxDQUFBO0lBQ1gsNkRBQVEsQ0FBQTtBQUNWLENBQUMsRUFMVyxlQUFlLEtBQWYsZUFBZSxRQUsxQiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBlbnVtIFdpemFyZEZpZWxkVHlwZSB7XG4gIFRFWFQsXG4gIFRFWFRfQVJFQSxcbiAgREFUQV9QSUNLRVIsXG4gIERST1BET1dOLFxufVxuIl19
@@ -27,7 +27,7 @@ export class AddLayerFromCatalogComponent {
27
27
  ADDLAYER: new ResultsLayoutConfigItem(AddLayerRecordPreviewComponent, 'py-2', '', 'flex flex-col divide-y divide-y-grey-50'),
28
28
  },
29
29
  },
30
- ], ngImport: i0, template: "<div class=\"h-full text-sm\">\n <gn-ui-fuzzy-search></gn-ui-fuzzy-search>\n <gn-ui-results-list-container\n layout=\"ADDLAYER\"\n ></gn-ui-results-list-container>\n</div>\n", styles: ["::ng-deep .mat-tab-body-wrapper{flex-grow:1}\n"], dependencies: [{ kind: "ngmodule", type: FeatureSearchModule }, { kind: "component", type: i2.FuzzySearchComponent, selector: "gn-ui-fuzzy-search", inputs: ["autoFocus"], outputs: ["itemSelected", "inputSubmitted"] }, { kind: "component", type: i3.ResultsListContainerComponent, selector: "gn-ui-results-list-container", inputs: ["metadataQualityDisplay", "layout", "showMore"], outputs: ["mdSelect"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
30
+ ], ngImport: i0, template: "<div class=\"h-full text-sm\">\n <gn-ui-fuzzy-search></gn-ui-fuzzy-search>\n <gn-ui-results-list-container\n layout=\"ADDLAYER\"\n ></gn-ui-results-list-container>\n</div>\n", styles: ["::ng-deep .mat-tab-body-wrapper{flex-grow:1}\n"], dependencies: [{ kind: "ngmodule", type: FeatureSearchModule }, { kind: "component", type: i2.FuzzySearchComponent, selector: "gn-ui-fuzzy-search", inputs: ["autoFocus", "forceTrackPosition"], outputs: ["itemSelected", "inputSubmitted"] }, { kind: "component", type: i3.ResultsListContainerComponent, selector: "gn-ui-results-list-container", inputs: ["metadataQualityDisplay", "layout", "showMore"], outputs: ["mdSelect"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
31
31
  }
32
32
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AddLayerFromCatalogComponent, decorators: [{
33
33
  type: Component,
@@ -7,15 +7,22 @@ import { DropdownSelectorComponent } from '../../../../../../libs/ui/inputs/src'
7
7
  import { ChartViewComponent, TableViewComponent, } from '../../../../../../libs/feature/dataviz/src';
8
8
  import { CommonModule } from '@angular/common';
9
9
  import { TranslateModule } from '@ngx-translate/core';
10
+ import { PopupAlertComponent } from '../../../../../../libs/ui/widgets/src';
10
11
  import * as i0 from "@angular/core";
11
12
  import * as i1 from "../state";
12
13
  import * as i2 from "@angular/common";
13
14
  import * as i3 from "@ngx-translate/core";
14
15
  export class DataViewComponent {
16
+ set exceedsLimit(value) {
17
+ this.excludeWfs$.next(value);
18
+ }
15
19
  constructor(mdViewFacade) {
16
20
  this.mdViewFacade = mdViewFacade;
17
21
  this.displaySource = true;
18
22
  this.chartConfig$ = new BehaviorSubject(null);
23
+ this.cacheActive$ = this.mdViewFacade.isHighUpdateFrequency$.pipe(map((highF) => !highF));
24
+ this.hidePreview = false;
25
+ this.excludeWfs$ = new BehaviorSubject(false);
19
26
  this.compatibleDataLinks$ = combineLatest([
20
27
  this.mdViewFacade.dataLinks$,
21
28
  this.mdViewFacade.geoDataLinks$,
@@ -26,7 +33,7 @@ export class DataViewComponent {
26
33
  }));
27
34
  this.dropdownChoices$ = this.compatibleDataLinks$.pipe(tap((links) => {
28
35
  if (links.indexOf(this.selectedLink$.value) === -1) {
29
- this.selectedLink$.next(links[0]);
36
+ this.selectLink(JSON.stringify(links[0]));
30
37
  }
31
38
  }), map((links) => links.map((link) => ({
32
39
  label: getLinkLabel(link),
@@ -40,10 +47,20 @@ export class DataViewComponent {
40
47
  selectLink(linkAsString) {
41
48
  const link = JSON.parse(linkAsString);
42
49
  link.url = new URL(link.url);
43
- this.selectedLink$.next(link);
50
+ this.excludeWfs$
51
+ .pipe(tap((excludeWfs) => {
52
+ this.hidePreview =
53
+ link['accessServiceProtocol'] === 'wfs' &&
54
+ excludeWfs &&
55
+ this.mode === 'chart'
56
+ ? true
57
+ : false;
58
+ this.selectedLink$.next(link);
59
+ }))
60
+ .subscribe();
44
61
  }
45
62
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DataViewComponent, deps: [{ token: i1.MdViewFacade }], target: i0.ɵɵFactoryTarget.Component }); }
46
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: DataViewComponent, isStandalone: true, selector: "gn-ui-data-view", inputs: { mode: "mode", displaySource: "displaySource" }, outputs: { chartConfig$: "chartConfig$" }, ngImport: i0, template: "<div class=\"w-full h-full flex flex-col p-1\">\n <gn-ui-dropdown-selector\n *ngIf=\"dropdownChoices$ | async as choices\"\n [ngClass]=\"{ hidden: !displaySource }\"\n [title]=\"'table.select.data' | translate\"\n class=\"truncate p-1 -mx-1 self-end mb-1\"\n extraBtnClass=\"!text-primary font-sans font-medium\"\n [choices]=\"choices\"\n (selectValue)=\"selectLink($event)\"\n ></gn-ui-dropdown-selector>\n <div class=\"relative h-[460px]\">\n <gn-ui-table-view\n *ngIf=\"mode === 'table'\"\n [link]=\"selectedLink$ | async\"\n ></gn-ui-table-view>\n <gn-ui-chart-view\n *ngIf=\"mode === 'chart'\"\n (chartConfig$)=\"setChartConfig($event)\"\n [link]=\"selectedLink$ | async\"\n ></gn-ui-chart-view>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "component", type: DropdownSelectorComponent, selector: "gn-ui-dropdown-selector", inputs: ["title", "showTitle", "ariaName", "choices", "selected", "maxRows", "extraBtnClass", "minWidth", "disabled"], outputs: ["selectValue"] }, { kind: "component", type: TableViewComponent, selector: "gn-ui-table-view", inputs: ["link"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }, { kind: "component", type: ChartViewComponent, selector: "gn-ui-chart-view", inputs: ["link", "aggregation", "xProperty", "yProperty", "chartType"], outputs: ["chartConfig$"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
63
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: DataViewComponent, isStandalone: true, selector: "gn-ui-data-view", inputs: { mode: "mode", displaySource: "displaySource", exceedsLimit: "exceedsLimit" }, outputs: { chartConfig$: "chartConfig$" }, ngImport: i0, template: "<div class=\"w-full h-full flex flex-col p-1\">\n <gn-ui-dropdown-selector\n *ngIf=\"dropdownChoices$ | async as choices\"\n [ngClass]=\"{ hidden: !displaySource }\"\n [title]=\"'table.select.data' | translate\"\n class=\"truncate p-1 -mx-1 self-end mb-1\"\n extraBtnClass=\"!text-primary font-sans font-medium\"\n [choices]=\"choices\"\n (selectValue)=\"selectLink($event)\"\n ></gn-ui-dropdown-selector>\n <ng-container *ngIf=\"hidePreview; else dataView\">\n <gn-ui-popup-alert\n type=\"warning\"\n icon=\"matErrorOutlineOutline\"\n class=\"block h-12 p-1\"\n >\n <span translate>record.feature.limit</span>\n </gn-ui-popup-alert>\n </ng-container>\n <ng-template #dataView>\n <div class=\"relative h-[460px]\">\n <gn-ui-table-view\n *ngIf=\"mode === 'table'\"\n [cacheActive]=\"cacheActive$ | async\"\n [link]=\"selectedLink$ | async\"\n ></gn-ui-table-view>\n <gn-ui-chart-view\n *ngIf=\"mode === 'chart'\"\n (chartConfig$)=\"setChartConfig($event)\"\n [cacheActive]=\"cacheActive$ | async\"\n [link]=\"selectedLink$ | async\"\n ></gn-ui-chart-view>\n </div>\n </ng-template>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "component", type: DropdownSelectorComponent, selector: "gn-ui-dropdown-selector", inputs: ["title", "showTitle", "ariaName", "choices", "selected", "maxRows", "extraBtnClass", "minWidth", "disabled"], outputs: ["selectValue"] }, { kind: "component", type: TableViewComponent, selector: "gn-ui-table-view", inputs: ["cacheActive", "link"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }, { kind: "directive", type: i3.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: ChartViewComponent, selector: "gn-ui-chart-view", inputs: ["cacheActive", "link", "aggregation", "xProperty", "yProperty", "chartType"], outputs: ["chartConfig$"] }, { kind: "component", type: PopupAlertComponent, selector: "gn-ui-popup-alert", inputs: ["icon", "type", "position"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
47
64
  }
48
65
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DataViewComponent, decorators: [{
49
66
  type: Component,
@@ -53,12 +70,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
53
70
  TableViewComponent,
54
71
  TranslateModule,
55
72
  ChartViewComponent,
56
- ], template: "<div class=\"w-full h-full flex flex-col p-1\">\n <gn-ui-dropdown-selector\n *ngIf=\"dropdownChoices$ | async as choices\"\n [ngClass]=\"{ hidden: !displaySource }\"\n [title]=\"'table.select.data' | translate\"\n class=\"truncate p-1 -mx-1 self-end mb-1\"\n extraBtnClass=\"!text-primary font-sans font-medium\"\n [choices]=\"choices\"\n (selectValue)=\"selectLink($event)\"\n ></gn-ui-dropdown-selector>\n <div class=\"relative h-[460px]\">\n <gn-ui-table-view\n *ngIf=\"mode === 'table'\"\n [link]=\"selectedLink$ | async\"\n ></gn-ui-table-view>\n <gn-ui-chart-view\n *ngIf=\"mode === 'chart'\"\n (chartConfig$)=\"setChartConfig($event)\"\n [link]=\"selectedLink$ | async\"\n ></gn-ui-chart-view>\n </div>\n</div>\n" }]
73
+ PopupAlertComponent,
74
+ ], template: "<div class=\"w-full h-full flex flex-col p-1\">\n <gn-ui-dropdown-selector\n *ngIf=\"dropdownChoices$ | async as choices\"\n [ngClass]=\"{ hidden: !displaySource }\"\n [title]=\"'table.select.data' | translate\"\n class=\"truncate p-1 -mx-1 self-end mb-1\"\n extraBtnClass=\"!text-primary font-sans font-medium\"\n [choices]=\"choices\"\n (selectValue)=\"selectLink($event)\"\n ></gn-ui-dropdown-selector>\n <ng-container *ngIf=\"hidePreview; else dataView\">\n <gn-ui-popup-alert\n type=\"warning\"\n icon=\"matErrorOutlineOutline\"\n class=\"block h-12 p-1\"\n >\n <span translate>record.feature.limit</span>\n </gn-ui-popup-alert>\n </ng-container>\n <ng-template #dataView>\n <div class=\"relative h-[460px]\">\n <gn-ui-table-view\n *ngIf=\"mode === 'table'\"\n [cacheActive]=\"cacheActive$ | async\"\n [link]=\"selectedLink$ | async\"\n ></gn-ui-table-view>\n <gn-ui-chart-view\n *ngIf=\"mode === 'chart'\"\n (chartConfig$)=\"setChartConfig($event)\"\n [cacheActive]=\"cacheActive$ | async\"\n [link]=\"selectedLink$ | async\"\n ></gn-ui-chart-view>\n </div>\n </ng-template>\n</div>\n" }]
57
75
  }], ctorParameters: () => [{ type: i1.MdViewFacade }], propDecorators: { mode: [{
58
76
  type: Input
59
77
  }], displaySource: [{
60
78
  type: Input
79
+ }], exceedsLimit: [{
80
+ type: Input
61
81
  }], chartConfig$: [{
62
82
  type: Output
63
83
  }] } });
64
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZmVhdHVyZS9yZWNvcmQvc3JjL2xpYi9kYXRhLXZpZXcvZGF0YS12aWV3LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZmVhdHVyZS9yZWNvcmQvc3JjL2xpYi9kYXRhLXZpZXcvZGF0YS12aWV3LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULEtBQUssRUFDTCxNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUE7QUFDdEIsT0FBTyxFQUFFLFlBQVksRUFBRSxlQUFlLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQTtBQUN0RixPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQTtBQUNyRCxPQUFPLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxVQUFVLENBQUE7QUFHdkMsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sc0NBQXNDLENBQUE7QUFDaEYsT0FBTyxFQUNMLGtCQUFrQixFQUNsQixrQkFBa0IsR0FDbkIsTUFBTSw0Q0FBNEMsQ0FBQTtBQUNuRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDOUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFBOzs7OztBQWdCckQsTUFBTSxPQUFPLGlCQUFpQjtJQTZCNUIsWUFBb0IsWUFBMEI7UUFBMUIsaUJBQVksR0FBWixZQUFZLENBQWM7UUEzQnJDLGtCQUFhLEdBQUcsSUFBSSxDQUFBO1FBQ25CLGlCQUFZLEdBQUcsSUFBSSxlQUFlLENBQTRCLElBQUksQ0FBQyxDQUFBO1FBQzdFLHlCQUFvQixHQUFHLGFBQWEsQ0FBQztZQUNuQyxJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVU7WUFDNUIsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhO1NBQ2hDLENBQUMsQ0FBQyxJQUFJLENBQ0wsR0FBRyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsWUFBWSxDQUFDLEVBQUUsRUFBRTtZQUNoQyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsU0FBUyxFQUFFLEdBQUcsWUFBWSxDQUFDLENBQUE7WUFDekMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsR0FBRyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtZQUN6RCxPQUFPLENBQUMsQ0FBQTtRQUNWLENBQUMsQ0FBQyxDQUNILENBQUE7UUFDRCxxQkFBZ0IsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUMvQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNaLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQ25ELElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO1lBQ25DLENBQUM7UUFDSCxDQUFDLENBQUMsRUFDRixHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUNaLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDbkIsS0FBSyxFQUFFLFlBQVksQ0FBQyxJQUFJLENBQUM7WUFDekIsS0FBSyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDO1NBQzVCLENBQUMsQ0FBQyxDQUNKLENBQ0YsQ0FBQTtRQUNELGtCQUFhLEdBQUcsSUFBSSxlQUFlLENBQXdCLElBQUksQ0FBQyxDQUFBO0lBRWYsQ0FBQztJQUVsRCxjQUFjLENBQUMsS0FBZ0M7UUFDN0MsSUFBSSxDQUFDLFlBQVksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDekMsQ0FBQztJQUVELFVBQVUsQ0FBQyxZQUFvQjtRQUM3QixNQUFNLElBQUksR0FBMEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQTtRQUM1RCxJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTtRQUM1QixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUMvQixDQUFDOytHQXZDVSxpQkFBaUI7bUdBQWpCLGlCQUFpQixnTENsQzlCLCt3QkFzQkEseURES0ksWUFBWSxzUkFDWix5QkFBeUIscU5BQ3pCLGtCQUFrQiw4RUFDbEIsZUFBZSw0RkFDZixrQkFBa0I7OzRGQUdULGlCQUFpQjtrQkFkN0IsU0FBUzsrQkFDRSxpQkFBaUIsbUJBR1YsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWix5QkFBeUI7d0JBQ3pCLGtCQUFrQjt3QkFDbEIsZUFBZTt3QkFDZixrQkFBa0I7cUJBQ25CO2lGQUdRLElBQUk7c0JBQVosS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNJLFlBQVk7c0JBQXJCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBJbnB1dCxcbiAgT3V0cHV0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgZ2V0TGlua0xhYmVsLCBnZXRMaW5rUHJpb3JpdHkgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3V0aWwvc2hhcmVkL3NyYydcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCB9IGZyb20gJ3J4anMnXG5pbXBvcnQgeyBtYXAsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJ1xuaW1wb3J0IHsgTWRWaWV3RmFjYWRlIH0gZnJvbSAnLi4vc3RhdGUnXG5pbXBvcnQgeyBEYXRhdml6Q29uZmlndXJhdGlvbk1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vZG9tYWluL3NyYy9saWIvbW9kZWwvZGF0YXZpei9kYXRhdml6LWNvbmZpZ3VyYXRpb24ubW9kZWwnXG5pbXBvcnQgeyBEYXRhc2V0T25saW5lUmVzb3VyY2UgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9tb2RlbC9yZWNvcmQnXG5pbXBvcnQgeyBEcm9wZG93blNlbGVjdG9yQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS9pbnB1dHMvc3JjJ1xuaW1wb3J0IHtcbiAgQ2hhcnRWaWV3Q29tcG9uZW50LFxuICBUYWJsZVZpZXdDb21wb25lbnQsXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZmVhdHVyZS9kYXRhdml6L3NyYydcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbidcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2duLXVpLWRhdGEtdmlldycsXG4gIHRlbXBsYXRlVXJsOiAnLi9kYXRhLXZpZXcuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kYXRhLXZpZXcuY29tcG9uZW50LmNzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBEcm9wZG93blNlbGVjdG9yQ29tcG9uZW50LFxuICAgIFRhYmxlVmlld0NvbXBvbmVudCxcbiAgICBUcmFuc2xhdGVNb2R1bGUsXG4gICAgQ2hhcnRWaWV3Q29tcG9uZW50LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBEYXRhVmlld0NvbXBvbmVudCB7XG4gIEBJbnB1dCgpIG1vZGU6ICd0YWJsZScgfCAnY2hhcnQnXG4gIEBJbnB1dCgpIGRpc3BsYXlTb3VyY2UgPSB0cnVlXG4gIEBPdXRwdXQoKSBjaGFydENvbmZpZyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PERhdGF2aXpDb25maWd1cmF0aW9uTW9kZWw+KG51bGwpXG4gIGNvbXBhdGlibGVEYXRhTGlua3MkID0gY29tYmluZUxhdGVzdChbXG4gICAgdGhpcy5tZFZpZXdGYWNhZGUuZGF0YUxpbmtzJCxcbiAgICB0aGlzLm1kVmlld0ZhY2FkZS5nZW9EYXRhTGlua3MkLFxuICBdKS5waXBlKFxuICAgIG1hcCgoW2RhdGFMaW5rcywgZ2VvRGF0YUxpbmtzXSkgPT4ge1xuICAgICAgY29uc3QgYSA9IFsuLi5kYXRhTGlua3MsIC4uLmdlb0RhdGFMaW5rc11cbiAgICAgIGEuc29ydCgoYSwgYikgPT4gZ2V0TGlua1ByaW9yaXR5KGIpIC0gZ2V0TGlua1ByaW9yaXR5KGEpKVxuICAgICAgcmV0dXJuIGFcbiAgICB9KVxuICApXG4gIGRyb3Bkb3duQ2hvaWNlcyQgPSB0aGlzLmNvbXBhdGlibGVEYXRhTGlua3MkLnBpcGUoXG4gICAgdGFwKChsaW5rcykgPT4ge1xuICAgICAgaWYgKGxpbmtzLmluZGV4T2YodGhpcy5zZWxlY3RlZExpbmskLnZhbHVlKSA9PT0gLTEpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZExpbmskLm5leHQobGlua3NbMF0pXG4gICAgICB9XG4gICAgfSksXG4gICAgbWFwKChsaW5rcykgPT5cbiAgICAgIGxpbmtzLm1hcCgobGluaykgPT4gKHtcbiAgICAgICAgbGFiZWw6IGdldExpbmtMYWJlbChsaW5rKSxcbiAgICAgICAgdmFsdWU6IEpTT04uc3RyaW5naWZ5KGxpbmspLFxuICAgICAgfSkpXG4gICAgKVxuICApXG4gIHNlbGVjdGVkTGluayQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PERhdGFzZXRPbmxpbmVSZXNvdXJjZT4obnVsbClcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIG1kVmlld0ZhY2FkZTogTWRWaWV3RmFjYWRlKSB7fVxuXG4gIHNldENoYXJ0Q29uZmlnKGV2ZW50OiBEYXRhdml6Q29uZmlndXJhdGlvbk1vZGVsKSB7XG4gICAgdGhpcy5tZFZpZXdGYWNhZGUuc2V0Q2hhcnRDb25maWcoZXZlbnQpXG4gIH1cblxuICBzZWxlY3RMaW5rKGxpbmtBc1N0cmluZzogc3RyaW5nKSB7XG4gICAgY29uc3QgbGluazogRGF0YXNldE9ubGluZVJlc291cmNlID0gSlNPTi5wYXJzZShsaW5rQXNTdHJpbmcpXG4gICAgbGluay51cmwgPSBuZXcgVVJMKGxpbmsudXJsKVxuICAgIHRoaXMuc2VsZWN0ZWRMaW5rJC5uZXh0KGxpbmspXG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJ3LWZ1bGwgaC1mdWxsIGZsZXggZmxleC1jb2wgcC0xXCI+XG4gIDxnbi11aS1kcm9wZG93bi1zZWxlY3RvclxuICAgICpuZ0lmPVwiZHJvcGRvd25DaG9pY2VzJCB8IGFzeW5jIGFzIGNob2ljZXNcIlxuICAgIFtuZ0NsYXNzXT1cInsgaGlkZGVuOiAhZGlzcGxheVNvdXJjZSB9XCJcbiAgICBbdGl0bGVdPVwiJ3RhYmxlLnNlbGVjdC5kYXRhJyB8IHRyYW5zbGF0ZVwiXG4gICAgY2xhc3M9XCJ0cnVuY2F0ZSBwLTEgLW14LTEgc2VsZi1lbmQgbWItMVwiXG4gICAgZXh0cmFCdG5DbGFzcz1cIiF0ZXh0LXByaW1hcnkgZm9udC1zYW5zIGZvbnQtbWVkaXVtXCJcbiAgICBbY2hvaWNlc109XCJjaG9pY2VzXCJcbiAgICAoc2VsZWN0VmFsdWUpPVwic2VsZWN0TGluaygkZXZlbnQpXCJcbiAgPjwvZ24tdWktZHJvcGRvd24tc2VsZWN0b3I+XG4gIDxkaXYgY2xhc3M9XCJyZWxhdGl2ZSBoLVs0NjBweF1cIj5cbiAgICA8Z24tdWktdGFibGUtdmlld1xuICAgICAgKm5nSWY9XCJtb2RlID09PSAndGFibGUnXCJcbiAgICAgIFtsaW5rXT1cInNlbGVjdGVkTGluayQgfCBhc3luY1wiXG4gICAgPjwvZ24tdWktdGFibGUtdmlldz5cbiAgICA8Z24tdWktY2hhcnQtdmlld1xuICAgICAgKm5nSWY9XCJtb2RlID09PSAnY2hhcnQnXCJcbiAgICAgIChjaGFydENvbmZpZyQpPVwic2V0Q2hhcnRDb25maWcoJGV2ZW50KVwiXG4gICAgICBbbGlua109XCJzZWxlY3RlZExpbmskIHwgYXN5bmNcIlxuICAgID48L2duLXVpLWNoYXJ0LXZpZXc+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
84
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZmVhdHVyZS9yZWNvcmQvc3JjL2xpYi9kYXRhLXZpZXcvZGF0YS12aWV3LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZmVhdHVyZS9yZWNvcmQvc3JjL2xpYi9kYXRhLXZpZXcvZGF0YS12aWV3LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULEtBQUssRUFDTCxNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUE7QUFDdEIsT0FBTyxFQUFFLFlBQVksRUFBRSxlQUFlLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQTtBQUN0RixPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBTSxNQUFNLE1BQU0sQ0FBQTtBQUN6RCxPQUFPLEVBQXdCLEdBQUcsRUFBYSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUMxRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sVUFBVSxDQUFBO0FBR3ZDLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFBO0FBQ2hGLE9BQU8sRUFDTCxrQkFBa0IsRUFDbEIsa0JBQWtCLEdBQ25CLE1BQU0sNENBQTRDLENBQUE7QUFDbkQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQzlDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUNyRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQTs7Ozs7QUFpQjNFLE1BQU0sT0FBTyxpQkFBaUI7SUFHNUIsSUFBYSxZQUFZLENBQUMsS0FBYztRQUN0QyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUM5QixDQUFDO0lBZ0NE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QkFBaUIsOE1DcEM5Qix1c0NBbUNBLHlERFBJLFlBQVksc1JBQ1oseUJBQXlCLHFOQUN6QixrQkFBa0IsNkZBQ2xCLGVBQWUsbU9BQ2Ysa0JBQWtCLCtLQUNsQixtQkFBbUI7OzRGQUdWLGlCQUFpQjtrQkFmN0IsU0FBUzsrQkFDRSxpQkFBaUIsbUJBR1YsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWix5QkFBeUI7d0JBQ3pCLGtCQUFrQjt3QkFDbEIsZUFBZTt3QkFDZixrQkFBa0I7d0JBQ2xCLG1CQUFtQjtxQkFDcEI7aUZBR1EsSUFBSTtzQkFBWixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ08sWUFBWTtzQkFBeEIsS0FBSztnQkFHSSxZQUFZO3NCQUFyQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIE91dHB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IGdldExpbmtMYWJlbCwgZ2V0TGlua1ByaW9yaXR5IH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91dGlsL3NoYXJlZC9zcmMnXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIG9mIH0gZnJvbSAncnhqcydcbmltcG9ydCB7IGNhdGNoRXJyb3IsIGZpbmFsaXplLCBtYXAsIHN3aXRjaE1hcCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnXG5pbXBvcnQgeyBNZFZpZXdGYWNhZGUgfSBmcm9tICcuLi9zdGF0ZSdcbmltcG9ydCB7IERhdGF2aXpDb25maWd1cmF0aW9uTW9kZWwgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9tb2RlbC9kYXRhdml6L2RhdGF2aXotY29uZmlndXJhdGlvbi5tb2RlbCdcbmltcG9ydCB7IERhdGFzZXRPbmxpbmVSZXNvdXJjZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL2RvbWFpbi9zcmMvbGliL21vZGVsL3JlY29yZCdcbmltcG9ydCB7IERyb3Bkb3duU2VsZWN0b3JDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL2lucHV0cy9zcmMnXG5pbXBvcnQge1xuICBDaGFydFZpZXdDb21wb25lbnQsXG4gIFRhYmxlVmlld0NvbXBvbmVudCxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9mZWF0dXJlL2RhdGF2aXovc3JjJ1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSdcbmltcG9ydCB7IFBvcHVwQWxlcnRDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL3dpZGdldHMvc3JjJ1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdnbi11aS1kYXRhLXZpZXcnLFxuICB0ZW1wbGF0ZVVybDogJy4vZGF0YS12aWV3LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZGF0YS12aWV3LmNvbXBvbmVudC5jc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgRHJvcGRvd25TZWxlY3RvckNvbXBvbmVudCxcbiAgICBUYWJsZVZpZXdDb21wb25lbnQsXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxuICAgIENoYXJ0Vmlld0NvbXBvbmVudCxcbiAgICBQb3B1cEFsZXJ0Q29tcG9uZW50LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBEYXRhVmlld0NvbXBvbmVudCB7XG4gIEBJbnB1dCgpIG1vZGU6ICd0YWJsZScgfCAnY2hhcnQnXG4gIEBJbnB1dCgpIGRpc3BsYXlTb3VyY2UgPSB0cnVlXG4gIEBJbnB1dCgpIHNldCBleGNlZWRzTGltaXQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmV4Y2x1ZGVXZnMkLm5leHQodmFsdWUpXG4gIH1cbiAgQE91dHB1dCgpIGNoYXJ0Q29uZmlnJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8RGF0YXZpekNvbmZpZ3VyYXRpb25Nb2RlbD4obnVsbClcbiAgY2FjaGVBY3RpdmUkID0gdGhpcy5tZFZpZXdGYWNhZGUuaXNIaWdoVXBkYXRlRnJlcXVlbmN5JC5waXBlKFxuICAgIG1hcCgoaGlnaEYpID0+ICFoaWdoRilcbiAgKVxuICBoaWRlUHJldmlldyA9IGZhbHNlXG4gIGV4Y2x1ZGVXZnMkID0gbmV3IEJlaGF2aW9yU3ViamVjdChmYWxzZSlcbiAgY29tcGF0aWJsZURhdGFMaW5rcyQgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICB0aGlzLm1kVmlld0ZhY2FkZS5kYXRhTGlua3MkLFxuICAgIHRoaXMubWRWaWV3RmFjYWRlLmdlb0RhdGFMaW5rcyQsXG4gIF0pLnBpcGUoXG4gICAgbWFwKChbZGF0YUxpbmtzLCBnZW9EYXRhTGlua3NdKSA9PiB7XG4gICAgICBjb25zdCBhID0gWy4uLmRhdGFMaW5rcywgLi4uZ2VvRGF0YUxpbmtzXVxuICAgICAgYS5zb3J0KChhLCBiKSA9PiBnZXRMaW5rUHJpb3JpdHkoYikgLSBnZXRMaW5rUHJpb3JpdHkoYSkpXG4gICAgICByZXR1cm4gYVxuICAgIH0pXG4gIClcbiAgZHJvcGRvd25DaG9pY2VzJCA9IHRoaXMuY29tcGF0aWJsZURhdGFMaW5rcyQucGlwZShcbiAgICB0YXAoKGxpbmtzKSA9PiB7XG4gICAgICBpZiAobGlua3MuaW5kZXhPZih0aGlzLnNlbGVjdGVkTGluayQudmFsdWUpID09PSAtMSkge1xuICAgICAgICB0aGlzLnNlbGVjdExpbmsoSlNPTi5zdHJpbmdpZnkobGlua3NbMF0pKVxuICAgICAgfVxuICAgIH0pLFxuICAgIG1hcCgobGlua3MpID0+XG4gICAgICBsaW5rcy5tYXAoKGxpbmspID0+ICh7XG4gICAgICAgIGxhYmVsOiBnZXRMaW5rTGFiZWwobGluayksXG4gICAgICAgIHZhbHVlOiBKU09OLnN0cmluZ2lmeShsaW5rKSxcbiAgICAgIH0pKVxuICAgIClcbiAgKVxuICBzZWxlY3RlZExpbmskID0gbmV3IEJlaGF2aW9yU3ViamVjdDxEYXRhc2V0T25saW5lUmVzb3VyY2U+KG51bGwpXG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBtZFZpZXdGYWNhZGU6IE1kVmlld0ZhY2FkZSkge31cblxuICBzZXRDaGFydENvbmZpZyhldmVudDogRGF0YXZpekNvbmZpZ3VyYXRpb25Nb2RlbCkge1xuICAgIHRoaXMubWRWaWV3RmFjYWRlLnNldENoYXJ0Q29uZmlnKGV2ZW50KVxuICB9XG5cbiAgc2VsZWN0TGluayhsaW5rQXNTdHJpbmc6IHN0cmluZykge1xuICAgIGNvbnN0IGxpbms6IERhdGFzZXRPbmxpbmVSZXNvdXJjZSA9IEpTT04ucGFyc2UobGlua0FzU3RyaW5nKVxuICAgIGxpbmsudXJsID0gbmV3IFVSTChsaW5rLnVybClcbiAgICB0aGlzLmV4Y2x1ZGVXZnMkXG4gICAgICAucGlwZShcbiAgICAgICAgdGFwKChleGNsdWRlV2ZzKSA9PiB7XG4gICAgICAgICAgdGhpcy5oaWRlUHJldmlldyA9XG4gICAgICAgICAgICBsaW5rWydhY2Nlc3NTZXJ2aWNlUHJvdG9jb2wnXSA9PT0gJ3dmcycgJiZcbiAgICAgICAgICAgIGV4Y2x1ZGVXZnMgJiZcbiAgICAgICAgICAgIHRoaXMubW9kZSA9PT0gJ2NoYXJ0J1xuICAgICAgICAgICAgICA/IHRydWVcbiAgICAgICAgICAgICAgOiBmYWxzZVxuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRMaW5rJC5uZXh0KGxpbmspXG4gICAgICAgIH0pXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKClcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInctZnVsbCBoLWZ1bGwgZmxleCBmbGV4LWNvbCBwLTFcIj5cbiAgPGduLXVpLWRyb3Bkb3duLXNlbGVjdG9yXG4gICAgKm5nSWY9XCJkcm9wZG93bkNob2ljZXMkIHwgYXN5bmMgYXMgY2hvaWNlc1wiXG4gICAgW25nQ2xhc3NdPVwieyBoaWRkZW46ICFkaXNwbGF5U291cmNlIH1cIlxuICAgIFt0aXRsZV09XCIndGFibGUuc2VsZWN0LmRhdGEnIHwgdHJhbnNsYXRlXCJcbiAgICBjbGFzcz1cInRydW5jYXRlIHAtMSAtbXgtMSBzZWxmLWVuZCBtYi0xXCJcbiAgICBleHRyYUJ0bkNsYXNzPVwiIXRleHQtcHJpbWFyeSBmb250LXNhbnMgZm9udC1tZWRpdW1cIlxuICAgIFtjaG9pY2VzXT1cImNob2ljZXNcIlxuICAgIChzZWxlY3RWYWx1ZSk9XCJzZWxlY3RMaW5rKCRldmVudClcIlxuICA+PC9nbi11aS1kcm9wZG93bi1zZWxlY3Rvcj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImhpZGVQcmV2aWV3OyBlbHNlIGRhdGFWaWV3XCI+XG4gICAgPGduLXVpLXBvcHVwLWFsZXJ0XG4gICAgICB0eXBlPVwid2FybmluZ1wiXG4gICAgICBpY29uPVwibWF0RXJyb3JPdXRsaW5lT3V0bGluZVwiXG4gICAgICBjbGFzcz1cImJsb2NrIGgtMTIgcC0xXCJcbiAgICA+XG4gICAgICA8c3BhbiB0cmFuc2xhdGU+cmVjb3JkLmZlYXR1cmUubGltaXQ8L3NwYW4+XG4gICAgPC9nbi11aS1wb3B1cC1hbGVydD5cbiAgPC9uZy1jb250YWluZXI+XG4gIDxuZy10ZW1wbGF0ZSAjZGF0YVZpZXc+XG4gICAgPGRpdiBjbGFzcz1cInJlbGF0aXZlIGgtWzQ2MHB4XVwiPlxuICAgICAgPGduLXVpLXRhYmxlLXZpZXdcbiAgICAgICAgKm5nSWY9XCJtb2RlID09PSAndGFibGUnXCJcbiAgICAgICAgW2NhY2hlQWN0aXZlXT1cImNhY2hlQWN0aXZlJCB8IGFzeW5jXCJcbiAgICAgICAgW2xpbmtdPVwic2VsZWN0ZWRMaW5rJCB8IGFzeW5jXCJcbiAgICAgID48L2duLXVpLXRhYmxlLXZpZXc+XG4gICAgICA8Z24tdWktY2hhcnQtdmlld1xuICAgICAgICAqbmdJZj1cIm1vZGUgPT09ICdjaGFydCdcIlxuICAgICAgICAoY2hhcnRDb25maWckKT1cInNldENoYXJ0Q29uZmlnKCRldmVudClcIlxuICAgICAgICBbY2FjaGVBY3RpdmVdPVwiY2FjaGVBY3RpdmUkIHwgYXN5bmNcIlxuICAgICAgICBbbGlua109XCJzZWxlY3RlZExpbmskIHwgYXN5bmNcIlxuICAgICAgPjwvZ24tdWktY2hhcnQtdmlldz5cbiAgICA8L2Rpdj5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvZGl2PlxuIl19