@igo2/geo 18.0.0 → 18.0.1-next.2

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 (510) hide show
  1. package/fesm2022/igo2-geo.mjs +684 -709
  2. package/fesm2022/igo2-geo.mjs.map +1 -1
  3. package/lib/offline/geoDB/geoDB.service.d.ts +1 -1
  4. package/lib/offline/layerDB/layerDB.service.d.ts +1 -1
  5. package/lib/style/style-list/style-list.provider.d.ts +1 -8
  6. package/lib/style/style-list/style-list.service.d.ts +1 -1
  7. package/package.json +15 -17
  8. package/src/lib/layer/layer-list/layer-list.theme.scss +2 -1
  9. package/src/lib/map/menu-button/menu-button.theming.scss +3 -3
  10. package/src/style/style.scss +1 -1
  11. package/esm2022/igo2-geo.mjs +0 -5
  12. package/esm2022/lib/catalog/catalog-browser/catalog-browser-group.component.mjs +0 -234
  13. package/esm2022/lib/catalog/catalog-browser/catalog-browser-layer.component.mjs +0 -272
  14. package/esm2022/lib/catalog/catalog-browser/catalog-browser.component.mjs +0 -246
  15. package/esm2022/lib/catalog/catalog-browser/catalog-browser.module.mjs +0 -19
  16. package/esm2022/lib/catalog/catalog-library/add-catalog-dialog.component.mjs +0 -136
  17. package/esm2022/lib/catalog/catalog-library/catalog-library-item.component.mjs +0 -60
  18. package/esm2022/lib/catalog/catalog-library/catalog-library.component.mjs +0 -232
  19. package/esm2022/lib/catalog/catalog-library/catalog-library.module.mjs +0 -24
  20. package/esm2022/lib/catalog/catalog-library/index.mjs +0 -4
  21. package/esm2022/lib/catalog/catalog.module.mjs +0 -26
  22. package/esm2022/lib/catalog/index.mjs +0 -6
  23. package/esm2022/lib/catalog/shared/catalog.abstract.mjs +0 -32
  24. package/esm2022/lib/catalog/shared/catalog.enum.mjs +0 -16
  25. package/esm2022/lib/catalog/shared/catalog.interface.mjs +0 -2
  26. package/esm2022/lib/catalog/shared/catalog.service.mjs +0 -706
  27. package/esm2022/lib/catalog/shared/catalogs.mjs +0 -75
  28. package/esm2022/lib/catalog/shared/index.mjs +0 -5
  29. package/esm2022/lib/datasource/index.mjs +0 -3
  30. package/esm2022/lib/datasource/shared/capabilities.interface.mjs +0 -17
  31. package/esm2022/lib/datasource/shared/capabilities.service.mjs +0 -441
  32. package/esm2022/lib/datasource/shared/datasource.service.mjs +0 -258
  33. package/esm2022/lib/datasource/shared/datasources/any-datasource.interface.mjs +0 -2
  34. package/esm2022/lib/datasource/shared/datasources/any-datasource.mjs +0 -2
  35. package/esm2022/lib/datasource/shared/datasources/arcgisrest-datasource.interface.mjs +0 -2
  36. package/esm2022/lib/datasource/shared/datasources/arcgisrest-datasource.mjs +0 -222
  37. package/esm2022/lib/datasource/shared/datasources/carto-datasource.interface.mjs +0 -2
  38. package/esm2022/lib/datasource/shared/datasources/carto-datasource.mjs +0 -118
  39. package/esm2022/lib/datasource/shared/datasources/cluster-datasource.interface.mjs +0 -2
  40. package/esm2022/lib/datasource/shared/datasources/cluster-datasource.mjs +0 -24
  41. package/esm2022/lib/datasource/shared/datasources/data.service.mjs +0 -3
  42. package/esm2022/lib/datasource/shared/datasources/datasource.interface.mjs +0 -2
  43. package/esm2022/lib/datasource/shared/datasources/datasource.mjs +0 -41
  44. package/esm2022/lib/datasource/shared/datasources/feature-datasource.interface.mjs +0 -2
  45. package/esm2022/lib/datasource/shared/datasources/feature-datasource.mjs +0 -52
  46. package/esm2022/lib/datasource/shared/datasources/imagearcgisrest-datasource.interface.mjs +0 -2
  47. package/esm2022/lib/datasource/shared/datasources/imagearcgisrest-datasource.mjs +0 -70
  48. package/esm2022/lib/datasource/shared/datasources/index.mjs +0 -36
  49. package/esm2022/lib/datasource/shared/datasources/mvt-datasource.interface.mjs +0 -2
  50. package/esm2022/lib/datasource/shared/datasources/mvt-datasource.mjs +0 -33
  51. package/esm2022/lib/datasource/shared/datasources/osm-datasource.interface.mjs +0 -2
  52. package/esm2022/lib/datasource/shared/datasources/osm-datasource.mjs +0 -14
  53. package/esm2022/lib/datasource/shared/datasources/tilearcgisrest-datasource.interface.mjs +0 -2
  54. package/esm2022/lib/datasource/shared/datasources/tilearcgisrest-datasource.mjs +0 -60
  55. package/esm2022/lib/datasource/shared/datasources/tiledebug-datasource.interface.mjs +0 -2
  56. package/esm2022/lib/datasource/shared/datasources/tiledebug-datasource.mjs +0 -17
  57. package/esm2022/lib/datasource/shared/datasources/websocket-datasource.interface.mjs +0 -2
  58. package/esm2022/lib/datasource/shared/datasources/websocket-datasource.mjs +0 -56
  59. package/esm2022/lib/datasource/shared/datasources/wfs-datasource.interface.mjs +0 -2
  60. package/esm2022/lib/datasource/shared/datasources/wfs-datasource.mjs +0 -137
  61. package/esm2022/lib/datasource/shared/datasources/wfs.service.mjs +0 -170
  62. package/esm2022/lib/datasource/shared/datasources/wms-datasource.interface.mjs +0 -2
  63. package/esm2022/lib/datasource/shared/datasources/wms-datasource.mjs +0 -227
  64. package/esm2022/lib/datasource/shared/datasources/wms-wfs.utils.mjs +0 -224
  65. package/esm2022/lib/datasource/shared/datasources/wmts-datasource.interface.mjs +0 -2
  66. package/esm2022/lib/datasource/shared/datasources/wmts-datasource.mjs +0 -18
  67. package/esm2022/lib/datasource/shared/datasources/xyz-datasource.interface.mjs +0 -2
  68. package/esm2022/lib/datasource/shared/datasources/xyz-datasource.mjs +0 -11
  69. package/esm2022/lib/datasource/shared/index.mjs +0 -6
  70. package/esm2022/lib/datasource/shared/options/index.mjs +0 -5
  71. package/esm2022/lib/datasource/shared/options/options-api.interface.mjs +0 -2
  72. package/esm2022/lib/datasource/shared/options/options-api.providers.mjs +0 -15
  73. package/esm2022/lib/datasource/shared/options/options-api.service.mjs +0 -85
  74. package/esm2022/lib/datasource/shared/options/options.service.mjs +0 -3
  75. package/esm2022/lib/datasource/utils/index.mjs +0 -2
  76. package/esm2022/lib/datasource/utils/tilegrid.mjs +0 -20
  77. package/esm2022/lib/directions/directions-buttons/directions-buttons.component.mjs +0 -246
  78. package/esm2022/lib/directions/directions-buttons/index.mjs +0 -2
  79. package/esm2022/lib/directions/directions-inputs/directions-inputs.component.mjs +0 -312
  80. package/esm2022/lib/directions/directions-inputs/index.mjs +0 -2
  81. package/esm2022/lib/directions/directions-results/directions-results.component.mjs +0 -192
  82. package/esm2022/lib/directions/directions-results/index.mjs +0 -2
  83. package/esm2022/lib/directions/directions-sources/directions-source.interface.mjs +0 -5
  84. package/esm2022/lib/directions/directions-sources/directions-source.mjs +0 -3
  85. package/esm2022/lib/directions/directions-sources/directions-source.provider.mjs +0 -23
  86. package/esm2022/lib/directions/directions-sources/index.mjs +0 -5
  87. package/esm2022/lib/directions/directions-sources/osrm-directions-source.mjs +0 -159
  88. package/esm2022/lib/directions/directions.component.mjs +0 -437
  89. package/esm2022/lib/directions/directions.module.mjs +0 -46
  90. package/esm2022/lib/directions/directions.provider.mjs +0 -16
  91. package/esm2022/lib/directions/index.mjs +0 -8
  92. package/esm2022/lib/directions/shared/directions-source.service.mjs +0 -18
  93. package/esm2022/lib/directions/shared/directions.enum.mjs +0 -72
  94. package/esm2022/lib/directions/shared/directions.interface.mjs +0 -2
  95. package/esm2022/lib/directions/shared/directions.service.mjs +0 -239
  96. package/esm2022/lib/directions/shared/directions.utils.mjs +0 -522
  97. package/esm2022/lib/directions/shared/index.mjs +0 -6
  98. package/esm2022/lib/directions/shared/store.mjs +0 -21
  99. package/esm2022/lib/download/download-button/download-button.component.mjs +0 -48
  100. package/esm2022/lib/download/download-button/index.mjs +0 -2
  101. package/esm2022/lib/download/download.module.mjs +0 -24
  102. package/esm2022/lib/download/index.mjs +0 -3
  103. package/esm2022/lib/download/shared/download.interface.mjs +0 -2
  104. package/esm2022/lib/download/shared/download.service.mjs +0 -67
  105. package/esm2022/lib/download/shared/index.mjs +0 -3
  106. package/esm2022/lib/draw/draw/draw-layer-popup.component.mjs +0 -42
  107. package/esm2022/lib/draw/draw/draw-popup.component.mjs +0 -421
  108. package/esm2022/lib/draw/draw/draw-shorcuts.component.mjs +0 -28
  109. package/esm2022/lib/draw/draw/draw.component.mjs +0 -1136
  110. package/esm2022/lib/draw/draw/draw.module.mjs +0 -19
  111. package/esm2022/lib/draw/drawingTool.module.mjs +0 -18
  112. package/esm2022/lib/draw/index.mjs +0 -3
  113. package/esm2022/lib/draw/shared/draw-icon.service.mjs +0 -30
  114. package/esm2022/lib/draw/shared/draw.enum.mjs +0 -21
  115. package/esm2022/lib/draw/shared/draw.interface.mjs +0 -2
  116. package/esm2022/lib/draw/shared/draw.utils.mjs +0 -125
  117. package/esm2022/lib/draw/shared/index.mjs +0 -5
  118. package/esm2022/lib/environment/environment.interface.mjs +0 -2
  119. package/esm2022/lib/environment/index.mjs +0 -2
  120. package/esm2022/lib/feature/feature-details/feature-details.component.mjs +0 -306
  121. package/esm2022/lib/feature/feature-details/feature-details.directive.mjs +0 -56
  122. package/esm2022/lib/feature/feature-details/feature-details.module.mjs +0 -26
  123. package/esm2022/lib/feature/feature-details/index.mjs +0 -4
  124. package/esm2022/lib/feature/feature-form/feature-form.component.mjs +0 -101
  125. package/esm2022/lib/feature/feature-form/feature-form.module.mjs +0 -19
  126. package/esm2022/lib/feature/feature.module.mjs +0 -26
  127. package/esm2022/lib/feature/index.mjs +0 -5
  128. package/esm2022/lib/feature/shared/feature-store.utils.mjs +0 -28
  129. package/esm2022/lib/feature/shared/feature.enums.mjs +0 -9
  130. package/esm2022/lib/feature/shared/feature.interfaces.mjs +0 -2
  131. package/esm2022/lib/feature/shared/feature.utils.mjs +0 -332
  132. package/esm2022/lib/feature/shared/index.mjs +0 -8
  133. package/esm2022/lib/feature/shared/store.mjs +0 -143
  134. package/esm2022/lib/feature/shared/strategies/geo-properties.mjs +0 -216
  135. package/esm2022/lib/feature/shared/strategies/in-map-extent.mjs +0 -119
  136. package/esm2022/lib/feature/shared/strategies/in-map-resolution.mjs +0 -99
  137. package/esm2022/lib/feature/shared/strategies/index.mjs +0 -8
  138. package/esm2022/lib/feature/shared/strategies/loading-layer.mjs +0 -103
  139. package/esm2022/lib/feature/shared/strategies/loading.mjs +0 -136
  140. package/esm2022/lib/feature/shared/strategies/search.mjs +0 -158
  141. package/esm2022/lib/feature/shared/strategies/selection.mjs +0 -385
  142. package/esm2022/lib/feature/shared/strategies.utils.mjs +0 -37
  143. package/esm2022/lib/filter/filter.module.mjs +0 -131
  144. package/esm2022/lib/filter/index.mjs +0 -17
  145. package/esm2022/lib/filter/ogc-filter-button/index.mjs +0 -2
  146. package/esm2022/lib/filter/ogc-filter-button/ogc-filter-button.component.mjs +0 -141
  147. package/esm2022/lib/filter/ogc-filter-form/index.mjs +0 -2
  148. package/esm2022/lib/filter/ogc-filter-form/ogc-filter-form.component.mjs +0 -325
  149. package/esm2022/lib/filter/ogc-filter-selection/index.mjs +0 -2
  150. package/esm2022/lib/filter/ogc-filter-selection/ogc-filter-selection.component.mjs +0 -787
  151. package/esm2022/lib/filter/ogc-filter-time/index.mjs +0 -3
  152. package/esm2022/lib/filter/ogc-filter-time/ogc-filter-time-slider.component.mjs +0 -201
  153. package/esm2022/lib/filter/ogc-filter-time/ogc-filter-time.component.mjs +0 -665
  154. package/esm2022/lib/filter/ogc-filterable-form/index.mjs +0 -2
  155. package/esm2022/lib/filter/ogc-filterable-form/ogc-filterable-form.component.mjs +0 -66
  156. package/esm2022/lib/filter/ogc-filterable-item/index.mjs +0 -2
  157. package/esm2022/lib/filter/ogc-filterable-item/ogc-filterable-item.component.mjs +0 -244
  158. package/esm2022/lib/filter/ogc-filterable-list/index.mjs +0 -3
  159. package/esm2022/lib/filter/ogc-filterable-list/ogc-filterable-list-binding.directive.mjs +0 -39
  160. package/esm2022/lib/filter/ogc-filterable-list/ogc-filterable-list.component.mjs +0 -32
  161. package/esm2022/lib/filter/shared/filterable-datasource.pipe.mjs +0 -63
  162. package/esm2022/lib/filter/shared/index.mjs +0 -12
  163. package/esm2022/lib/filter/shared/ogc-filter-time.service.mjs +0 -72
  164. package/esm2022/lib/filter/shared/ogc-filter.enum.mjs +0 -30
  165. package/esm2022/lib/filter/shared/ogc-filter.interface.mjs +0 -2
  166. package/esm2022/lib/filter/shared/ogc-filter.mjs +0 -756
  167. package/esm2022/lib/filter/shared/ogc-filter.service.mjs +0 -47
  168. package/esm2022/lib/filter/shared/spatial-filter.enum.mjs +0 -23
  169. package/esm2022/lib/filter/shared/spatial-filter.interface.mjs +0 -2
  170. package/esm2022/lib/filter/shared/spatial-filter.service.mjs +0 -282
  171. package/esm2022/lib/filter/shared/time-filter.enum.mjs +0 -13
  172. package/esm2022/lib/filter/shared/time-filter.interface.mjs +0 -2
  173. package/esm2022/lib/filter/shared/time-filter.service.mjs +0 -107
  174. package/esm2022/lib/filter/spatial-filter/spatial-filter-item/index.mjs +0 -2
  175. package/esm2022/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.mjs +0 -875
  176. package/esm2022/lib/filter/spatial-filter/spatial-filter-list/index.mjs +0 -2
  177. package/esm2022/lib/filter/spatial-filter/spatial-filter-list/spatial-filter-list.component.mjs +0 -191
  178. package/esm2022/lib/filter/spatial-filter/spatial-filter-type/index.mjs +0 -2
  179. package/esm2022/lib/filter/spatial-filter/spatial-filter-type/spatial-filter-type.component.mjs +0 -120
  180. package/esm2022/lib/filter/time-filter-button/index.mjs +0 -2
  181. package/esm2022/lib/filter/time-filter-button/time-filter-button.component.mjs +0 -70
  182. package/esm2022/lib/filter/time-filter-form/index.mjs +0 -2
  183. package/esm2022/lib/filter/time-filter-form/time-filter-form.component.mjs +0 -537
  184. package/esm2022/lib/filter/time-filter-item/index.mjs +0 -2
  185. package/esm2022/lib/filter/time-filter-item/time-filter-item.component.mjs +0 -90
  186. package/esm2022/lib/filter/time-filter-list/index.mjs +0 -3
  187. package/esm2022/lib/filter/time-filter-list/time-filter-list-binding.directive.mjs +0 -39
  188. package/esm2022/lib/filter/time-filter-list/time-filter-list.component.mjs +0 -24
  189. package/esm2022/lib/geo.module.mjs +0 -63
  190. package/esm2022/lib/geometry/geometry-form-field/geometry-form-field-input.component.mjs +0 -559
  191. package/esm2022/lib/geometry/geometry-form-field/geometry-form-field.component.mjs +0 -170
  192. package/esm2022/lib/geometry/geometry-form-field/geometry-form-field.module.mjs +0 -24
  193. package/esm2022/lib/geometry/geometry-form-field/index.mjs +0 -4
  194. package/esm2022/lib/geometry/geometry.module.mjs +0 -18
  195. package/esm2022/lib/geometry/index.mjs +0 -3
  196. package/esm2022/lib/geometry/shared/controls/draw.mjs +0 -340
  197. package/esm2022/lib/geometry/shared/controls/index.mjs +0 -4
  198. package/esm2022/lib/geometry/shared/controls/modify.mjs +0 -538
  199. package/esm2022/lib/geometry/shared/controls/slice.mjs +0 -190
  200. package/esm2022/lib/geometry/shared/geometry.errors.mjs +0 -24
  201. package/esm2022/lib/geometry/shared/geometry.interfaces.mjs +0 -2
  202. package/esm2022/lib/geometry/shared/geometry.utils.mjs +0 -113
  203. package/esm2022/lib/geometry/shared/index.mjs +0 -5
  204. package/esm2022/lib/import-export/export-button/export-button.component.mjs +0 -49
  205. package/esm2022/lib/import-export/export-button/index.mjs +0 -2
  206. package/esm2022/lib/import-export/import-export/import-export.component.mjs +0 -876
  207. package/esm2022/lib/import-export/import-export/index.mjs +0 -2
  208. package/esm2022/lib/import-export/import-export.module.mjs +0 -31
  209. package/esm2022/lib/import-export/index.mjs +0 -5
  210. package/esm2022/lib/import-export/shared/drop-geo-file.directive.mjs +0 -114
  211. package/esm2022/lib/import-export/shared/export.errors.mjs +0 -15
  212. package/esm2022/lib/import-export/shared/export.interface.mjs +0 -2
  213. package/esm2022/lib/import-export/shared/export.service.mjs +0 -378
  214. package/esm2022/lib/import-export/shared/export.type.mjs +0 -13
  215. package/esm2022/lib/import-export/shared/export.utils.mjs +0 -51
  216. package/esm2022/lib/import-export/shared/import.errors.mjs +0 -39
  217. package/esm2022/lib/import-export/shared/import.interface.mjs +0 -2
  218. package/esm2022/lib/import-export/shared/import.service.mjs +0 -221
  219. package/esm2022/lib/import-export/shared/import.utils.mjs +0 -203
  220. package/esm2022/lib/import-export/shared/index.mjs +0 -11
  221. package/esm2022/lib/layer/index.mjs +0 -16
  222. package/esm2022/lib/layer/layer-group/index.mjs +0 -2
  223. package/esm2022/lib/layer/layer-group/layer-group.component.mjs +0 -103
  224. package/esm2022/lib/layer/layer-item/index.mjs +0 -2
  225. package/esm2022/lib/layer/layer-item/layer-item.component.mjs +0 -196
  226. package/esm2022/lib/layer/layer-legend/index.mjs +0 -2
  227. package/esm2022/lib/layer/layer-legend/layer-legend.component.mjs +0 -287
  228. package/esm2022/lib/layer/layer-legend-item/index.mjs +0 -2
  229. package/esm2022/lib/layer/layer-legend-item/layer-legend-item.component.mjs +0 -85
  230. package/esm2022/lib/layer/layer-legend-list/index.mjs +0 -3
  231. package/esm2022/lib/layer/layer-legend-list/layer-legend-list-binding.directive.mjs +0 -54
  232. package/esm2022/lib/layer/layer-legend-list/layer-legend-list.component.mjs +0 -104
  233. package/esm2022/lib/layer/layer-list/index.mjs +0 -2
  234. package/esm2022/lib/layer/layer-list/layer-list.component.mjs +0 -232
  235. package/esm2022/lib/layer/layer-list-tool/index.mjs +0 -4
  236. package/esm2022/lib/layer/layer-list-tool/layer-list-tool.component.mjs +0 -92
  237. package/esm2022/lib/layer/layer-list-tool/layer-list-tool.interface.mjs +0 -7
  238. package/esm2022/lib/layer/layer-list-tool/layer-list-tool.service.mjs +0 -61
  239. package/esm2022/lib/layer/layer-search/index.mjs +0 -2
  240. package/esm2022/lib/layer/layer-search/layer-search.component.mjs +0 -65
  241. package/esm2022/lib/layer/layer-unavailable/index.mjs +0 -3
  242. package/esm2022/lib/layer/layer-unavailable/layer-unavailable-list/layer-unavailable-list.component.mjs +0 -25
  243. package/esm2022/lib/layer/layer-unavailable/layer-unavailable.component.mjs +0 -35
  244. package/esm2022/lib/layer/layer-viewer/index.mjs +0 -3
  245. package/esm2022/lib/layer/layer-viewer/layer-viewer.component.mjs +0 -226
  246. package/esm2022/lib/layer/layer-viewer/layer-viewer.interface.mjs +0 -2
  247. package/esm2022/lib/layer/layer-viewer-bottom-actions/index.mjs +0 -2
  248. package/esm2022/lib/layer/layer-viewer-bottom-actions/layer-viewer-bottom-actions.component.mjs +0 -207
  249. package/esm2022/lib/layer/layer-visibility-button/index.mjs +0 -2
  250. package/esm2022/lib/layer/layer-visibility-button/layer-visibility-button.component.mjs +0 -83
  251. package/esm2022/lib/layer/layer.module.mjs +0 -107
  252. package/esm2022/lib/layer/shared/clusterParam.mjs +0 -2
  253. package/esm2022/lib/layer/shared/index.mjs +0 -6
  254. package/esm2022/lib/layer/shared/layer-controller.mjs +0 -316
  255. package/esm2022/lib/layer/shared/layer-selection.mjs +0 -38
  256. package/esm2022/lib/layer/shared/layer.enums.mjs +0 -2
  257. package/esm2022/lib/layer/shared/layer.service.mjs +0 -315
  258. package/esm2022/lib/layer/shared/layers/any-layer.interface.mjs +0 -2
  259. package/esm2022/lib/layer/shared/layers/any-layer.mjs +0 -2
  260. package/esm2022/lib/layer/shared/layers/image-layer.interface.mjs +0 -2
  261. package/esm2022/lib/layer/shared/layers/image-layer.mjs +0 -75
  262. package/esm2022/lib/layer/shared/layers/index.mjs +0 -18
  263. package/esm2022/lib/layer/shared/layers/layer-base.mjs +0 -199
  264. package/esm2022/lib/layer/shared/layers/layer-group.interface.mjs +0 -2
  265. package/esm2022/lib/layer/shared/layers/layer-group.mjs +0 -120
  266. package/esm2022/lib/layer/shared/layers/layer.interface.mjs +0 -7
  267. package/esm2022/lib/layer/shared/layers/layer.mjs +0 -178
  268. package/esm2022/lib/layer/shared/layers/legend.interface.mjs +0 -2
  269. package/esm2022/lib/layer/shared/layers/linked/index.mjs +0 -4
  270. package/esm2022/lib/layer/shared/layers/linked/linked-layer.interface.mjs +0 -12
  271. package/esm2022/lib/layer/shared/layers/linked/linked-layer.mjs +0 -242
  272. package/esm2022/lib/layer/shared/layers/linked/linked-layer.utils.mjs +0 -70
  273. package/esm2022/lib/layer/shared/layers/tile-layer.interface.mjs +0 -2
  274. package/esm2022/lib/layer/shared/layers/tile-layer.mjs +0 -55
  275. package/esm2022/lib/layer/shared/layers/vector-layer.interface.mjs +0 -2
  276. package/esm2022/lib/layer/shared/layers/vector-layer.mjs +0 -576
  277. package/esm2022/lib/layer/shared/layers/vectortile-layer.interface.mjs +0 -2
  278. package/esm2022/lib/layer/shared/layers/vectortile-layer.mjs +0 -112
  279. package/esm2022/lib/layer/track-feature-button/index.mjs +0 -2
  280. package/esm2022/lib/layer/track-feature-button/track-feature-button.component.mjs +0 -54
  281. package/esm2022/lib/layer/utils/image-watcher.mjs +0 -62
  282. package/esm2022/lib/layer/utils/index.mjs +0 -6
  283. package/esm2022/lib/layer/utils/layer.utils.mjs +0 -57
  284. package/esm2022/lib/layer/utils/outputLegend.mjs +0 -32
  285. package/esm2022/lib/layer/utils/tile-watcher.mjs +0 -52
  286. package/esm2022/lib/layer/utils/vector-watcher.mjs +0 -50
  287. package/esm2022/lib/map/baselayers-switcher/baselayers-switcher.animation.mjs +0 -20
  288. package/esm2022/lib/map/baselayers-switcher/baselayers-switcher.component.mjs +0 -87
  289. package/esm2022/lib/map/baselayers-switcher/index.mjs +0 -3
  290. package/esm2022/lib/map/baselayers-switcher/mini-basemap.component.mjs +0 -122
  291. package/esm2022/lib/map/geolocate-button/geolocate-button.component.mjs +0 -78
  292. package/esm2022/lib/map/geolocate-button/index.mjs +0 -2
  293. package/esm2022/lib/map/home-extent-button/home-extent-button.component.mjs +0 -73
  294. package/esm2022/lib/map/home-extent-button/home-extent-button.interface.mjs +0 -2
  295. package/esm2022/lib/map/home-extent-button/index.mjs +0 -3
  296. package/esm2022/lib/map/index.mjs +0 -14
  297. package/esm2022/lib/map/info-section/index.mjs +0 -2
  298. package/esm2022/lib/map/info-section/info-section.component.mjs +0 -15
  299. package/esm2022/lib/map/map-browser/index.mjs +0 -2
  300. package/esm2022/lib/map/map-browser/map-browser.component.mjs +0 -67
  301. package/esm2022/lib/map/map-center/index.mjs +0 -2
  302. package/esm2022/lib/map/map-center/map-center.component.mjs +0 -56
  303. package/esm2022/lib/map/map.module.mjs +0 -89
  304. package/esm2022/lib/map/menu-button/index.mjs +0 -2
  305. package/esm2022/lib/map/menu-button/menu-button.component.mjs +0 -57
  306. package/esm2022/lib/map/offline-button/index.mjs +0 -2
  307. package/esm2022/lib/map/offline-button/offline-button.component.mjs +0 -53
  308. package/esm2022/lib/map/rotation-button/index.mjs +0 -2
  309. package/esm2022/lib/map/rotation-button/rotation-button.component.mjs +0 -58
  310. package/esm2022/lib/map/shared/controllers/controller.mjs +0 -44
  311. package/esm2022/lib/map/shared/controllers/geolocation.interface.mjs +0 -8
  312. package/esm2022/lib/map/shared/controllers/geolocation.mjs +0 -431
  313. package/esm2022/lib/map/shared/controllers/index.mjs +0 -5
  314. package/esm2022/lib/map/shared/controllers/view.mjs +0 -361
  315. package/esm2022/lib/map/shared/hover-feature.directive.mjs +0 -481
  316. package/esm2022/lib/map/shared/index.mjs +0 -15
  317. package/esm2022/lib/map/shared/linkedLayers.utils.mjs +0 -238
  318. package/esm2022/lib/map/shared/map-pointer-position.directive.mjs +0 -122
  319. package/esm2022/lib/map/shared/map.abstract.mjs +0 -24
  320. package/esm2022/lib/map/shared/map.enums.mjs +0 -6
  321. package/esm2022/lib/map/shared/map.interface.mjs +0 -2
  322. package/esm2022/lib/map/shared/map.mjs +0 -201
  323. package/esm2022/lib/map/shared/map.service.mjs +0 -29
  324. package/esm2022/lib/map/shared/map.utils.mjs +0 -455
  325. package/esm2022/lib/map/shared/mapOffline.directive.mjs +0 -114
  326. package/esm2022/lib/map/shared/projection.interfaces.mjs +0 -2
  327. package/esm2022/lib/map/shared/projection.service.mjs +0 -67
  328. package/esm2022/lib/map/shared/projection.utils.mjs +0 -122
  329. package/esm2022/lib/map/swipe-control/index.mjs +0 -2
  330. package/esm2022/lib/map/swipe-control/swipe-control.component.mjs +0 -211
  331. package/esm2022/lib/map/utils/index.mjs +0 -2
  332. package/esm2022/lib/map/utils/layer-watcher.mjs +0 -112
  333. package/esm2022/lib/map/wake-lock-button/index.mjs +0 -2
  334. package/esm2022/lib/map/wake-lock-button/wake-lock-button.component.mjs +0 -103
  335. package/esm2022/lib/map/zoom-button/index.mjs +0 -2
  336. package/esm2022/lib/map/zoom-button/zoom-button.component.mjs +0 -35
  337. package/esm2022/lib/measure/index.mjs +0 -3
  338. package/esm2022/lib/measure/measure.module.mjs +0 -20
  339. package/esm2022/lib/measure/measurer/index.mjs +0 -6
  340. package/esm2022/lib/measure/measurer/measure-format.pipe.mjs +0 -40
  341. package/esm2022/lib/measure/measurer/measurer-dialog.component.mjs +0 -38
  342. package/esm2022/lib/measure/measurer/measurer-item.component.mjs +0 -143
  343. package/esm2022/lib/measure/measurer/measurer.component.mjs +0 -948
  344. package/esm2022/lib/measure/measurer/measurer.module.mjs +0 -20
  345. package/esm2022/lib/measure/shared/index.mjs +0 -4
  346. package/esm2022/lib/measure/shared/measure.enum.mjs +0 -37
  347. package/esm2022/lib/measure/shared/measure.interfaces.mjs +0 -2
  348. package/esm2022/lib/measure/shared/measure.utils.mjs +0 -497
  349. package/esm2022/lib/metadata/index.mjs +0 -4
  350. package/esm2022/lib/metadata/metadata-button/index.mjs +0 -2
  351. package/esm2022/lib/metadata/metadata-button/metadata-button.component.mjs +0 -96
  352. package/esm2022/lib/metadata/metadata.module.mjs +0 -29
  353. package/esm2022/lib/metadata/shared/index.mjs +0 -3
  354. package/esm2022/lib/metadata/shared/metadata.interface.mjs +0 -2
  355. package/esm2022/lib/metadata/shared/metadata.service.mjs +0 -18
  356. package/esm2022/lib/offline/geoDB/configFileToGeoDB.service.mjs +0 -130
  357. package/esm2022/lib/offline/geoDB/geoDB.enums.mjs +0 -6
  358. package/esm2022/lib/offline/geoDB/geoDB.interface.mjs +0 -2
  359. package/esm2022/lib/offline/geoDB/geoDB.service.mjs +0 -172
  360. package/esm2022/lib/offline/geoDB/index.mjs +0 -5
  361. package/esm2022/lib/offline/index.mjs +0 -6
  362. package/esm2022/lib/offline/layerDB/index.mjs +0 -3
  363. package/esm2022/lib/offline/layerDB/layerDB.interface.mjs +0 -2
  364. package/esm2022/lib/offline/layerDB/layerDB.service.mjs +0 -83
  365. package/esm2022/lib/offline/offline.interface.mjs +0 -2
  366. package/esm2022/lib/offline/offline.provider.mjs +0 -50
  367. package/esm2022/lib/offline/shared/geo-network.service.mjs +0 -79
  368. package/esm2022/lib/offline/shared/index.mjs +0 -2
  369. package/esm2022/lib/overlay/index.mjs +0 -2
  370. package/esm2022/lib/overlay/shared/index.mjs +0 -4
  371. package/esm2022/lib/overlay/shared/overlay.enum.mjs +0 -8
  372. package/esm2022/lib/overlay/shared/overlay.mjs +0 -139
  373. package/esm2022/lib/overlay/shared/overlay.utils.mjs +0 -17
  374. package/esm2022/lib/print/index.mjs +0 -4
  375. package/esm2022/lib/print/print/print.component.mjs +0 -116
  376. package/esm2022/lib/print/print-form/index.mjs +0 -2
  377. package/esm2022/lib/print/print-form/print-form.component.mjs +0 -320
  378. package/esm2022/lib/print/print.module.mjs +0 -20
  379. package/esm2022/lib/print/shared/geopdf.mjs +0 -68
  380. package/esm2022/lib/print/shared/index.mjs +0 -5
  381. package/esm2022/lib/print/shared/print.interface.mjs +0 -2
  382. package/esm2022/lib/print/shared/print.service.mjs +0 -1136
  383. package/esm2022/lib/print/shared/print.type.mjs +0 -30
  384. package/esm2022/lib/query/index.mjs +0 -2
  385. package/esm2022/lib/query/query.module.mjs +0 -27
  386. package/esm2022/lib/query/shared/index.mjs +0 -8
  387. package/esm2022/lib/query/shared/query-search-source.mjs +0 -35
  388. package/esm2022/lib/query/shared/query-search-source.providers.mjs +0 -22
  389. package/esm2022/lib/query/shared/query.directive.mjs +0 -290
  390. package/esm2022/lib/query/shared/query.enums.mjs +0 -32
  391. package/esm2022/lib/query/shared/query.interfaces.mjs +0 -2
  392. package/esm2022/lib/query/shared/query.service.mjs +0 -753
  393. package/esm2022/lib/query/shared/query.utils.mjs +0 -45
  394. package/esm2022/lib/search/index.mjs +0 -10
  395. package/esm2022/lib/search/search-bar/search-bar.component.mjs +0 -483
  396. package/esm2022/lib/search/search-bar/search-bar.module.mjs +0 -19
  397. package/esm2022/lib/search/search-results/index.mjs +0 -5
  398. package/esm2022/lib/search/search-results/save-feature-dialog.component.mjs +0 -101
  399. package/esm2022/lib/search/search-results/search-results-add-button.component.mjs +0 -433
  400. package/esm2022/lib/search/search-results/search-results-item.component.mjs +0 -119
  401. package/esm2022/lib/search/search-results/search-results.component.mjs +0 -297
  402. package/esm2022/lib/search/search-results/search-results.directive.mjs +0 -7
  403. package/esm2022/lib/search/search-results/search-results.module.mjs +0 -20
  404. package/esm2022/lib/search/search-selector/search-selector.component.mjs +0 -118
  405. package/esm2022/lib/search/search-selector/search-selector.module.mjs +0 -19
  406. package/esm2022/lib/search/search-settings/search-settings.component.mjs +0 -264
  407. package/esm2022/lib/search/search-settings/search-settings.module.mjs +0 -19
  408. package/esm2022/lib/search/search.module.mjs +0 -77
  409. package/esm2022/lib/search/shared/index.mjs +0 -10
  410. package/esm2022/lib/search/shared/search-pointer-summary.directive.mjs +0 -328
  411. package/esm2022/lib/search/shared/search-source-service.providers.mjs +0 -20
  412. package/esm2022/lib/search/shared/search-source.service.mjs +0 -56
  413. package/esm2022/lib/search/shared/search.enums.mjs +0 -4
  414. package/esm2022/lib/search/shared/search.interfaces.mjs +0 -2
  415. package/esm2022/lib/search/shared/search.provider.mjs +0 -20
  416. package/esm2022/lib/search/shared/search.service.mjs +0 -149
  417. package/esm2022/lib/search/shared/search.utils.mjs +0 -92
  418. package/esm2022/lib/search/shared/sources/cadastre.mjs +0 -142
  419. package/esm2022/lib/search/shared/sources/cadastre.providers.mjs +0 -32
  420. package/esm2022/lib/search/shared/sources/coordinates.interfaces.mjs +0 -2
  421. package/esm2022/lib/search/shared/sources/coordinates.mjs +0 -168
  422. package/esm2022/lib/search/shared/sources/coordinates.providers.mjs +0 -52
  423. package/esm2022/lib/search/shared/sources/icherche-icons.mjs +0 -32
  424. package/esm2022/lib/search/shared/sources/icherche.interfaces.mjs +0 -2
  425. package/esm2022/lib/search/shared/sources/icherche.mjs +0 -816
  426. package/esm2022/lib/search/shared/sources/icherche.providers.mjs +0 -87
  427. package/esm2022/lib/search/shared/sources/ilayer.interfaces.mjs +0 -2
  428. package/esm2022/lib/search/shared/sources/ilayer.mjs +0 -339
  429. package/esm2022/lib/search/shared/sources/ilayer.providers.mjs +0 -58
  430. package/esm2022/lib/search/shared/sources/index.mjs +0 -23
  431. package/esm2022/lib/search/shared/sources/nominatim.interfaces.mjs +0 -2
  432. package/esm2022/lib/search/shared/sources/nominatim.mjs +0 -263
  433. package/esm2022/lib/search/shared/sources/nominatim.providers.mjs +0 -31
  434. package/esm2022/lib/search/shared/sources/source.interfaces.mjs +0 -13
  435. package/esm2022/lib/search/shared/sources/source.mjs +0 -221
  436. package/esm2022/lib/search/shared/sources/storedqueries.interfaces.mjs +0 -2
  437. package/esm2022/lib/search/shared/sources/storedqueries.mjs +0 -454
  438. package/esm2022/lib/search/shared/sources/storedqueries.providers.mjs +0 -56
  439. package/esm2022/lib/search/shared/sources/workspace.interfaces.mjs +0 -2
  440. package/esm2022/lib/search/shared/sources/workspace.mjs +0 -192
  441. package/esm2022/lib/search/shared/sources/workspace.providers.mjs +0 -31
  442. package/esm2022/lib/style/index.mjs +0 -5
  443. package/esm2022/lib/style/shared/datasource/esri-style-generator.mjs +0 -360
  444. package/esm2022/lib/style/shared/datasource/index.mjs +0 -2
  445. package/esm2022/lib/style/shared/feature/feature-style.mjs +0 -162
  446. package/esm2022/lib/style/shared/feature/index.mjs +0 -2
  447. package/esm2022/lib/style/shared/font.enum.mjs +0 -17
  448. package/esm2022/lib/style/shared/index.mjs +0 -5
  449. package/esm2022/lib/style/shared/overlay/index.mjs +0 -3
  450. package/esm2022/lib/style/shared/overlay/overlay-marker-style.utils.mjs +0 -39
  451. package/esm2022/lib/style/shared/overlay/overlay-style.utils.mjs +0 -88
  452. package/esm2022/lib/style/shared/vector/commonVectorStyle.mjs +0 -78
  453. package/esm2022/lib/style/shared/vector/conversion.utils.mjs +0 -27
  454. package/esm2022/lib/style/shared/vector/index.mjs +0 -4
  455. package/esm2022/lib/style/shared/vector/vector-style.interface.mjs +0 -2
  456. package/esm2022/lib/style/style-list/index.mjs +0 -5
  457. package/esm2022/lib/style/style-list/style-list.interface.mjs +0 -2
  458. package/esm2022/lib/style/style-list/style-list.module.mjs +0 -23
  459. package/esm2022/lib/style/style-list/style-list.provider.mjs +0 -21
  460. package/esm2022/lib/style/style-list/style-list.service.mjs +0 -52
  461. package/esm2022/lib/style/style-modal/drawing/index.mjs +0 -2
  462. package/esm2022/lib/style/style-modal/drawing/style-modal-drawing.component.mjs +0 -193
  463. package/esm2022/lib/style/style-modal/index.mjs +0 -5
  464. package/esm2022/lib/style/style-modal/layer/index.mjs +0 -2
  465. package/esm2022/lib/style/style-modal/layer/style-modal-layer.component.mjs +0 -142
  466. package/esm2022/lib/style/style-modal/layer-button/index.mjs +0 -2
  467. package/esm2022/lib/style/style-modal/layer-button/style-modal-layer-button.component.mjs +0 -44
  468. package/esm2022/lib/style/style-modal/shared/index.mjs +0 -2
  469. package/esm2022/lib/style/style-modal/shared/style-modal.interface.mjs +0 -2
  470. package/esm2022/lib/style/style-service/draw-style.service.mjs +0 -255
  471. package/esm2022/lib/style/style-service/index.mjs +0 -3
  472. package/esm2022/lib/style/style-service/style.service.mjs +0 -393
  473. package/esm2022/lib/style/style.module.mjs +0 -46
  474. package/esm2022/lib/toast/index.mjs +0 -2
  475. package/esm2022/lib/toast/toast.component.mjs +0 -99
  476. package/esm2022/lib/toast/toast.module.mjs +0 -24
  477. package/esm2022/lib/utils/googleLinks.mjs +0 -13
  478. package/esm2022/lib/utils/id-generator.mjs +0 -112
  479. package/esm2022/lib/utils/index.mjs +0 -5
  480. package/esm2022/lib/utils/osmLinks.mjs +0 -9
  481. package/esm2022/lib/utils/propertyTypeDetector/index.mjs +0 -3
  482. package/esm2022/lib/utils/propertyTypeDetector/propertyTypeDetector.interface.mjs +0 -2
  483. package/esm2022/lib/utils/propertyTypeDetector/propertyTypeDetector.service.mjs +0 -64
  484. package/esm2022/lib/wkt/index.mjs +0 -2
  485. package/esm2022/lib/wkt/shared/index.mjs +0 -2
  486. package/esm2022/lib/wkt/shared/wkt.service.mjs +0 -235
  487. package/esm2022/lib/wkt/wkt.module.mjs +0 -25
  488. package/esm2022/lib/workspace/confirmation-popup/confirmation-popup.component.mjs +0 -36
  489. package/esm2022/lib/workspace/confirmation-popup/confirmation-popup.module.mjs +0 -19
  490. package/esm2022/lib/workspace/confirmation-popup/index.mjs +0 -3
  491. package/esm2022/lib/workspace/index.mjs +0 -8
  492. package/esm2022/lib/workspace/shared/edition-workspace.mjs +0 -301
  493. package/esm2022/lib/workspace/shared/edition-workspace.service.mjs +0 -720
  494. package/esm2022/lib/workspace/shared/feature-workspace.mjs +0 -41
  495. package/esm2022/lib/workspace/shared/feature-workspace.service.mjs +0 -113
  496. package/esm2022/lib/workspace/shared/index.mjs +0 -8
  497. package/esm2022/lib/workspace/shared/wfs-workspace.mjs +0 -41
  498. package/esm2022/lib/workspace/shared/wfs-workspace.service.mjs +0 -121
  499. package/esm2022/lib/workspace/shared/wms-workspace.service.mjs +0 -248
  500. package/esm2022/lib/workspace/shared/workspace.utils.mjs +0 -188
  501. package/esm2022/lib/workspace/widgets/index.mjs +0 -4
  502. package/esm2022/lib/workspace/widgets/ogc-filter/ogc-filter.component.mjs +0 -48
  503. package/esm2022/lib/workspace/widgets/ogc-filter/ogc-filter.module.mjs +0 -19
  504. package/esm2022/lib/workspace/widgets/widgets.mjs +0 -15
  505. package/esm2022/lib/workspace/workspace-selector/workspace-selector.directive.mjs +0 -172
  506. package/esm2022/lib/workspace/workspace-selector/workspace-selector.module.mjs +0 -19
  507. package/esm2022/lib/workspace/workspace-updator/workspace-updator.directive.mjs +0 -137
  508. package/esm2022/lib/workspace/workspace-updator/workspace-updator.module.mjs +0 -19
  509. package/esm2022/lib/workspace/workspace.module.mjs +0 -32
  510. package/esm2022/public_api.mjs +0 -56
@@ -26,7 +26,7 @@ export declare class GeoDBService {
26
26
  getRegionCountByID(id: number): Observable<number>;
27
27
  getRegionByID(id: number): Observable<any[]>;
28
28
  deleteByRegionID(id: number): Observable<any>;
29
- openCursor(keyRange?: IDBKeyRange, mode?: DBMode): Observable<Event>;
29
+ openCursor(keyRange?: IDBKeyRange, mode?: DBMode): Observable<import("ngx-indexed-db").NgxIDBCursorWithValue<unknown, IDBValidKey, IDBValidKey>>;
30
30
  resetCounters(): void;
31
31
  resetCollisionsMap(): void;
32
32
  revertCollisions(): void;
@@ -24,7 +24,7 @@ export declare class LayerDBService {
24
24
  * @param layerId
25
25
  * @returns
26
26
  */
27
- deleteByKey(layerId: string): Observable<boolean>;
27
+ deleteByKey(layerId: string): Observable<void>;
28
28
  /**
29
29
  * This method retrive all idb layer definition
30
30
  * @param layerId
@@ -1,15 +1,8 @@
1
1
  import { InjectionToken } from '@angular/core';
2
2
  import { StyleListOptions } from './style-list.interface';
3
- import { StyleListService } from './style-list.service';
4
3
  export declare const STYLELIST_OPTIONS: InjectionToken<StyleListOptions>;
5
4
  export declare function provideStyleListOptions(options: StyleListOptions): {
6
5
  provide: InjectionToken<StyleListOptions>;
7
6
  useValue: StyleListOptions;
8
7
  };
9
- export declare function styleListFactory(styleListService: StyleListService, options: StyleListOptions): () => true | Promise<unknown>;
10
- export declare function provideStyleListLoader(): {
11
- provide: InjectionToken<readonly (() => import("rxjs").Observable<unknown> | Promise<unknown> | void)[]>;
12
- useFactory: typeof styleListFactory;
13
- multi: boolean;
14
- deps: (typeof StyleListService | InjectionToken<StyleListOptions>)[];
15
- };
8
+ export declare function provideStyleListLoader(): import("@angular/core").EnvironmentProviders;
@@ -12,7 +12,7 @@ export declare class StyleListService {
12
12
  /**
13
13
  * This method loads "[path]" to get all styleList's variables
14
14
  */
15
- load(options: StyleListOptions): true | Promise<unknown>;
15
+ load(options: StyleListOptions): void | Promise<unknown>;
16
16
  static ɵfac: i0.ɵɵFactoryDeclaration<StyleListService, never>;
17
17
  static ɵprov: i0.ɵɵInjectableDeclaration<StyleListService>;
18
18
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@igo2/geo",
3
- "version": "18.0.0",
3
+ "version": "18.0.1-next.2",
4
4
  "description": "IGO Library",
5
5
  "author": "IGO Community",
6
6
  "keywords": [
@@ -19,8 +19,6 @@
19
19
  ".": {
20
20
  "sass": "./src/_index.scss",
21
21
  "types": "./index.d.ts",
22
- "esm2022": "./esm2022/igo2-geo.mjs",
23
- "esm": "./esm2022/igo2-geo.mjs",
24
22
  "default": "./fesm2022/igo2-geo.mjs"
25
23
  },
26
24
  "./style": {
@@ -43,23 +41,23 @@
43
41
  "tslib": "^2.6.0"
44
42
  },
45
43
  "peerDependencies": {
46
- "@angular/animations": "^18.0.0",
47
- "@angular/common": "^18.0.0",
48
- "@angular/core": "^18.0.0",
49
- "@angular/forms": "^18.0.0",
50
- "@angular/material": "^18.0.0",
51
- "@angular/material-moment-adapter": "^18.0.0",
52
- "@angular/platform-browser": "^18.0.0",
53
- "@igo2/auth": "^18.0.0",
54
- "@igo2/common": "^18.0.0",
55
- "@igo2/core": "^18.0.0",
56
- "@igo2/utils": "^18.0.0",
57
- "@mat-datetimepicker/core": "~14.0.0",
44
+ "@angular/animations": "^19.0.0",
45
+ "@angular/common": "^19.0.0",
46
+ "@angular/core": "^19.0.0",
47
+ "@angular/forms": "^19.0.0",
48
+ "@angular/material": "^19.0.0",
49
+ "@angular/material-moment-adapter": "^19.0.0",
50
+ "@angular/platform-browser": "^19.0.0",
51
+ "@igo2/auth": "^18.0.1-next.2",
52
+ "@igo2/common": "^18.0.1-next.2",
53
+ "@igo2/core": "^18.0.1-next.2",
54
+ "@igo2/utils": "^18.0.1-next.2",
55
+ "@mat-datetimepicker/core": "^15.0.1",
58
56
  "file-saver": "^2.0.2",
59
57
  "flexsearch": "0.7.21",
60
58
  "html2canvas": "^1.4.1",
61
- "jspdf": "^2.5.1",
62
- "jspdf-autotable": "^3.8.0",
59
+ "jspdf": "^3.0.0",
60
+ "jspdf-autotable": "^3.8.4",
63
61
  "jszip": "^3.10.1",
64
62
  "moment": "^2.30.0",
65
63
  "ngx-indexed-db": "^19.0.0",
@@ -1,4 +1,5 @@
1
1
  @use 'sass:map';
2
+ @use 'sass:color';
2
3
  @use '@angular/material' as mat;
3
4
 
4
5
  @mixin theme($theme) {
@@ -23,7 +24,7 @@
23
24
  &.--children-selected {
24
25
  igo-layer-group,
25
26
  igo-layer-item {
26
- background-color: adjust-color(
27
+ background-color: color.adjust(
27
28
  $color: mat.m2-get-color-from-palette($accent, lighter),
28
29
  $lightness: 8%
29
30
  );
@@ -1,6 +1,6 @@
1
1
  @use 'sass:map';
2
2
  @use '@angular/material' as mat;
3
- @import '../../../../../core/src/style/partial/core.variables';
3
+ @use '../../../../../core/src/style/partial/core.variables' as core;
4
4
 
5
5
  @mixin theme($theme) {
6
6
  @include color($theme);
@@ -10,11 +10,11 @@
10
10
  $primary: map.get($theme, primary);
11
11
 
12
12
  igo-menu-button > button#menu-button {
13
- color: $app-background-color;
13
+ color: core.$app-background-color;
14
14
  background-color: mat.m2-get-color-from-palette($primary);
15
15
  }
16
16
  igo-menu-button > button#menu-button.menu-button-white-background {
17
17
  color: mat.m2-get-color-from-palette($primary);
18
- background-color: $app-background-color;
18
+ background-color: core.$app-background-color;
19
19
  }
20
20
  }
@@ -1 +1 @@
1
- @import 'ol/ol';
1
+ @use 'ol/ol';
@@ -1,5 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- export * from './public_api';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWdvMi1nZW8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2lnbzItZ2VvLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljX2FwaSc7XG4iXX0=
@@ -1,234 +0,0 @@
1
- import { AsyncPipe, NgFor, NgIf } from '@angular/common';
2
- import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';
3
- import { MatButtonModule } from '@angular/material/button';
4
- import { MatIconModule } from '@angular/material/icon';
5
- import { MatListModule } from '@angular/material/list';
6
- import { MatTooltipModule } from '@angular/material/tooltip';
7
- import { CollapseDirective } from '@igo2/common/collapsible';
8
- import { EntityStore } from '@igo2/common/entity';
9
- import { ListItemDirective } from '@igo2/common/list';
10
- import { IgoLanguageModule } from '@igo2/core/language';
11
- import { BehaviorSubject } from 'rxjs';
12
- import { IgoMap } from '../../map/shared/map';
13
- import { Catalog, CatalogItemType } from '../shared';
14
- import { CatalogBrowserLayerComponent } from './catalog-browser-layer.component';
15
- import * as i0 from "@angular/core";
16
- import * as i1 from "@angular/material/list";
17
- import * as i2 from "@angular/material/icon";
18
- import * as i3 from "@angular/material/tooltip";
19
- import * as i4 from "@angular/material/button";
20
- import * as i5 from "@ngx-translate/core";
21
- /**
22
- * Catalog browser group item
23
- */
24
- export class CatalogBrowserGroupComponent {
25
- /**
26
- * Group's items store
27
- * @internal
28
- */
29
- store = new EntityStore([]);
30
- /**
31
- * Whether all the layers of the group are added
32
- * @internal
33
- */
34
- added$ = new BehaviorSubject(false);
35
- preview$ = new BehaviorSubject(false);
36
- /**
37
- * Whether the toggle button is disabled
38
- * @internal
39
- */
40
- disabled$ = new BehaviorSubject(false);
41
- /**
42
- * Catalog
43
- */
44
- catalog;
45
- /**
46
- * Catalog group
47
- */
48
- group;
49
- map;
50
- /**
51
- * Whether the group is collapsed
52
- */
53
- collapsed = true;
54
- resolution;
55
- catalogAllowLegend = false;
56
- /**
57
- * Whether the group can be toggled when it's collapsed
58
- */
59
- toggleCollapsed = true;
60
- /**
61
- * Parent catalog's items store state. Groups share a unique
62
- * EntityState that tracks the group and it's layers state (whether they are added or not).
63
- * Sharing a unique state would also allow us to expand this component to allow
64
- * the selection of a layer while unselecting any layer already selected in another group.
65
- * This could be useful to display some layer info before adding it, for example.
66
- */
67
- state;
68
- /**
69
- * Event emitted when the add/remove button of the group is clicked
70
- */
71
- addedChange = new EventEmitter();
72
- /**
73
- * Event emitted when the add/remove button of a layer is clicked
74
- */
75
- layerAddedChange = new EventEmitter();
76
- /**
77
- * @internal
78
- */
79
- get title() {
80
- return this.group.title;
81
- }
82
- /**
83
- * @internal
84
- */
85
- ngOnInit() {
86
- this.store.load(this.group.items);
87
- this.evaluateAdded();
88
- this.evaluateDisabled(this.collapsed);
89
- if (this.group.sortDirection !== undefined) {
90
- this.store.view.sort({
91
- direction: this.group.sortDirection,
92
- valueAccessor: (item) => item.title
93
- });
94
- }
95
- }
96
- ngOnDestroy() {
97
- this.store.destroy();
98
- }
99
- /**
100
- * @internal
101
- */
102
- isGroup(item) {
103
- return item.type === CatalogItemType.Group;
104
- }
105
- /**
106
- * @internal
107
- */
108
- isLayer(item) {
109
- return item.type === CatalogItemType.Layer;
110
- }
111
- /**
112
- * On toggle button click, emit the added change event
113
- * @internal
114
- */
115
- onToggleClick(event) {
116
- this.added$.value ? this.remove(event) : this.add(event);
117
- }
118
- /**
119
- * On toggle button click, emit the added change event
120
- * @internal
121
- */
122
- onToggleCollapsed(collapsed) {
123
- this.evaluateDisabled(collapsed);
124
- }
125
- /**
126
- * When a layer is added or removed, evaluate if all the layers of the group
127
- * are now added or removed. If so, consider that the group itself is added
128
- * or removed.
129
- * @internal
130
- * @param event Layer added change event
131
- */
132
- onLayerAddedChange(event) {
133
- this.layerAddedChange.emit(event);
134
- this.tryToggleGroup(event);
135
- }
136
- /**
137
- * Emit added change event with added = true
138
- */
139
- add(event) {
140
- this.added$.next(true);
141
- this.addedChange.emit({
142
- added: true,
143
- group: this.group,
144
- event
145
- });
146
- }
147
- /**
148
- * Emit added change event with added = true
149
- */
150
- remove(event) {
151
- this.added$.next(false);
152
- this.addedChange.emit({
153
- added: false,
154
- group: this.group,
155
- event
156
- });
157
- }
158
- onLayerPreview(event) {
159
- this.preview$.next(event);
160
- }
161
- /**
162
- * If all the layers of the group added or removed, add or remove the group itself.
163
- * @param event The last layer added change event to occur
164
- */
165
- tryToggleGroup(event) {
166
- const added = event.added;
167
- const layer = event.layer;
168
- const layersAdded = this.store.view
169
- .all()
170
- .filter((item) => item.id !== layer.id)
171
- .map((item) => this.state.get(item).added || false);
172
- if (layersAdded.every((value) => value === added)) {
173
- added ? this.add(event.event) : this.remove(event.event);
174
- }
175
- else if (this.added$.value === true) {
176
- this.added$.next(false);
177
- }
178
- }
179
- evaluateAdded() {
180
- const added = this.store.all().every((item) => {
181
- return (this.state.get(item).added || false) === true;
182
- });
183
- this.added$.next(added);
184
- }
185
- evaluateDisabled(collapsed) {
186
- let disabled = false;
187
- if (this.toggleCollapsed === false) {
188
- disabled = collapsed;
189
- }
190
- this.disabled$.next(disabled);
191
- }
192
- onTitleClick() {
193
- this.collapsed = !this.collapsed;
194
- }
195
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CatalogBrowserGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
196
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: CatalogBrowserGroupComponent, isStandalone: true, selector: "igo-catalog-browser-group", inputs: { catalog: "catalog", group: "group", map: "map", collapsed: "collapsed", resolution: "resolution", catalogAllowLegend: "catalogAllowLegend", toggleCollapsed: "toggleCollapsed", state: "state" }, outputs: { addedChange: "addedChange", layerAddedChange: "layerAddedChange" }, ngImport: i0, template: "<mat-list-item>\n <mat-icon\n matListItemIcon\n igoCollapse\n class=\"igo-chevron catalog-browser-group-carret\"\n [target]=\"items\"\n [collapsed]=\"collapsed\"\n (toggle)=\"onToggleCollapsed($event)\"\n >\n expand_less\n </mat-icon>\n\n <span\n class=\"igo-catalog-group-title\"\n matListItemTitle\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"title\"\n (click)=\"onTitleClick()\"\n >{{ title }}</span\n >\n\n <div matListItemMeta>\n <button *ngIf=\"group.externalProvider\" disabled=\"true\" mat-icon-button>\n <mat-icon\n class=\"igo-cataloggroup-external-icon\"\n *ngIf=\"group.externalProvider\"\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.geo.catalog.externalProvider.group' | translate\"\n color=\"primary\"\n (click)=\"$event.stopPropagation()\"\n >\n public\n </mat-icon>\n </button>\n\n <ng-container\n *ngIf=\"(added$ | async) && (preview$ | async) === false; else notadded\"\n >\n <button\n mat-icon-button\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.geo.catalog.group.removeFromMap' | translate\"\n color=\"warn\"\n [disabled]=\"disabled$ | async\"\n (click)=\"onToggleClick($event)\"\n >\n <mat-icon>delete</mat-icon>\n </button>\n </ng-container>\n\n <ng-template #notadded>\n <button\n mat-icon-button\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.geo.catalog.group.addToMap' | translate\"\n [disabled]=\"disabled$ | async\"\n (click)=\"onToggleClick($event)\"\n >\n <mat-icon>add</mat-icon>\n </button>\n </ng-template>\n </div>\n</mat-list-item>\n\n<div #items>\n <ng-template ngFor let-item [ngForOf]=\"store.view.all$() | async\">\n <ng-container *ngIf=\"isGroup(item)\">\n <!-- todo: add display ans manage CatalogItemGroup -->\n </ng-container>\n <ng-container *ngIf=\"isLayer(item)\">\n <igo-catalog-browser-layer\n igoListItem\n [layer]=\"$any(item)\"\n [resolution]=\"resolution\"\n [map]=\"map\"\n [catalogAllowLegend]=\"catalogAllowLegend\"\n [added]=\"state.get(item).added\"\n (addedLayerIsPreview)=\"onLayerPreview($event)\"\n (addedChange)=\"onLayerAddedChange($event)\"\n >\n </igo-catalog-browser-layer>\n </ng-container>\n </ng-template>\n</div>\n", styles: [".igo-catalog-group-title{cursor:pointer}.igo-cataloggroup-external-icon{cursor:help}.catalog-browser-group-carret{margin-right:16px}.igo-catalog-group-title{font-weight:500}:host .mdc-list-item__end,:host .mdc-list-item__start{color:#000}\n"], dependencies: [{ kind: "ngmodule", type: MatListModule }, { kind: "component", type: i1.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "directive", type: i1.MatListItemIcon, selector: "[matListItemIcon]" }, { kind: "directive", type: i1.MatListItemTitle, selector: "[matListItemTitle]" }, { kind: "directive", type: i1.MatListItemMeta, selector: "[matListItemMeta]" }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: CollapseDirective, selector: "[igoCollapse]", inputs: ["target", "collapsed"], outputs: ["toggle"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i4.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: CatalogBrowserLayerComponent, selector: "igo-catalog-browser-layer", inputs: ["resolution", "catalogAllowLegend", "layer", "map", "added"], outputs: ["addedChange", "addedLayerIsPreview"] }, { kind: "directive", type: ListItemDirective, selector: "[igoListItem]", inputs: ["color", "focused", "selected", "disabled"], outputs: ["beforeSelect", "beforeFocus", "beforeUnselect", "beforeUnfocus", "beforeDisable", "beforeEnable", "focus", "unfocus", "select", "unselect", "disable", "enable"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "ngmodule", type: IgoLanguageModule }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
197
- }
198
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CatalogBrowserGroupComponent, decorators: [{
199
- type: Component,
200
- args: [{ selector: 'igo-catalog-browser-group', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
201
- MatListModule,
202
- MatIconModule,
203
- CollapseDirective,
204
- MatTooltipModule,
205
- NgIf,
206
- MatButtonModule,
207
- NgFor,
208
- CatalogBrowserLayerComponent,
209
- ListItemDirective,
210
- AsyncPipe,
211
- IgoLanguageModule
212
- ], template: "<mat-list-item>\n <mat-icon\n matListItemIcon\n igoCollapse\n class=\"igo-chevron catalog-browser-group-carret\"\n [target]=\"items\"\n [collapsed]=\"collapsed\"\n (toggle)=\"onToggleCollapsed($event)\"\n >\n expand_less\n </mat-icon>\n\n <span\n class=\"igo-catalog-group-title\"\n matListItemTitle\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"title\"\n (click)=\"onTitleClick()\"\n >{{ title }}</span\n >\n\n <div matListItemMeta>\n <button *ngIf=\"group.externalProvider\" disabled=\"true\" mat-icon-button>\n <mat-icon\n class=\"igo-cataloggroup-external-icon\"\n *ngIf=\"group.externalProvider\"\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.geo.catalog.externalProvider.group' | translate\"\n color=\"primary\"\n (click)=\"$event.stopPropagation()\"\n >\n public\n </mat-icon>\n </button>\n\n <ng-container\n *ngIf=\"(added$ | async) && (preview$ | async) === false; else notadded\"\n >\n <button\n mat-icon-button\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.geo.catalog.group.removeFromMap' | translate\"\n color=\"warn\"\n [disabled]=\"disabled$ | async\"\n (click)=\"onToggleClick($event)\"\n >\n <mat-icon>delete</mat-icon>\n </button>\n </ng-container>\n\n <ng-template #notadded>\n <button\n mat-icon-button\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.geo.catalog.group.addToMap' | translate\"\n [disabled]=\"disabled$ | async\"\n (click)=\"onToggleClick($event)\"\n >\n <mat-icon>add</mat-icon>\n </button>\n </ng-template>\n </div>\n</mat-list-item>\n\n<div #items>\n <ng-template ngFor let-item [ngForOf]=\"store.view.all$() | async\">\n <ng-container *ngIf=\"isGroup(item)\">\n <!-- todo: add display ans manage CatalogItemGroup -->\n </ng-container>\n <ng-container *ngIf=\"isLayer(item)\">\n <igo-catalog-browser-layer\n igoListItem\n [layer]=\"$any(item)\"\n [resolution]=\"resolution\"\n [map]=\"map\"\n [catalogAllowLegend]=\"catalogAllowLegend\"\n [added]=\"state.get(item).added\"\n (addedLayerIsPreview)=\"onLayerPreview($event)\"\n (addedChange)=\"onLayerAddedChange($event)\"\n >\n </igo-catalog-browser-layer>\n </ng-container>\n </ng-template>\n</div>\n", styles: [".igo-catalog-group-title{cursor:pointer}.igo-cataloggroup-external-icon{cursor:help}.catalog-browser-group-carret{margin-right:16px}.igo-catalog-group-title{font-weight:500}:host .mdc-list-item__end,:host .mdc-list-item__start{color:#000}\n"] }]
213
- }], propDecorators: { catalog: [{
214
- type: Input
215
- }], group: [{
216
- type: Input
217
- }], map: [{
218
- type: Input
219
- }], collapsed: [{
220
- type: Input
221
- }], resolution: [{
222
- type: Input
223
- }], catalogAllowLegend: [{
224
- type: Input
225
- }], toggleCollapsed: [{
226
- type: Input
227
- }], state: [{
228
- type: Input
229
- }], addedChange: [{
230
- type: Output
231
- }], layerAddedChange: [{
232
- type: Output
233
- }] } });
234
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0YWxvZy1icm93c2VyLWdyb3VwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2NhdGFsb2cvY2F0YWxvZy1icm93c2VyL2NhdGFsb2ctYnJvd3Nlci1ncm91cC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9jYXRhbG9nL2NhdGFsb2ctYnJvd3Nlci9jYXRhbG9nLWJyb3dzZXItZ3JvdXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekQsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFN0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFN0QsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXhELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFdkMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzlDLE9B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ekMsa2dGQXVGQSx5U0QxQ0ksYUFBYSxtYkFDYixhQUFhLG9MQUNiLGlCQUFpQiwrR0FDakIsZ0JBQWdCLDZUQUNoQixJQUFJLDRGQUNKLGVBQWUsNElBQ2YsS0FBSyxtSEFDTCw0QkFBNEIsOExBQzVCLGlCQUFpQix3UkFDakIsU0FBUyw2Q0FDVCxpQkFBaUI7OzRGQUdSLDRCQUE0QjtrQkFwQnhDLFNBQVM7K0JBQ0UsMkJBQTJCLG1CQUdwQix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUDt3QkFDUCxhQUFhO3dCQUNiLGFBQWE7d0JBQ2IsaUJBQWlCO3dCQUNqQixnQkFBZ0I7d0JBQ2hCLElBQUk7d0JBQ0osZUFBZTt3QkFDZixLQUFLO3dCQUNMLDRCQUE0Qjt3QkFDNUIsaUJBQWlCO3dCQUNqQixTQUFTO3dCQUNULGlCQUFpQjtxQkFDbEI7OEJBd0JRLE9BQU87c0JBQWYsS0FBSztnQkFLRyxLQUFLO3NCQUFiLEtBQUs7Z0JBRUcsR0FBRztzQkFBWCxLQUFLO2dCQUtHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBRUcsVUFBVTtzQkFBbEIsS0FBSztnQkFFRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBS0csZUFBZTtzQkFBdkIsS0FBSztnQkFTRyxLQUFLO3NCQUFiLEtBQUs7Z0JBS0ksV0FBVztzQkFBcEIsTUFBTTtnQkFLRyxnQkFBZ0I7c0JBQXpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBc3luY1BpcGUsIE5nRm9yLCBOZ0lmIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPdXRwdXRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgTWF0TGlzdE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2xpc3QnO1xuaW1wb3J0IHsgTWF0VG9vbHRpcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnO1xuXG5pbXBvcnQgeyBDb2xsYXBzZURpcmVjdGl2ZSB9IGZyb20gJ0BpZ28yL2NvbW1vbi9jb2xsYXBzaWJsZSc7XG5pbXBvcnQgdHlwZSB7IEVudGl0eVN0YXRlTWFuYWdlciB9IGZyb20gJ0BpZ28yL2NvbW1vbi9lbnRpdHknO1xuaW1wb3J0IHsgRW50aXR5U3RvcmUgfSBmcm9tICdAaWdvMi9jb21tb24vZW50aXR5JztcbmltcG9ydCB7IExpc3RJdGVtRGlyZWN0aXZlIH0gZnJvbSAnQGlnbzIvY29tbW9uL2xpc3QnO1xuaW1wb3J0IHsgSWdvTGFuZ3VhZ2VNb2R1bGUgfSBmcm9tICdAaWdvMi9jb3JlL2xhbmd1YWdlJztcblxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IElnb01hcCB9IGZyb20gJy4uLy4uL21hcC9zaGFyZWQvbWFwJztcbmltcG9ydCB7XG4gIEFkZGVkQ2hhbmdlRW1pdHRlcixcbiAgQWRkZWRDaGFuZ2VHcm91cEVtaXR0ZXIsXG4gIENhdGFsb2csXG4gIENhdGFsb2dJdGVtLFxuICBDYXRhbG9nSXRlbUdyb3VwLFxuICBDYXRhbG9nSXRlbVN0YXRlLFxuICBDYXRhbG9nSXRlbVR5cGVcbn0gZnJvbSAnLi4vc2hhcmVkJztcbmltcG9ydCB7IENhdGFsb2dCcm93c2VyTGF5ZXJDb21wb25lbnQgfSBmcm9tICcuL2NhdGFsb2ctYnJvd3Nlci1sYXllci5jb21wb25lbnQnO1xuXG4vKipcbiAqIENhdGFsb2cgYnJvd3NlciBncm91cCBpdGVtXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2lnby1jYXRhbG9nLWJyb3dzZXItZ3JvdXAnLFxuICB0ZW1wbGF0ZVVybDogJy4vY2F0YWxvZy1icm93c2VyLWdyb3VwLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY2F0YWxvZy1icm93c2VyLWdyb3VwLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgTWF0TGlzdE1vZHVsZSxcbiAgICBNYXRJY29uTW9kdWxlLFxuICAgIENvbGxhcHNlRGlyZWN0aXZlLFxuICAgIE1hdFRvb2x0aXBNb2R1bGUsXG4gICAgTmdJZixcbiAgICBNYXRCdXR0b25Nb2R1bGUsXG4gICAgTmdGb3IsXG4gICAgQ2F0YWxvZ0Jyb3dzZXJMYXllckNvbXBvbmVudCxcbiAgICBMaXN0SXRlbURpcmVjdGl2ZSxcbiAgICBBc3luY1BpcGUsXG4gICAgSWdvTGFuZ3VhZ2VNb2R1bGVcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBDYXRhbG9nQnJvd3Nlckdyb3VwQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAvKipcbiAgICogR3JvdXAncyBpdGVtcyBzdG9yZVxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHN0b3JlID0gbmV3IEVudGl0eVN0b3JlPENhdGFsb2dJdGVtLCBDYXRhbG9nSXRlbVN0YXRlPihbXSk7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgYWxsIHRoZSBsYXllcnMgb2YgdGhlIGdyb3VwIGFyZSBhZGRlZFxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIGFkZGVkJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICBwcmV2aWV3JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICAvKipcbiAgICogV2hldGhlciB0aGUgdG9nZ2xlIGJ1dHRvbiBpcyBkaXNhYmxlZFxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIGRpc2FibGVkJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gIC8qKlxuICAgKiBDYXRhbG9nXG4gICAqL1xuICBASW5wdXQoKSBjYXRhbG9nOiBDYXRhbG9nO1xuXG4gIC8qKlxuICAgKiBDYXRhbG9nIGdyb3VwXG4gICAqL1xuICBASW5wdXQoKSBncm91cDogQ2F0YWxvZ0l0ZW1Hcm91cDtcblxuICBASW5wdXQoKSBtYXA6IElnb01hcDtcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgZ3JvdXAgaXMgY29sbGFwc2VkXG4gICAqL1xuICBASW5wdXQoKSBjb2xsYXBzZWQgPSB0cnVlO1xuXG4gIEBJbnB1dCgpIHJlc29sdXRpb246IG51bWJlcjtcblxuICBASW5wdXQoKSBjYXRhbG9nQWxsb3dMZWdlbmQgPSBmYWxzZTtcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgZ3JvdXAgY2FuIGJlIHRvZ2dsZWQgd2hlbiBpdCdzIGNvbGxhcHNlZFxuICAgKi9cbiAgQElucHV0KCkgdG9nZ2xlQ29sbGFwc2VkID0gdHJ1ZTtcblxuICAvKipcbiAgICogUGFyZW50IGNhdGFsb2cncyBpdGVtcyBzdG9yZSBzdGF0ZS4gR3JvdXBzIHNoYXJlIGEgdW5pcXVlXG4gICAqIEVudGl0eVN0YXRlIHRoYXQgdHJhY2tzIHRoZSBncm91cCBhbmQgaXQncyBsYXllcnMgc3RhdGUgKHdoZXRoZXIgdGhleSBhcmUgYWRkZWQgb3Igbm90KS5cbiAgICogU2hhcmluZyBhIHVuaXF1ZSBzdGF0ZSB3b3VsZCBhbHNvIGFsbG93IHVzIHRvIGV4cGFuZCB0aGlzIGNvbXBvbmVudCB0byBhbGxvd1xuICAgKiB0aGUgc2VsZWN0aW9uIG9mIGEgbGF5ZXIgd2hpbGUgdW5zZWxlY3RpbmcgYW55IGxheWVyIGFscmVhZHkgc2VsZWN0ZWQgaW4gYW5vdGhlciBncm91cC5cbiAgICogVGhpcyBjb3VsZCBiZSB1c2VmdWwgdG8gZGlzcGxheSBzb21lIGxheWVyIGluZm8gYmVmb3JlIGFkZGluZyBpdCwgZm9yIGV4YW1wbGUuXG4gICAqL1xuICBASW5wdXQoKSBzdGF0ZTogRW50aXR5U3RhdGVNYW5hZ2VyPENhdGFsb2dJdGVtLCBDYXRhbG9nSXRlbVN0YXRlPjtcblxuICAvKipcbiAgICogRXZlbnQgZW1pdHRlZCB3aGVuIHRoZSBhZGQvcmVtb3ZlIGJ1dHRvbiBvZiB0aGUgZ3JvdXAgaXMgY2xpY2tlZFxuICAgKi9cbiAgQE91dHB1dCgpIGFkZGVkQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxBZGRlZENoYW5nZUdyb3VwRW1pdHRlcj4oKTtcblxuICAvKipcbiAgICogRXZlbnQgZW1pdHRlZCB3aGVuIHRoZSBhZGQvcmVtb3ZlIGJ1dHRvbiBvZiBhIGxheWVyIGlzIGNsaWNrZWRcbiAgICovXG4gIEBPdXRwdXQoKSBsYXllckFkZGVkQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxBZGRlZENoYW5nZUVtaXR0ZXI+KCk7XG5cbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgZ2V0IHRpdGxlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZ3JvdXAudGl0bGU7XG4gIH1cblxuICAvKipcbiAgICogQGludGVybmFsXG4gICAqL1xuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnN0b3JlLmxvYWQodGhpcy5ncm91cC5pdGVtcyk7XG4gICAgdGhpcy5ldmFsdWF0ZUFkZGVkKCk7XG4gICAgdGhpcy5ldmFsdWF0ZURpc2FibGVkKHRoaXMuY29sbGFwc2VkKTtcbiAgICBpZiAodGhpcy5ncm91cC5zb3J0RGlyZWN0aW9uICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuc3RvcmUudmlldy5zb3J0KHtcbiAgICAgICAgZGlyZWN0aW9uOiB0aGlzLmdyb3VwLnNvcnREaXJlY3Rpb24sXG4gICAgICAgIHZhbHVlQWNjZXNzb3I6IChpdGVtOiBDYXRhbG9nSXRlbSkgPT4gaXRlbS50aXRsZVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5zdG9yZS5kZXN0cm95KCk7XG4gIH1cblxuICAvKipcbiAgICogQGludGVybmFsXG4gICAqL1xuICBpc0dyb3VwKGl0ZW06IENhdGFsb2dJdGVtKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGl0ZW0udHlwZSA9PT0gQ2F0YWxvZ0l0ZW1UeXBlLkdyb3VwO1xuICB9XG5cbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgaXNMYXllcihpdGVtOiBDYXRhbG9nSXRlbSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBpdGVtLnR5cGUgPT09IENhdGFsb2dJdGVtVHlwZS5MYXllcjtcbiAgfVxuXG4gIC8qKlxuICAgKiBPbiB0b2dnbGUgYnV0dG9uIGNsaWNrLCBlbWl0IHRoZSBhZGRlZCBjaGFuZ2UgZXZlbnRcbiAgICogQGludGVybmFsXG4gICAqL1xuICBvblRvZ2dsZUNsaWNrKGV2ZW50OiBFdmVudCkge1xuICAgIHRoaXMuYWRkZWQkLnZhbHVlID8gdGhpcy5yZW1vdmUoZXZlbnQpIDogdGhpcy5hZGQoZXZlbnQpO1xuICB9XG5cbiAgLyoqXG4gICAqIE9uIHRvZ2dsZSBidXR0b24gY2xpY2ssIGVtaXQgdGhlIGFkZGVkIGNoYW5nZSBldmVudFxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIG9uVG9nZ2xlQ29sbGFwc2VkKGNvbGxhcHNlZDogYm9vbGVhbikge1xuICAgIHRoaXMuZXZhbHVhdGVEaXNhYmxlZChjb2xsYXBzZWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFdoZW4gYSBsYXllciBpcyBhZGRlZCBvciByZW1vdmVkLCBldmFsdWF0ZSBpZiBhbGwgdGhlIGxheWVycyBvZiB0aGUgZ3JvdXBcbiAgICogYXJlIG5vdyBhZGRlZCBvciByZW1vdmVkLiBJZiBzbywgY29uc2lkZXIgdGhhdCB0aGUgZ3JvdXAgaXRzZWxmIGlzIGFkZGVkXG4gICAqIG9yIHJlbW92ZWQuXG4gICAqIEBpbnRlcm5hbFxuICAgKiBAcGFyYW0gZXZlbnQgTGF5ZXIgYWRkZWQgY2hhbmdlIGV2ZW50XG4gICAqL1xuICBvbkxheWVyQWRkZWRDaGFuZ2UoZXZlbnQ6IEFkZGVkQ2hhbmdlRW1pdHRlcikge1xuICAgIHRoaXMubGF5ZXJBZGRlZENoYW5nZS5lbWl0KGV2ZW50KTtcbiAgICB0aGlzLnRyeVRvZ2dsZUdyb3VwKGV2ZW50KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFbWl0IGFkZGVkIGNoYW5nZSBldmVudCB3aXRoIGFkZGVkID0gdHJ1ZVxuICAgKi9cbiAgcHJpdmF0ZSBhZGQoZXZlbnQ6IEV2ZW50KSB7XG4gICAgdGhpcy5hZGRlZCQubmV4dCh0cnVlKTtcbiAgICB0aGlzLmFkZGVkQ2hhbmdlLmVtaXQoe1xuICAgICAgYWRkZWQ6IHRydWUsXG4gICAgICBncm91cDogdGhpcy5ncm91cCxcbiAgICAgIGV2ZW50XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogRW1pdCBhZGRlZCBjaGFuZ2UgZXZlbnQgd2l0aCBhZGRlZCA9IHRydWVcbiAgICovXG4gIHByaXZhdGUgcmVtb3ZlKGV2ZW50OiBFdmVudCkge1xuICAgIHRoaXMuYWRkZWQkLm5leHQoZmFsc2UpO1xuICAgIHRoaXMuYWRkZWRDaGFuZ2UuZW1pdCh7XG4gICAgICBhZGRlZDogZmFsc2UsXG4gICAgICBncm91cDogdGhpcy5ncm91cCxcbiAgICAgIGV2ZW50XG4gICAgfSk7XG4gIH1cblxuICBvbkxheWVyUHJldmlldyhldmVudCkge1xuICAgIHRoaXMucHJldmlldyQubmV4dChldmVudCk7XG4gIH1cblxuICAvKipcbiAgICogSWYgYWxsIHRoZSBsYXllcnMgb2YgdGhlIGdyb3VwIGFkZGVkIG9yIHJlbW92ZWQsIGFkZCBvciByZW1vdmUgdGhlIGdyb3VwIGl0c2VsZi5cbiAgICogQHBhcmFtIGV2ZW50IFRoZSBsYXN0IGxheWVyIGFkZGVkIGNoYW5nZSBldmVudCB0byBvY2N1clxuICAgKi9cbiAgcHJpdmF0ZSB0cnlUb2dnbGVHcm91cChldmVudDogQWRkZWRDaGFuZ2VFbWl0dGVyKSB7XG4gICAgY29uc3QgYWRkZWQgPSBldmVudC5hZGRlZDtcbiAgICBjb25zdCBsYXllciA9IGV2ZW50LmxheWVyO1xuXG4gICAgY29uc3QgbGF5ZXJzQWRkZWQgPSB0aGlzLnN0b3JlLnZpZXdcbiAgICAgIC5hbGwoKVxuICAgICAgLmZpbHRlcigoaXRlbTogQ2F0YWxvZ0l0ZW0pID0+IGl0ZW0uaWQgIT09IGxheWVyLmlkKVxuICAgICAgLm1hcCgoaXRlbTogQ2F0YWxvZ0l0ZW0pID0+IHRoaXMuc3RhdGUuZ2V0KGl0ZW0pLmFkZGVkIHx8IGZhbHNlKTtcblxuICAgIGlmIChsYXllcnNBZGRlZC5ldmVyeSgodmFsdWUpID0+IHZhbHVlID09PSBhZGRlZCkpIHtcbiAgICAgIGFkZGVkID8gdGhpcy5hZGQoZXZlbnQuZXZlbnQpIDogdGhpcy5yZW1vdmUoZXZlbnQuZXZlbnQpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5hZGRlZCQudmFsdWUgPT09IHRydWUpIHtcbiAgICAgIHRoaXMuYWRkZWQkLm5leHQoZmFsc2UpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZXZhbHVhdGVBZGRlZCgpIHtcbiAgICBjb25zdCBhZGRlZCA9IHRoaXMuc3RvcmUuYWxsKCkuZXZlcnkoKGl0ZW06IENhdGFsb2dJdGVtKSA9PiB7XG4gICAgICByZXR1cm4gKHRoaXMuc3RhdGUuZ2V0KGl0ZW0pLmFkZGVkIHx8IGZhbHNlKSA9PT0gdHJ1ZTtcbiAgICB9KTtcbiAgICB0aGlzLmFkZGVkJC5uZXh0KGFkZGVkKTtcbiAgfVxuXG4gIHByaXZhdGUgZXZhbHVhdGVEaXNhYmxlZChjb2xsYXBzZWQ6IGJvb2xlYW4pIHtcbiAgICBsZXQgZGlzYWJsZWQgPSBmYWxzZTtcbiAgICBpZiAodGhpcy50b2dnbGVDb2xsYXBzZWQgPT09IGZhbHNlKSB7XG4gICAgICBkaXNhYmxlZCA9IGNvbGxhcHNlZDtcbiAgICB9XG4gICAgdGhpcy5kaXNhYmxlZCQubmV4dChkaXNhYmxlZCk7XG4gIH1cblxuICBvblRpdGxlQ2xpY2soKSB7XG4gICAgdGhpcy5jb2xsYXBzZWQgPSAhdGhpcy5jb2xsYXBzZWQ7XG4gIH1cbn1cbiIsIjxtYXQtbGlzdC1pdGVtPlxuICA8bWF0LWljb25cbiAgICBtYXRMaXN0SXRlbUljb25cbiAgICBpZ29Db2xsYXBzZVxuICAgIGNsYXNzPVwiaWdvLWNoZXZyb24gY2F0YWxvZy1icm93c2VyLWdyb3VwLWNhcnJldFwiXG4gICAgW3RhcmdldF09XCJpdGVtc1wiXG4gICAgW2NvbGxhcHNlZF09XCJjb2xsYXBzZWRcIlxuICAgICh0b2dnbGUpPVwib25Ub2dnbGVDb2xsYXBzZWQoJGV2ZW50KVwiXG4gID5cbiAgICBleHBhbmRfbGVzc1xuICA8L21hdC1pY29uPlxuXG4gIDxzcGFuXG4gICAgY2xhc3M9XCJpZ28tY2F0YWxvZy1ncm91cC10aXRsZVwiXG4gICAgbWF0TGlzdEl0ZW1UaXRsZVxuICAgIG1hdFRvb2x0aXBTaG93RGVsYXk9XCI1MDBcIlxuICAgIFttYXRUb29sdGlwXT1cInRpdGxlXCJcbiAgICAoY2xpY2spPVwib25UaXRsZUNsaWNrKClcIlxuICAgID57eyB0aXRsZSB9fTwvc3BhblxuICA+XG5cbiAgPGRpdiBtYXRMaXN0SXRlbU1ldGE+XG4gICAgPGJ1dHRvbiAqbmdJZj1cImdyb3VwLmV4dGVybmFsUHJvdmlkZXJcIiBkaXNhYmxlZD1cInRydWVcIiBtYXQtaWNvbi1idXR0b24+XG4gICAgICA8bWF0LWljb25cbiAgICAgICAgY2xhc3M9XCJpZ28tY2F0YWxvZ2dyb3VwLWV4dGVybmFsLWljb25cIlxuICAgICAgICAqbmdJZj1cImdyb3VwLmV4dGVybmFsUHJvdmlkZXJcIlxuICAgICAgICB0b29sdGlwLXBvc2l0aW9uPVwiYmVsb3dcIlxuICAgICAgICBtYXRUb29sdGlwU2hvd0RlbGF5PVwiNTAwXCJcbiAgICAgICAgW21hdFRvb2x0aXBdPVwiJ2lnby5nZW8uY2F0YWxvZy5leHRlcm5hbFByb3ZpZGVyLmdyb3VwJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgIGNvbG9yPVwicHJpbWFyeVwiXG4gICAgICAgIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgPlxuICAgICAgICBwdWJsaWNcbiAgICAgIDwvbWF0LWljb24+XG4gICAgPC9idXR0b24+XG5cbiAgICA8bmctY29udGFpbmVyXG4gICAgICAqbmdJZj1cIihhZGRlZCQgfCBhc3luYykgJiYgKHByZXZpZXckIHwgYXN5bmMpID09PSBmYWxzZTsgZWxzZSBub3RhZGRlZFwiXG4gICAgPlxuICAgICAgPGJ1dHRvblxuICAgICAgICBtYXQtaWNvbi1idXR0b25cbiAgICAgICAgdG9vbHRpcC1wb3NpdGlvbj1cImJlbG93XCJcbiAgICAgICAgbWF0VG9vbHRpcFNob3dEZWxheT1cIjUwMFwiXG4gICAgICAgIFttYXRUb29sdGlwXT1cIidpZ28uZ2VvLmNhdGFsb2cuZ3JvdXAucmVtb3ZlRnJvbU1hcCcgfCB0cmFuc2xhdGVcIlxuICAgICAgICBjb2xvcj1cIndhcm5cIlxuICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQkIHwgYXN5bmNcIlxuICAgICAgICAoY2xpY2spPVwib25Ub2dnbGVDbGljaygkZXZlbnQpXCJcbiAgICAgID5cbiAgICAgICAgPG1hdC1pY29uPmRlbGV0ZTwvbWF0LWljb24+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDxuZy10ZW1wbGF0ZSAjbm90YWRkZWQ+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIG1hdC1pY29uLWJ1dHRvblxuICAgICAgICB0b29sdGlwLXBvc2l0aW9uPVwiYmVsb3dcIlxuICAgICAgICBtYXRUb29sdGlwU2hvd0RlbGF5PVwiNTAwXCJcbiAgICAgICAgW21hdFRvb2x0aXBdPVwiJ2lnby5nZW8uY2F0YWxvZy5ncm91cC5hZGRUb01hcCcgfCB0cmFuc2xhdGVcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQkIHwgYXN5bmNcIlxuICAgICAgICAoY2xpY2spPVwib25Ub2dnbGVDbGljaygkZXZlbnQpXCJcbiAgICAgID5cbiAgICAgICAgPG1hdC1pY29uPmFkZDwvbWF0LWljb24+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L2Rpdj5cbjwvbWF0LWxpc3QtaXRlbT5cblxuPGRpdiAjaXRlbXM+XG4gIDxuZy10ZW1wbGF0ZSBuZ0ZvciBsZXQtaXRlbSBbbmdGb3JPZl09XCJzdG9yZS52aWV3LmFsbCQoKSB8IGFzeW5jXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzR3JvdXAoaXRlbSlcIj5cbiAgICAgIDwhLS0gdG9kbzogYWRkIGRpc3BsYXkgYW5zIG1hbmFnZSBDYXRhbG9nSXRlbUdyb3VwIC0tPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc0xheWVyKGl0ZW0pXCI+XG4gICAgICA8aWdvLWNhdGFsb2ctYnJvd3Nlci1sYXllclxuICAgICAgICBpZ29MaXN0SXRlbVxuICAgICAgICBbbGF5ZXJdPVwiJGFueShpdGVtKVwiXG4gICAgICAgIFtyZXNvbHV0aW9uXT1cInJlc29sdXRpb25cIlxuICAgICAgICBbbWFwXT1cIm1hcFwiXG4gICAgICAgIFtjYXRhbG9nQWxsb3dMZWdlbmRdPVwiY2F0YWxvZ0FsbG93TGVnZW5kXCJcbiAgICAgICAgW2FkZGVkXT1cInN0YXRlLmdldChpdGVtKS5hZGRlZFwiXG4gICAgICAgIChhZGRlZExheWVySXNQcmV2aWV3KT1cIm9uTGF5ZXJQcmV2aWV3KCRldmVudClcIlxuICAgICAgICAoYWRkZWRDaGFuZ2UpPVwib25MYXllckFkZGVkQ2hhbmdlKCRldmVudClcIlxuICAgICAgPlxuICAgICAgPC9pZ28tY2F0YWxvZy1icm93c2VyLWxheWVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L25nLXRlbXBsYXRlPlxuPC9kaXY+XG4iXX0=