@igo2/geo 1.14.2 → 1.15.0

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 (493) hide show
  1. package/assets/icons/cross_black_18px.svg +88 -88
  2. package/assets/icons/place_blue_36px.svg +55 -55
  3. package/assets/icons/place_green_36px.svg +55 -55
  4. package/assets/icons/place_red_36px.svg +55 -55
  5. package/assets/icons/place_yellow_36px.svg +55 -55
  6. package/esm2020/lib/catalog/catalog-browser/catalog-browser-group.component.mjs +13 -11
  7. package/esm2020/lib/catalog/catalog-browser/catalog-browser-layer.component.mjs +10 -10
  8. package/esm2020/lib/catalog/catalog-browser/catalog-browser.component.mjs +20 -17
  9. package/esm2020/lib/catalog/catalog-browser/catalog-browser.module.mjs +1 -1
  10. package/esm2020/lib/catalog/catalog-library/add-catalog-dialog.component.mjs +2 -2
  11. package/esm2020/lib/catalog/catalog-library/catalog-library-item.component.mjs +2 -2
  12. package/esm2020/lib/catalog/catalog-library/catalog-library.component.mjs +7 -12
  13. package/esm2020/lib/catalog/catalog-library/catalog-library.module.mjs +1 -1
  14. package/esm2020/lib/catalog/catalog.module.mjs +1 -1
  15. package/esm2020/lib/catalog/shared/catalog.abstract.mjs +1 -1
  16. package/esm2020/lib/catalog/shared/catalog.enum.mjs +1 -1
  17. package/esm2020/lib/catalog/shared/catalog.interface.mjs +1 -1
  18. package/esm2020/lib/catalog/shared/catalog.service.mjs +3 -5
  19. package/esm2020/lib/datasource/datasource.module.mjs +1 -1
  20. package/esm2020/lib/datasource/shared/capabilities.service.mjs +2 -2
  21. package/esm2020/lib/datasource/shared/datasource.service.mjs +27 -31
  22. package/esm2020/lib/datasource/shared/datasources/any-datasource.interface.mjs +1 -1
  23. package/esm2020/lib/datasource/shared/datasources/any-datasource.mjs +1 -1
  24. package/esm2020/lib/datasource/shared/datasources/arcgisrest-datasource.interface.mjs +1 -1
  25. package/esm2020/lib/datasource/shared/datasources/arcgisrest-datasource.mjs +1 -1
  26. package/esm2020/lib/datasource/shared/datasources/carto-datasource.interface.mjs +1 -1
  27. package/esm2020/lib/datasource/shared/datasources/carto-datasource.mjs +1 -1
  28. package/esm2020/lib/datasource/shared/datasources/cluster-datasource.interface.mjs +1 -1
  29. package/esm2020/lib/datasource/shared/datasources/cluster-datasource.mjs +1 -1
  30. package/esm2020/lib/datasource/shared/datasources/data.service.mjs +1 -1
  31. package/esm2020/lib/datasource/shared/datasources/datasource.interface.mjs +1 -1
  32. package/esm2020/lib/datasource/shared/datasources/datasource.mjs +1 -1
  33. package/esm2020/lib/datasource/shared/datasources/feature-datasource.interface.mjs +1 -1
  34. package/esm2020/lib/datasource/shared/datasources/feature-datasource.mjs +1 -1
  35. package/esm2020/lib/datasource/shared/datasources/imagearcgisrest-datasource.interface.mjs +1 -1
  36. package/esm2020/lib/datasource/shared/datasources/imagearcgisrest-datasource.mjs +1 -1
  37. package/esm2020/lib/datasource/shared/datasources/mvt-datasource.interface.mjs +1 -1
  38. package/esm2020/lib/datasource/shared/datasources/mvt-datasource.mjs +1 -1
  39. package/esm2020/lib/datasource/shared/datasources/osm-datasource.interface.mjs +1 -1
  40. package/esm2020/lib/datasource/shared/datasources/osm-datasource.mjs +1 -1
  41. package/esm2020/lib/datasource/shared/datasources/tilearcgisrest-datasource.interface.mjs +1 -1
  42. package/esm2020/lib/datasource/shared/datasources/tilearcgisrest-datasource.mjs +1 -1
  43. package/esm2020/lib/datasource/shared/datasources/tiledebug-datasource.interface.mjs +1 -1
  44. package/esm2020/lib/datasource/shared/datasources/tiledebug-datasource.mjs +1 -1
  45. package/esm2020/lib/datasource/shared/datasources/websocket-datasource.interface.mjs +1 -1
  46. package/esm2020/lib/datasource/shared/datasources/websocket-datasource.mjs +1 -1
  47. package/esm2020/lib/datasource/shared/datasources/wfs-datasource.interface.mjs +1 -1
  48. package/esm2020/lib/datasource/shared/datasources/wfs-datasource.mjs +1 -1
  49. package/esm2020/lib/datasource/shared/datasources/wfs.service.mjs +1 -1
  50. package/esm2020/lib/datasource/shared/datasources/wms-datasource.interface.mjs +1 -1
  51. package/esm2020/lib/datasource/shared/datasources/wms-datasource.mjs +1 -1
  52. package/esm2020/lib/datasource/shared/datasources/wms-wfs.utils.mjs +1 -1
  53. package/esm2020/lib/datasource/shared/datasources/wmts-datasource.interface.mjs +1 -1
  54. package/esm2020/lib/datasource/shared/datasources/wmts-datasource.mjs +1 -1
  55. package/esm2020/lib/datasource/shared/datasources/xyz-datasource.interface.mjs +1 -1
  56. package/esm2020/lib/datasource/shared/datasources/xyz-datasource.mjs +1 -1
  57. package/esm2020/lib/datasource/shared/options/options-api.providers.mjs +1 -1
  58. package/esm2020/lib/datasource/shared/options/options-api.service.mjs +1 -1
  59. package/esm2020/lib/datasource/shared/options/options.service.mjs +1 -1
  60. package/esm2020/lib/datasource/utils/index.mjs +1 -2
  61. package/esm2020/lib/datasource/utils/tilegrid.mjs +1 -1
  62. package/esm2020/lib/directions/directions-buttons/directions-buttons.component.mjs +4 -10
  63. package/esm2020/lib/directions/directions-inputs/directions-inputs.component.mjs +2 -2
  64. package/esm2020/lib/directions/directions-results/directions-results.component.mjs +2 -2
  65. package/esm2020/lib/directions/directions-sources/directions-source.mjs +1 -1
  66. package/esm2020/lib/directions/directions-sources/directions-source.provider.mjs +1 -1
  67. package/esm2020/lib/directions/directions-sources/osrm-directions-source.mjs +1 -1
  68. package/esm2020/lib/directions/directions.component.mjs +2 -2
  69. package/esm2020/lib/directions/directions.module.mjs +1 -1
  70. package/esm2020/lib/directions/shared/directions-source.service.mjs +1 -1
  71. package/esm2020/lib/directions/shared/directions.interface.mjs +1 -1
  72. package/esm2020/lib/directions/shared/directions.service.mjs +1 -1
  73. package/esm2020/lib/directions/shared/directions.utils.mjs +2 -2
  74. package/esm2020/lib/directions/shared/store.mjs +1 -1
  75. package/esm2020/lib/download/download-button/download-button.component.mjs +2 -2
  76. package/esm2020/lib/download/download.module.mjs +1 -1
  77. package/esm2020/lib/download/shared/download.interface.mjs +1 -1
  78. package/esm2020/lib/download/shared/download.service.mjs +5 -8
  79. package/esm2020/lib/draw/draw/draw-layer-popup.component.mjs +2 -2
  80. package/esm2020/lib/draw/draw/draw-popup.component.mjs +3 -3
  81. package/esm2020/lib/draw/draw/draw-shorcuts.component.mjs +2 -2
  82. package/esm2020/lib/draw/draw/draw.component.mjs +11 -10
  83. package/esm2020/lib/draw/draw/draw.module.mjs +1 -1
  84. package/esm2020/lib/draw/drawingTool.module.mjs +1 -1
  85. package/esm2020/lib/draw/shared/draw-icon.service.mjs +1 -1
  86. package/esm2020/lib/draw/shared/draw.enum.mjs +1 -17
  87. package/esm2020/lib/draw/shared/draw.interface.mjs +1 -1
  88. package/esm2020/lib/draw/shared/draw.utils.mjs +1 -1
  89. package/esm2020/lib/draw/shared/index.mjs +1 -2
  90. package/esm2020/lib/feature/feature-details/feature-details.component.mjs +4 -5
  91. package/esm2020/lib/feature/feature-details/feature-details.directive.mjs +1 -1
  92. package/esm2020/lib/feature/feature-details/feature-details.module.mjs +1 -1
  93. package/esm2020/lib/feature/feature-form/feature-form.component.mjs +2 -2
  94. package/esm2020/lib/feature/feature-form/feature-form.module.mjs +1 -1
  95. package/esm2020/lib/feature/feature.module.mjs +1 -1
  96. package/esm2020/lib/feature/shared/feature.interfaces.mjs +1 -1
  97. package/esm2020/lib/feature/shared/feature.utils.mjs +7 -5
  98. package/esm2020/lib/feature/shared/store.mjs +10 -1
  99. package/esm2020/lib/feature/shared/strategies/in-map-extent.mjs +1 -1
  100. package/esm2020/lib/feature/shared/strategies/in-map-resolution.mjs +1 -1
  101. package/esm2020/lib/feature/shared/strategies/index.mjs +2 -1
  102. package/esm2020/lib/feature/shared/strategies/loading-layer.mjs +1 -1
  103. package/esm2020/lib/feature/shared/strategies/loading.mjs +1 -1
  104. package/esm2020/lib/feature/shared/strategies/search.mjs +150 -0
  105. package/esm2020/lib/feature/shared/strategies/selection.mjs +1 -1
  106. package/esm2020/lib/feature/shared/strategies.utils.mjs +1 -1
  107. package/esm2020/lib/filter/filter.module.mjs +1 -1
  108. package/esm2020/lib/filter/ogc-filter-button/ogc-filter-button.component.mjs +2 -2
  109. package/esm2020/lib/filter/ogc-filter-form/ogc-filter-form.component.mjs +2 -2
  110. package/esm2020/lib/filter/ogc-filter-selection/ogc-filter-selection.component.mjs +2 -2
  111. package/esm2020/lib/filter/ogc-filter-time/ogc-filter-time-slider.component.mjs +2 -2
  112. package/esm2020/lib/filter/ogc-filter-time/ogc-filter-time.component.mjs +2 -2
  113. package/esm2020/lib/filter/ogc-filterable-form/ogc-filterable-form.component.mjs +2 -2
  114. package/esm2020/lib/filter/ogc-filterable-item/ogc-filterable-item.component.mjs +2 -2
  115. package/esm2020/lib/filter/ogc-filterable-list/ogc-filterable-list-binding.directive.mjs +1 -1
  116. package/esm2020/lib/filter/ogc-filterable-list/ogc-filterable-list.component.mjs +2 -2
  117. package/esm2020/lib/filter/shared/filterable-datasource.pipe.mjs +1 -1
  118. package/esm2020/lib/filter/shared/ogc-filter-time.service.mjs +1 -1
  119. package/esm2020/lib/filter/shared/ogc-filter.enum.mjs +1 -1
  120. package/esm2020/lib/filter/shared/ogc-filter.interface.mjs +1 -1
  121. package/esm2020/lib/filter/shared/ogc-filter.mjs +1 -1
  122. package/esm2020/lib/filter/shared/ogc-filter.service.mjs +1 -1
  123. package/esm2020/lib/filter/shared/spatial-filter.enum.mjs +1 -1
  124. package/esm2020/lib/filter/shared/spatial-filter.service.mjs +1 -1
  125. package/esm2020/lib/filter/shared/time-filter.enum.mjs +1 -1
  126. package/esm2020/lib/filter/shared/time-filter.interface.mjs +1 -1
  127. package/esm2020/lib/filter/shared/time-filter.service.mjs +1 -1
  128. package/esm2020/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.mjs +5 -5
  129. package/esm2020/lib/filter/spatial-filter/spatial-filter-list/spatial-filter-list.component.mjs +6 -7
  130. package/esm2020/lib/filter/spatial-filter/spatial-filter-type/spatial-filter-type.component.mjs +2 -2
  131. package/esm2020/lib/filter/time-filter-button/time-filter-button.component.mjs +2 -2
  132. package/esm2020/lib/filter/time-filter-form/time-filter-form.component.mjs +2 -2
  133. package/esm2020/lib/filter/time-filter-item/time-filter-item.component.mjs +2 -2
  134. package/esm2020/lib/filter/time-filter-list/time-filter-list-binding.directive.mjs +1 -1
  135. package/esm2020/lib/filter/time-filter-list/time-filter-list.component.mjs +2 -2
  136. package/esm2020/lib/geo.module.mjs +5 -1
  137. package/esm2020/lib/geometry/geometry-form-field/geometry-form-field-input.component.mjs +13 -12
  138. package/esm2020/lib/geometry/geometry-form-field/geometry-form-field.component.mjs +2 -2
  139. package/esm2020/lib/geometry/geometry-form-field/geometry-form-field.module.mjs +1 -1
  140. package/esm2020/lib/geometry/geometry.module.mjs +1 -1
  141. package/esm2020/lib/geometry/shared/controls/draw.mjs +1 -1
  142. package/esm2020/lib/geometry/shared/controls/modify.mjs +1 -1
  143. package/esm2020/lib/geometry/shared/controls/slice.mjs +1 -1
  144. package/esm2020/lib/geometry/shared/geometry.errors.mjs +1 -1
  145. package/esm2020/lib/geometry/shared/geometry.interfaces.mjs +1 -1
  146. package/esm2020/lib/geometry/shared/geometry.utils.mjs +1 -1
  147. package/esm2020/lib/import-export/export-button/export-button.component.mjs +2 -2
  148. package/esm2020/lib/import-export/import-export/import-export.component.mjs +53 -45
  149. package/esm2020/lib/import-export/import-export.module.mjs +5 -9
  150. package/esm2020/lib/import-export/index.mjs +1 -2
  151. package/esm2020/lib/import-export/shared/drop-geo-file.directive.mjs +31 -14
  152. package/esm2020/lib/import-export/shared/export.interface.mjs +1 -1
  153. package/esm2020/lib/import-export/shared/export.service.mjs +1 -1
  154. package/esm2020/lib/import-export/shared/export.type.mjs +1 -1
  155. package/esm2020/lib/import-export/shared/export.utils.mjs +8 -17
  156. package/esm2020/lib/import-export/shared/import.errors.mjs +1 -1
  157. package/esm2020/lib/import-export/shared/import.interface.mjs +1 -1
  158. package/esm2020/lib/import-export/shared/import.service.mjs +1 -1
  159. package/esm2020/lib/import-export/shared/import.utils.mjs +58 -91
  160. package/esm2020/lib/layer/index.mjs +1 -2
  161. package/esm2020/lib/layer/layer-item/layer-item.component.mjs +2 -2
  162. package/esm2020/lib/layer/layer-legend/layer-legend.component.mjs +3 -3
  163. package/esm2020/lib/layer/layer-legend-item/layer-legend-item.component.mjs +2 -2
  164. package/esm2020/lib/layer/layer-legend-list/layer-legend-list-binding.directive.mjs +1 -1
  165. package/esm2020/lib/layer/layer-legend-list/layer-legend-list.component.mjs +2 -2
  166. package/esm2020/lib/layer/layer-list/layer-list-binding.directive.mjs +1 -1
  167. package/esm2020/lib/layer/layer-list/layer-list.component.mjs +2 -2
  168. package/esm2020/lib/layer/layer-list/layer-list.enum.mjs +1 -1
  169. package/esm2020/lib/layer/layer-list-tool/layer-list-tool.component.mjs +2 -2
  170. package/esm2020/lib/layer/layer-list-tool/layer-list-tool.interface.mjs +1 -1
  171. package/esm2020/lib/layer/layer-list-tool/layer-list-tool.service.mjs +1 -1
  172. package/esm2020/lib/layer/layer.module.mjs +6 -11
  173. package/esm2020/lib/layer/shared/clusterParam.mjs +1 -1
  174. package/esm2020/lib/layer/shared/index.mjs +1 -3
  175. package/esm2020/lib/layer/shared/layer.service.mjs +80 -29
  176. package/esm2020/lib/layer/shared/layers/any-layer.interface.mjs +1 -1
  177. package/esm2020/lib/layer/shared/layers/any-layer.mjs +1 -1
  178. package/esm2020/lib/layer/shared/layers/image-layer.interface.mjs +1 -1
  179. package/esm2020/lib/layer/shared/layers/image-layer.mjs +6 -7
  180. package/esm2020/lib/layer/shared/layers/layer.interface.mjs +1 -1
  181. package/esm2020/lib/layer/shared/layers/layer.mjs +5 -3
  182. package/esm2020/lib/layer/shared/layers/tile-layer.interface.mjs +1 -1
  183. package/esm2020/lib/layer/shared/layers/tile-layer.mjs +1 -1
  184. package/esm2020/lib/layer/shared/layers/vector-layer.interface.mjs +1 -1
  185. package/esm2020/lib/layer/shared/layers/vector-layer.mjs +153 -6
  186. package/esm2020/lib/layer/shared/layers/vectortile-layer.interface.mjs +1 -1
  187. package/esm2020/lib/layer/shared/layers/vectortile-layer.mjs +1 -1
  188. package/esm2020/lib/layer/track-feature-button/track-feature-button.component.mjs +2 -2
  189. package/esm2020/lib/layer/utils/image-watcher.mjs +3 -6
  190. package/esm2020/lib/layer/utils/layer.utils.mjs +2 -2
  191. package/esm2020/lib/layer/utils/outputLegend.mjs +3 -2
  192. package/esm2020/lib/layer/utils/tile-watcher.mjs +1 -1
  193. package/esm2020/lib/layer/utils/vector-watcher.mjs +1 -1
  194. package/esm2020/lib/map/baselayers-switcher/baselayers-switcher.animation.mjs +1 -1
  195. package/esm2020/lib/map/baselayers-switcher/baselayers-switcher.component.mjs +2 -2
  196. package/esm2020/lib/map/baselayers-switcher/mini-basemap.component.mjs +2 -2
  197. package/esm2020/lib/map/geolocate-button/geolocate-button.component.mjs +2 -2
  198. package/esm2020/lib/map/info-section/info-section.component.mjs +2 -2
  199. package/esm2020/lib/map/map-browser/map-browser.component.mjs +3 -3
  200. package/esm2020/lib/map/map-center/map-center.component.mjs +2 -2
  201. package/esm2020/lib/map/map.module.mjs +1 -1
  202. package/esm2020/lib/map/menu-button/menu-button.component.mjs +3 -3
  203. package/esm2020/lib/map/offline-button/offline-button.component.mjs +34 -57
  204. package/esm2020/lib/map/rotation-button/rotation-button.component.mjs +2 -2
  205. package/esm2020/lib/map/shared/controllers/controller.mjs +1 -1
  206. package/esm2020/lib/map/shared/controllers/geolocation.mjs +151 -36
  207. package/esm2020/lib/map/shared/controllers/view.mjs +1 -1
  208. package/esm2020/lib/map/shared/hover-feature.directive.mjs +24 -73
  209. package/esm2020/lib/map/shared/linkedLayers.utils.mjs +3 -3
  210. package/esm2020/lib/map/shared/map-pointer-position.directive.mjs +1 -1
  211. package/esm2020/lib/map/shared/map.interface.mjs +1 -1
  212. package/esm2020/lib/map/shared/map.mjs +7 -5
  213. package/esm2020/lib/map/shared/map.service.mjs +1 -1
  214. package/esm2020/lib/map/shared/map.utils.mjs +1 -1
  215. package/esm2020/lib/map/shared/mapOffline.directive.mjs +50 -115
  216. package/esm2020/lib/map/shared/projection.interfaces.mjs +1 -1
  217. package/esm2020/lib/map/shared/projection.service.mjs +1 -1
  218. package/esm2020/lib/map/shared/projection.utils.mjs +1 -1
  219. package/esm2020/lib/map/swipe-control/swipe-control.component.mjs +3 -3
  220. package/esm2020/lib/map/utils/layer-watcher.mjs +1 -1
  221. package/esm2020/lib/map/wake-lock-button/wake-lock-button.component.mjs +24 -35
  222. package/esm2020/lib/map/zoom-button/zoom-button.component.mjs +2 -2
  223. package/esm2020/lib/measure/measure.module.mjs +1 -1
  224. package/esm2020/lib/measure/measurer/measure-format.pipe.mjs +1 -1
  225. package/esm2020/lib/measure/measurer/measurer-dialog.component.mjs +2 -2
  226. package/esm2020/lib/measure/measurer/measurer-item.component.mjs +2 -2
  227. package/esm2020/lib/measure/measurer/measurer.component.mjs +2 -2
  228. package/esm2020/lib/measure/measurer/measurer.module.mjs +1 -1
  229. package/esm2020/lib/measure/shared/measure.enum.mjs +1 -1
  230. package/esm2020/lib/measure/shared/measure.interfaces.mjs +1 -1
  231. package/esm2020/lib/measure/shared/measure.utils.mjs +1 -1
  232. package/esm2020/lib/metadata/metadata-button/metadata-button.component.mjs +3 -3
  233. package/esm2020/lib/metadata/metadata.module.mjs +1 -1
  234. package/esm2020/lib/metadata/shared/metadata.interface.mjs +1 -1
  235. package/esm2020/lib/metadata/shared/metadata.service.mjs +1 -1
  236. package/esm2020/lib/offline/geoDB/configFileToGeoDB.service.mjs +4 -4
  237. package/esm2020/lib/offline/geoDB/geoDB.enums.mjs +1 -1
  238. package/esm2020/lib/offline/geoDB/geoDB.interface.mjs +1 -1
  239. package/esm2020/lib/offline/geoDB/geoDB.service.mjs +2 -2
  240. package/esm2020/lib/offline/index.mjs +2 -1
  241. package/esm2020/lib/offline/layerDB/index.mjs +3 -0
  242. package/esm2020/lib/offline/layerDB/layerDB.interface.mjs +2 -0
  243. package/esm2020/lib/offline/layerDB/layerDB.service.mjs +76 -0
  244. package/esm2020/lib/offline/shared/geo-network.service.mjs +1 -1
  245. package/esm2020/lib/overlay/overlay.module.mjs +1 -1
  246. package/esm2020/lib/overlay/shared/index.mjs +1 -2
  247. package/esm2020/lib/overlay/shared/overlay.directive.mjs +1 -1
  248. package/esm2020/lib/overlay/shared/overlay.enum.mjs +1 -1
  249. package/esm2020/lib/overlay/shared/overlay.mjs +1 -1
  250. package/esm2020/lib/overlay/shared/overlay.service.mjs +1 -1
  251. package/esm2020/lib/overlay/shared/overlay.utils.mjs +2 -88
  252. package/esm2020/lib/print/print/print.component.mjs +6 -20
  253. package/esm2020/lib/print/print-form/print-form.component.mjs +197 -111
  254. package/esm2020/lib/print/print.module.mjs +1 -1
  255. package/esm2020/lib/print/shared/geopdf.mjs +1 -1
  256. package/esm2020/lib/print/shared/index.mjs +1 -1
  257. package/esm2020/lib/print/shared/print.interface.mjs +1 -1
  258. package/esm2020/lib/print/shared/print.service.mjs +85 -35
  259. package/esm2020/lib/print/shared/print.type.mjs +1 -1
  260. package/esm2020/lib/query/query.module.mjs +1 -1
  261. package/esm2020/lib/query/shared/query-search-source.mjs +1 -1
  262. package/esm2020/lib/query/shared/query-search-source.providers.mjs +1 -1
  263. package/esm2020/lib/query/shared/query.directive.mjs +1 -1
  264. package/esm2020/lib/query/shared/query.interfaces.mjs +1 -1
  265. package/esm2020/lib/query/shared/query.service.mjs +3 -5
  266. package/esm2020/lib/query/shared/query.utils.mjs +1 -1
  267. package/esm2020/lib/search/search-bar/search-bar.component.mjs +3 -3
  268. package/esm2020/lib/search/search-bar/search-bar.module.mjs +1 -1
  269. package/esm2020/lib/search/search-bar/search-url-param.directive.mjs +1 -1
  270. package/esm2020/lib/search/search-results/save-feature-dialog.component.mjs +4 -4
  271. package/esm2020/lib/search/search-results/search-results-add-button.component.mjs +88 -31
  272. package/esm2020/lib/search/search-results/search-results-item.component.mjs +36 -13
  273. package/esm2020/lib/search/search-results/search-results.component.mjs +172 -58
  274. package/esm2020/lib/search/search-results/search-results.module.mjs +5 -1
  275. package/esm2020/lib/search/search-selector/search-selector.component.mjs +2 -2
  276. package/esm2020/lib/search/search-selector/search-selector.module.mjs +1 -1
  277. package/esm2020/lib/search/search-settings/search-settings.component.mjs +2 -2
  278. package/esm2020/lib/search/search-settings/search-settings.module.mjs +1 -1
  279. package/esm2020/lib/search/search.module.mjs +1 -1
  280. package/esm2020/lib/search/shared/search-pointer-summary.directive.mjs +3 -30
  281. package/esm2020/lib/search/shared/search-source-service.providers.mjs +1 -1
  282. package/esm2020/lib/search/shared/search-source.service.mjs +9 -1
  283. package/esm2020/lib/search/shared/search.enums.mjs +1 -1
  284. package/esm2020/lib/search/shared/search.interfaces.mjs +1 -1
  285. package/esm2020/lib/search/shared/search.service.mjs +1 -1
  286. package/esm2020/lib/search/shared/search.utils.mjs +3 -3
  287. package/esm2020/lib/search/shared/sources/coordinates.interfaces.mjs +1 -1
  288. package/esm2020/lib/search/shared/sources/coordinates.mjs +1 -1
  289. package/esm2020/lib/search/shared/sources/coordinates.providers.mjs +4 -4
  290. package/esm2020/lib/search/shared/sources/icherche.interfaces.mjs +1 -1
  291. package/esm2020/lib/search/shared/sources/icherche.mjs +1 -1
  292. package/esm2020/lib/search/shared/sources/icherche.providers.mjs +1 -1
  293. package/esm2020/lib/search/shared/sources/ilayer.interfaces.mjs +1 -1
  294. package/esm2020/lib/search/shared/sources/ilayer.mjs +1 -1
  295. package/esm2020/lib/search/shared/sources/ilayer.providers.mjs +1 -1
  296. package/esm2020/lib/search/shared/sources/index.mjs +4 -1
  297. package/esm2020/lib/search/shared/sources/nominatim.mjs +2 -2
  298. package/esm2020/lib/search/shared/sources/nominatim.providers.mjs +1 -1
  299. package/esm2020/lib/search/shared/sources/source.interfaces.mjs +1 -1
  300. package/esm2020/lib/search/shared/sources/source.mjs +31 -1
  301. package/esm2020/lib/search/shared/sources/storedqueries.interfaces.mjs +1 -1
  302. package/esm2020/lib/search/shared/sources/storedqueries.mjs +1 -1
  303. package/esm2020/lib/search/shared/sources/storedqueries.providers.mjs +1 -1
  304. package/esm2020/lib/search/shared/sources/workspace.interfaces.mjs +2 -0
  305. package/esm2020/lib/search/shared/sources/workspace.mjs +186 -0
  306. package/esm2020/lib/search/shared/sources/workspace.providers.mjs +26 -0
  307. package/esm2020/lib/style/index.mjs +5 -0
  308. package/esm2020/lib/style/shared/datasource/esri-style-generator.mjs +357 -0
  309. package/esm2020/lib/style/shared/datasource/index.mjs +2 -0
  310. package/esm2020/lib/style/shared/feature/feature-style.mjs +141 -0
  311. package/esm2020/lib/style/shared/feature/index.mjs +2 -0
  312. package/esm2020/lib/style/shared/font.enum.mjs +17 -0
  313. package/esm2020/lib/style/shared/index.mjs +5 -0
  314. package/esm2020/lib/style/shared/overlay/index.mjs +3 -0
  315. package/esm2020/lib/style/shared/overlay/overlay-marker-style.utils.mjs +43 -0
  316. package/esm2020/lib/style/shared/overlay/overlay-style.utils.mjs +88 -0
  317. package/esm2020/lib/style/shared/vector/commonVectorStyle.mjs +75 -0
  318. package/esm2020/lib/style/shared/vector/conversion.utils.mjs +27 -0
  319. package/esm2020/lib/style/shared/vector/index.mjs +4 -0
  320. package/esm2020/lib/style/shared/vector/vector-style.interface.mjs +2 -0
  321. package/esm2020/lib/style/style-list/index.mjs +5 -0
  322. package/esm2020/lib/style/style-list/style-list.interface.mjs +2 -0
  323. package/esm2020/lib/style/style-list/style-list.module.mjs +23 -0
  324. package/esm2020/lib/style/style-list/style-list.provider.mjs +21 -0
  325. package/esm2020/lib/style/style-list/style-list.service.mjs +51 -0
  326. package/esm2020/lib/style/style-modal/drawing/index.mjs +2 -0
  327. package/esm2020/lib/style/style-modal/drawing/style-modal-drawing.component.mjs +288 -0
  328. package/esm2020/lib/style/style-modal/index.mjs +5 -0
  329. package/esm2020/lib/style/style-modal/layer/index.mjs +2 -0
  330. package/esm2020/lib/style/style-modal/layer/style-modal-layer.component.mjs +187 -0
  331. package/esm2020/lib/style/style-modal/layer-button/index.mjs +2 -0
  332. package/esm2020/lib/style/style-modal/layer-button/style-modal-layer-button.component.mjs +44 -0
  333. package/esm2020/lib/style/style-modal/shared/index.mjs +2 -0
  334. package/esm2020/lib/style/style-modal/shared/style-modal.interface.mjs +2 -0
  335. package/esm2020/lib/style/style-service/draw-style.service.mjs +187 -0
  336. package/esm2020/lib/style/style-service/index.mjs +3 -0
  337. package/esm2020/lib/style/style-service/style.service.mjs +356 -0
  338. package/esm2020/lib/style/style.module.mjs +74 -0
  339. package/esm2020/lib/toast/toast.component.mjs +3 -3
  340. package/esm2020/lib/toast/toast.module.mjs +1 -1
  341. package/esm2020/lib/utils/id-generator.mjs +1 -1
  342. package/esm2020/lib/utils/index.mjs +1 -3
  343. package/esm2020/lib/wkt/shared/wkt.service.mjs +15 -15
  344. package/esm2020/lib/wkt/wkt.module.mjs +1 -1
  345. package/esm2020/lib/workspace/confirmation-popup/confirmation-popup.component.mjs +2 -2
  346. package/esm2020/lib/workspace/confirmation-popup/confirmation-popup.module.mjs +1 -1
  347. package/esm2020/lib/workspace/confirmation-popup/index.mjs +1 -1
  348. package/esm2020/lib/workspace/shared/edition-workspace.mjs +1 -1
  349. package/esm2020/lib/workspace/shared/edition-workspace.service.mjs +19 -34
  350. package/esm2020/lib/workspace/shared/feature-workspace.mjs +1 -1
  351. package/esm2020/lib/workspace/shared/feature-workspace.service.mjs +10 -3
  352. package/esm2020/lib/workspace/shared/wfs-workspace.mjs +1 -1
  353. package/esm2020/lib/workspace/shared/wfs-workspace.service.mjs +2 -2
  354. package/esm2020/lib/workspace/shared/wms-workspace.service.mjs +3 -3
  355. package/esm2020/lib/workspace/shared/workspace.utils.mjs +1 -1
  356. package/esm2020/lib/workspace/widgets/ogc-filter/ogc-filter.component.mjs +2 -2
  357. package/esm2020/lib/workspace/widgets/ogc-filter/ogc-filter.module.mjs +1 -1
  358. package/esm2020/lib/workspace/widgets/widgets.mjs +1 -1
  359. package/esm2020/lib/workspace/workspace-selector/workspace-selector.directive.mjs +1 -1
  360. package/esm2020/lib/workspace/workspace-selector/workspace-selector.module.mjs +1 -1
  361. package/esm2020/lib/workspace/workspace-updator/workspace-updator.directive.mjs +1 -1
  362. package/esm2020/lib/workspace/workspace-updator/workspace-updator.module.mjs +1 -1
  363. package/esm2020/lib/workspace/workspace.module.mjs +1 -1
  364. package/esm2020/public_api.mjs +3 -1
  365. package/fesm2015/igo2-geo.mjs +6644 -5300
  366. package/fesm2015/igo2-geo.mjs.map +1 -1
  367. package/fesm2020/igo2-geo.mjs +7429 -6157
  368. package/fesm2020/igo2-geo.mjs.map +1 -1
  369. package/lib/catalog/catalog-browser/catalog-browser-group.component.d.ts +5 -14
  370. package/lib/catalog/catalog-browser/catalog-browser-layer.component.d.ts +2 -5
  371. package/lib/catalog/catalog-browser/catalog-browser.component.d.ts +3 -9
  372. package/lib/catalog/catalog-library/catalog-library.component.d.ts +2 -3
  373. package/lib/catalog/shared/catalog.interface.d.ts +10 -0
  374. package/lib/datasource/shared/datasources/datasource.interface.d.ts +13 -0
  375. package/lib/datasource/shared/datasources/feature-datasource.interface.d.ts +5 -0
  376. package/lib/datasource/utils/index.d.ts +0 -1
  377. package/lib/download/shared/download.service.d.ts +2 -3
  378. package/lib/draw/draw/draw.component.d.ts +3 -2
  379. package/lib/draw/shared/draw.enum.d.ts +0 -15
  380. package/lib/draw/shared/index.d.ts +0 -1
  381. package/lib/feature/shared/feature.interfaces.d.ts +5 -0
  382. package/lib/feature/shared/feature.utils.d.ts +4 -2
  383. package/lib/feature/shared/store.d.ts +7 -0
  384. package/lib/feature/shared/strategies/index.d.ts +1 -0
  385. package/lib/feature/shared/strategies/search.d.ts +55 -0
  386. package/lib/filter/spatial-filter/spatial-filter-list/spatial-filter-list.component.d.ts +2 -3
  387. package/lib/geo.module.d.ts +3 -2
  388. package/lib/geometry/geometry-form-field/geometry-form-field-input.component.d.ts +5 -9
  389. package/lib/geometry/geometry-form-field/geometry-form-field.component.d.ts +3 -3
  390. package/lib/import-export/import-export/import-export.component.d.ts +9 -4
  391. package/lib/import-export/import-export.module.d.ts +1 -2
  392. package/lib/import-export/index.d.ts +0 -1
  393. package/lib/import-export/shared/drop-geo-file.directive.d.ts +10 -7
  394. package/lib/import-export/shared/export.utils.d.ts +4 -4
  395. package/lib/import-export/shared/import.interface.d.ts +2 -0
  396. package/lib/import-export/shared/import.utils.d.ts +14 -12
  397. package/lib/layer/index.d.ts +0 -1
  398. package/lib/layer/layer.module.d.ts +19 -20
  399. package/lib/layer/shared/index.d.ts +0 -2
  400. package/lib/layer/shared/layer.service.d.ts +8 -5
  401. package/lib/layer/shared/layers/image-layer.d.ts +2 -3
  402. package/lib/layer/shared/layers/layer.d.ts +5 -1
  403. package/lib/layer/shared/layers/layer.interface.d.ts +2 -0
  404. package/lib/layer/shared/layers/vector-layer.d.ts +18 -2
  405. package/lib/layer/shared/layers/vector-layer.interface.d.ts +8 -7
  406. package/lib/layer/shared/layers/vectortile-layer.interface.d.ts +2 -4
  407. package/lib/layer/utils/image-watcher.d.ts +2 -3
  408. package/lib/map/offline-button/offline-button.component.d.ts +10 -18
  409. package/lib/map/shared/controllers/geolocation.d.ts +17 -2
  410. package/lib/map/shared/hover-feature.directive.d.ts +2 -10
  411. package/lib/map/shared/map.d.ts +2 -2
  412. package/lib/map/shared/mapOffline.directive.d.ts +4 -7
  413. package/lib/map/wake-lock-button/wake-lock-button.component.d.ts +3 -6
  414. package/lib/offline/geoDB/geoDB.service.d.ts +1 -1
  415. package/lib/offline/index.d.ts +1 -0
  416. package/lib/offline/layerDB/index.d.ts +2 -0
  417. package/lib/offline/layerDB/layerDB.interface.d.ts +7 -0
  418. package/lib/offline/layerDB/layerDB.service.d.ts +36 -0
  419. package/lib/overlay/shared/index.d.ts +0 -1
  420. package/lib/overlay/shared/overlay.utils.d.ts +0 -11
  421. package/lib/print/print-form/print-form.component.d.ts +2 -0
  422. package/lib/print/shared/print.service.d.ts +6 -0
  423. package/lib/search/search-results/save-feature-dialog.component.d.ts +1 -1
  424. package/lib/search/search-results/search-results-add-button.component.d.ts +10 -2
  425. package/lib/search/search-results/search-results-item.component.d.ts +5 -0
  426. package/lib/search/search-results/search-results.component.d.ts +5 -1
  427. package/lib/search/search-results/search-results.module.d.ts +11 -10
  428. package/lib/search/shared/search-pointer-summary.directive.d.ts +0 -9
  429. package/lib/search/shared/search-source.service.d.ts +7 -0
  430. package/lib/search/shared/search.interfaces.d.ts +1 -1
  431. package/lib/search/shared/sources/coordinates.providers.d.ts +3 -3
  432. package/lib/search/shared/sources/index.d.ts +3 -0
  433. package/lib/search/shared/sources/source.d.ts +6 -0
  434. package/lib/search/shared/sources/workspace.d.ts +33 -0
  435. package/lib/search/shared/sources/workspace.interfaces.d.ts +9 -0
  436. package/lib/search/shared/sources/workspace.providers.d.ts +17 -0
  437. package/lib/style/index.d.ts +4 -0
  438. package/lib/style/shared/datasource/index.d.ts +1 -0
  439. package/lib/style/shared/feature/feature-style.d.ts +18 -0
  440. package/lib/style/shared/feature/index.d.ts +1 -0
  441. package/lib/style/shared/font.enum.d.ts +15 -0
  442. package/lib/style/shared/index.d.ts +4 -0
  443. package/lib/style/shared/overlay/index.d.ts +2 -0
  444. package/lib/style/shared/overlay/overlay-style.utils.d.ts +19 -0
  445. package/lib/{utils → style/shared/vector}/commonVectorStyle.d.ts +4 -4
  446. package/lib/style/shared/vector/conversion.utils.d.ts +22 -0
  447. package/lib/style/shared/vector/index.d.ts +3 -0
  448. package/lib/style/shared/vector/vector-style.interface.d.ts +69 -0
  449. package/lib/style/style-modal/drawing/index.d.ts +1 -0
  450. package/lib/style/style-modal/drawing/style-modal-drawing.component.d.ts +31 -0
  451. package/lib/style/style-modal/index.d.ts +4 -0
  452. package/lib/style/style-modal/layer/index.d.ts +1 -0
  453. package/lib/style/style-modal/layer/style-modal-layer.component.d.ts +30 -0
  454. package/lib/style/style-modal/layer-button/index.d.ts +1 -0
  455. package/lib/style/style-modal/layer-button/style-modal-layer-button.component.d.ts +14 -0
  456. package/lib/style/style-modal/shared/index.d.ts +1 -0
  457. package/lib/style/style-modal/shared/style-modal.interface.d.ts +17 -0
  458. package/lib/{draw/shared → style/style-service}/draw-style.service.d.ts +3 -4
  459. package/lib/style/style-service/index.d.ts +2 -0
  460. package/lib/{layer/shared → style/style-service}/style.service.d.ts +5 -5
  461. package/lib/style/style.module.d.ts +22 -0
  462. package/lib/utils/index.d.ts +0 -2
  463. package/lib/workspace/shared/edition-workspace.service.d.ts +3 -4
  464. package/lib/workspace/shared/wms-workspace.service.d.ts +1 -1
  465. package/ngcc.config.js +3 -3
  466. package/package.json +17 -11
  467. package/public_api.d.ts +2 -0
  468. package/style/geo.theming.scss +12 -12
  469. package/esm2020/lib/datasource/utils/esri-style-generator.mjs +0 -357
  470. package/esm2020/lib/draw/shared/draw-style.service.mjs +0 -190
  471. package/esm2020/lib/import-export/style-list/index.mjs +0 -5
  472. package/esm2020/lib/import-export/style-list/style-list.interface.mjs +0 -2
  473. package/esm2020/lib/import-export/style-list/style-list.module.mjs +0 -23
  474. package/esm2020/lib/import-export/style-list/style-list.provider.mjs +0 -21
  475. package/esm2020/lib/import-export/style-list/style-list.service.mjs +0 -51
  476. package/esm2020/lib/layer/shared/style.service.mjs +0 -356
  477. package/esm2020/lib/layer/shared/vector-style.interface.mjs +0 -2
  478. package/esm2020/lib/layer/style-modal/index.mjs +0 -2
  479. package/esm2020/lib/layer/style-modal/style-modal.component.mjs +0 -288
  480. package/esm2020/lib/overlay/shared/overlay-marker-style.utils.mjs +0 -69
  481. package/esm2020/lib/utils/commonVectorStyle.interface.mjs +0 -2
  482. package/esm2020/lib/utils/commonVectorStyle.mjs +0 -75
  483. package/lib/layer/shared/vector-style.interface.d.ts +0 -38
  484. package/lib/layer/style-modal/index.d.ts +0 -1
  485. package/lib/layer/style-modal/style-modal.component.d.ts +0 -42
  486. package/lib/utils/commonVectorStyle.interface.d.ts +0 -16
  487. /package/lib/{datasource/utils → style/shared/datasource}/esri-style-generator.d.ts +0 -0
  488. /package/lib/{overlay/shared → style/shared/overlay}/overlay-marker-style.utils.d.ts +0 -0
  489. /package/lib/{import-export → style}/style-list/index.d.ts +0 -0
  490. /package/lib/{import-export → style}/style-list/style-list.interface.d.ts +0 -0
  491. /package/lib/{import-export → style}/style-list/style-list.module.d.ts +0 -0
  492. /package/lib/{import-export → style}/style-list/style-list.provider.d.ts +0 -0
  493. /package/lib/{import-export → style}/style-list/style-list.service.d.ts +0 -0
@@ -0,0 +1,357 @@
1
+ import * as olstyle from 'ol/style';
2
+ import * as olproj from 'ol/proj';
3
+ export class EsriStyleGenerator {
4
+ constructor() {
5
+ this._converters = {};
6
+ this._converters.esriPMS = EsriStyleGenerator._convertEsriPMS;
7
+ this._converters.esriSFS = EsriStyleGenerator._convertEsriSFS;
8
+ this._converters.esriSLS = EsriStyleGenerator._convertEsriSLS;
9
+ this._converters.esriSMS = EsriStyleGenerator._convertEsriSMS;
10
+ this._converters.esriTS = EsriStyleGenerator._convertEsriTS;
11
+ this._renderers = {};
12
+ this._renderers.uniqueValue = this._renderUniqueValue;
13
+ this._renderers.simple = this._renderSimple;
14
+ this._renderers.classBreaks = this._renderClassBreaks;
15
+ }
16
+ static _convertPointToPixel(point) {
17
+ return point / 0.75;
18
+ }
19
+ static _transformColor(color) {
20
+ // alpha channel is different, runs from 0-255 but in ol3 from 0-1
21
+ return [color[0], color[1], color[2], color[3] / 255];
22
+ }
23
+ static _getResolutionForScale(scale, units) {
24
+ const dpi = 96;
25
+ const mpu = olproj.METERS_PER_UNIT[units];
26
+ const inchesPerMeter = 39.3701;
27
+ return parseFloat(scale) / (mpu * inchesPerMeter * dpi);
28
+ }
29
+ /* convert an Esri Text Symbol */
30
+ static _convertEsriTS(symbol) {
31
+ const rotation = EsriStyleGenerator._transformAngle(symbol.angle);
32
+ const text = symbol.text !== undefined ? symbol.text : undefined;
33
+ return new olstyle.Style({
34
+ text: new olstyle.Text({
35
+ fill: new olstyle.Fill({
36
+ color: EsriStyleGenerator._transformColor(symbol.color)
37
+ }),
38
+ font: symbol.font.style +
39
+ ' ' +
40
+ symbol.font.weight +
41
+ ' ' +
42
+ symbol.font.size +
43
+ ' px ' +
44
+ symbol.font.family,
45
+ textBaseline: symbol.verticalAlignment,
46
+ textAlign: symbol.horizontalAlignment,
47
+ offsetX: EsriStyleGenerator._convertPointToPixel(symbol.xoffset),
48
+ offsetY: EsriStyleGenerator._convertPointToPixel(symbol.yoffset),
49
+ rotation,
50
+ text
51
+ })
52
+ });
53
+ }
54
+ /* convert an Esri Picture Marker Symbol */
55
+ static _convertEsriPMS(symbol) {
56
+ const src = 'data:' + symbol.contentType + ';base64, ' + symbol.imageData;
57
+ const rotation = EsriStyleGenerator._transformAngle(symbol.angle);
58
+ return new olstyle.Style({
59
+ image: new olstyle.Icon({
60
+ src,
61
+ rotation
62
+ })
63
+ });
64
+ }
65
+ /* convert an Esri Simple Fill Symbol */
66
+ static _convertEsriSFS(symbol) {
67
+ // there is no support in openlayers currently for fill patterns, so style is not interpreted
68
+ const fill = new olstyle.Fill({
69
+ color: EsriStyleGenerator._transformColor(symbol.color)
70
+ });
71
+ const stroke = symbol.outline
72
+ ? EsriStyleGenerator._convertOutline(symbol.outline)
73
+ : undefined;
74
+ return new olstyle.Style({
75
+ fill,
76
+ stroke
77
+ });
78
+ }
79
+ static _convertOutline(outline) {
80
+ let lineDash;
81
+ const color = EsriStyleGenerator._transformColor(outline.color);
82
+ if (outline.style === 'esriSLSDash') {
83
+ lineDash = [5];
84
+ }
85
+ else if (outline.style === 'esriSLSDashDot') {
86
+ lineDash = [5, 5, 1, 2];
87
+ }
88
+ else if (outline.style === 'esriSLSDashDotDot') {
89
+ lineDash = [5, 5, 1, 2, 1, 2];
90
+ }
91
+ else if (outline.style === 'esriSLSDot') {
92
+ lineDash = [1, 2];
93
+ }
94
+ else if (outline.style === 'esriSLSNull') {
95
+ // line not visible, make color fully transparent
96
+ color[3] = 0;
97
+ }
98
+ return new olstyle.Stroke({
99
+ color,
100
+ lineDash,
101
+ width: EsriStyleGenerator._convertPointToPixel(outline.width)
102
+ });
103
+ }
104
+ /* convert an Esri Simple Line Symbol */
105
+ static _convertEsriSLS(symbol) {
106
+ return new olstyle.Style({
107
+ stroke: EsriStyleGenerator._convertOutline(symbol)
108
+ });
109
+ }
110
+ static _transformAngle(angle) {
111
+ if (angle === 0 || angle === undefined) {
112
+ return undefined;
113
+ }
114
+ const normalRad = (angle * Math.PI) / 180;
115
+ const ol3Rad = -normalRad + Math.PI / 2;
116
+ if (ol3Rad < 0) {
117
+ return 2 * Math.PI + ol3Rad;
118
+ }
119
+ else {
120
+ return ol3Rad;
121
+ }
122
+ }
123
+ /* convert an Esri Simple Marker Symbol */
124
+ static _convertEsriSMS(symbol) {
125
+ const fill = new olstyle.Fill({
126
+ color: EsriStyleGenerator._transformColor(symbol.color)
127
+ });
128
+ const stroke = symbol.outline
129
+ ? EsriStyleGenerator._convertOutline(symbol.outline)
130
+ : undefined;
131
+ const radius = EsriStyleGenerator._convertPointToPixel(symbol.size) / 2;
132
+ const rotation = EsriStyleGenerator._transformAngle(symbol.angle);
133
+ if (symbol.style === 'esriSMSCircle') {
134
+ return new olstyle.Style({
135
+ image: new olstyle.Circle({
136
+ radius,
137
+ fill,
138
+ stroke
139
+ })
140
+ });
141
+ }
142
+ else if (symbol.style === 'esriSMSCross') {
143
+ return new olstyle.Style({
144
+ image: new olstyle.RegularShape({
145
+ fill,
146
+ stroke,
147
+ points: 4,
148
+ radius,
149
+ radius2: 0,
150
+ angle: 0,
151
+ rotation
152
+ })
153
+ });
154
+ }
155
+ else if (symbol.style === 'esriSMSDiamond') {
156
+ return new olstyle.Style({
157
+ image: new olstyle.RegularShape({
158
+ fill,
159
+ stroke,
160
+ points: 4,
161
+ radius,
162
+ rotation
163
+ })
164
+ });
165
+ }
166
+ else if (symbol.style === 'esriSMSSquare') {
167
+ return new olstyle.Style({
168
+ image: new olstyle.RegularShape({
169
+ fill,
170
+ stroke,
171
+ points: 4,
172
+ radius,
173
+ angle: Math.PI / 4,
174
+ rotation
175
+ })
176
+ });
177
+ }
178
+ else if (symbol.style === 'esriSMSX') {
179
+ return new olstyle.Style({
180
+ image: new olstyle.RegularShape({
181
+ fill,
182
+ stroke,
183
+ points: 4,
184
+ radius,
185
+ radius2: 0,
186
+ angle: Math.PI / 4,
187
+ rotation
188
+ })
189
+ });
190
+ }
191
+ else if (symbol.style === 'esriSMSTriangle') {
192
+ return new olstyle.Style({
193
+ image: new olstyle.RegularShape({
194
+ fill,
195
+ stroke,
196
+ points: 3,
197
+ radius,
198
+ angle: 0,
199
+ rotation
200
+ })
201
+ });
202
+ }
203
+ }
204
+ _convertLabelingInfo(labelingInfo, mapUnits) {
205
+ const styles = [];
206
+ for (let i = 0, ii = labelingInfo.length; i < ii; ++i) {
207
+ const labelExpression = labelingInfo[i].labelExpression;
208
+ // only limited support for label expressions
209
+ const field = labelExpression.substr(labelExpression.indexOf('[') + 1, labelExpression.indexOf(']') - 1);
210
+ const symbol = labelingInfo[i].symbol;
211
+ const maxScale = labelingInfo[i].maxScale;
212
+ const minScale = labelingInfo[i].minScale;
213
+ let minResolution = null;
214
+ if (maxScale !== 0) {
215
+ minResolution = EsriStyleGenerator._getResolutionForScale(maxScale, mapUnits);
216
+ }
217
+ let maxResolution = null;
218
+ if (minScale !== 0) {
219
+ maxResolution = EsriStyleGenerator._getResolutionForScale(minScale, mapUnits);
220
+ }
221
+ const style = this._converters[symbol.type].call(this, symbol);
222
+ styles.push((() => {
223
+ return function (feature, resolution) {
224
+ let visible = true;
225
+ if (this.minResolution !== null && this.maxResolution !== null) {
226
+ visible =
227
+ resolution < this.maxResolution &&
228
+ resolution >= this.minResolution;
229
+ }
230
+ else if (this.minResolution !== null) {
231
+ visible = resolution >= this.minResolution;
232
+ }
233
+ else if (this.maxResolution !== null) {
234
+ visible = resolution < this.maxResolution;
235
+ }
236
+ if (visible) {
237
+ const value = feature.get(this.field);
238
+ this.style.getText().setText(value);
239
+ return [this.style];
240
+ }
241
+ };
242
+ })().bind({
243
+ minResolution,
244
+ maxResolution,
245
+ field,
246
+ style
247
+ }));
248
+ }
249
+ return styles;
250
+ }
251
+ _renderSimple(renderer) {
252
+ const style = this._converters[renderer.symbol.type].call(this, renderer.symbol);
253
+ return (() => {
254
+ return () => {
255
+ return [style];
256
+ };
257
+ })();
258
+ }
259
+ _renderClassBreaks(renderer) {
260
+ const defaultSymbol = renderer.defaultSymbol;
261
+ const defaultStyle = this._converters[defaultSymbol.type].call(this, defaultSymbol);
262
+ const field = renderer.field;
263
+ const classes = [];
264
+ for (let i = 0, ii = renderer.classBreakInfos.length; i < ii; ++i) {
265
+ const classBreakInfo = renderer.classBreakInfos[i];
266
+ let min;
267
+ if (classBreakInfo.classMinValue === null ||
268
+ classBreakInfo.classMinValue === undefined) {
269
+ if (i === 0) {
270
+ min = renderer.minValue;
271
+ }
272
+ else {
273
+ min = renderer.classBreakInfos[i - 1].classMaxValue;
274
+ }
275
+ }
276
+ else {
277
+ min = classBreakInfo.classMinValue;
278
+ }
279
+ const max = classBreakInfo.classMaxValue;
280
+ const symbol = classBreakInfo.symbol;
281
+ const style = this._converters[symbol.type].call(this, symbol);
282
+ classes.push({ min, max, style });
283
+ }
284
+ return (() => {
285
+ return (feature) => {
286
+ const value = feature.get(field);
287
+ for (let i = 0, ii = classes.length; i < ii; ++i) {
288
+ let condition;
289
+ if (i === 0) {
290
+ condition = value >= classes[i].min && value <= classes[i].max;
291
+ }
292
+ else {
293
+ condition = value > classes[i].min && value <= classes[i].max;
294
+ }
295
+ if (condition) {
296
+ return [classes[i].style];
297
+ }
298
+ }
299
+ return [defaultStyle];
300
+ };
301
+ })();
302
+ }
303
+ _renderUniqueValue(renderer) {
304
+ const defaultSymbol = renderer.defaultSymbol;
305
+ let defaultStyle = [];
306
+ if (defaultSymbol) {
307
+ defaultStyle = [
308
+ this._converters[defaultSymbol.type].call(this, defaultSymbol)
309
+ ];
310
+ }
311
+ const field = renderer.field1;
312
+ const infos = renderer.uniqueValueInfos;
313
+ const me = this;
314
+ return (() => {
315
+ const hash = {};
316
+ for (let i = 0, ii = infos.length; i < ii; ++i) {
317
+ const info = infos[i];
318
+ const symbol = info.symbol;
319
+ hash[info.value] = [me._converters[symbol.type].call(me, symbol)];
320
+ }
321
+ return (feature) => {
322
+ const style = hash[feature.get(field)];
323
+ return style ? style : defaultStyle;
324
+ };
325
+ })();
326
+ }
327
+ generateStyle(layerInfo, mapUnits) {
328
+ const drawingInfo = layerInfo.drawingInfo;
329
+ let styleFunctions = [];
330
+ const drawingInfoStyle = this._renderers[drawingInfo.renderer.type].call(this, drawingInfo.renderer);
331
+ if (drawingInfoStyle !== undefined) {
332
+ styleFunctions.push(drawingInfoStyle);
333
+ }
334
+ if (layerInfo.labelingInfo) {
335
+ const labelingInfoStyleFunctions = this._convertLabelingInfo(layerInfo.labelingInfo, mapUnits);
336
+ styleFunctions = styleFunctions.concat(labelingInfoStyleFunctions);
337
+ }
338
+ if (styleFunctions.length === 1) {
339
+ return styleFunctions[0];
340
+ }
341
+ else {
342
+ return (() => {
343
+ return (feature, resolution) => {
344
+ let styles = [];
345
+ for (let i = 0, ii = styleFunctions.length; i < ii; ++i) {
346
+ const result = styleFunctions[i].call(null, feature, resolution);
347
+ if (result) {
348
+ styles = styles.concat(result);
349
+ }
350
+ }
351
+ return styles;
352
+ };
353
+ })();
354
+ }
355
+ }
356
+ }
357
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNyaS1zdHlsZS1nZW5lcmF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9zdHlsZS9zaGFyZWQvZGF0YXNvdXJjZS9lc3JpLXN0eWxlLWdlbmVyYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssT0FBTyxNQUFNLFVBQVUsQ0FBQztBQUNwQyxPQUFPLEtBQUssTUFBTSxNQUFNLFNBQVMsQ0FBQztBQUVsQyxNQUFNLE9BQU8sa0JBQWtCO0lBSTdCO1FBQ0UsSUFBSSxDQUFDLFdBQVcsR0FBRyxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLEdBQUcsa0JBQWtCLENBQUMsZUFBZSxDQUFDO1FBQzlELElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxHQUFHLGtCQUFrQixDQUFDLGVBQWUsQ0FBQztRQUM5RCxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sR0FBRyxrQkFBa0IsQ0FBQyxlQUFlLENBQUM7UUFDOUQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLEdBQUcsa0JBQWtCLENBQUMsZUFBZSxDQUFDO1FBQzlELElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxHQUFHLGtCQUFrQixDQUFDLGNBQWMsQ0FBQztRQUM1RCxJQUFJLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUM7UUFDdEQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQztRQUM1QyxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUM7SUFDeEQsQ0FBQztJQUNELE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLO1FBQy9CLE9BQU8sS0FBSyxHQUFHLElBQUksQ0FBQztJQUN0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QUFXLENBQUMsUUFBUSxDQUNyQixDQUFDO1FBQ0YsSUFBSSxnQkFBZ0IsS0FBSyxTQUFTLEVBQUU7WUFDbEMsY0FBYyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1NBQ3ZDO1FBQ0QsSUFBSSxTQUFTLENBQUMsWUFBWSxFQUFFO1lBQzFCLE1BQU0sMEJBQTBCLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUMxRCxTQUFTLENBQUMsWUFBWSxFQUN0QixRQUFRLENBQ1QsQ0FBQztZQUNGLGNBQWMsR0FBRyxjQUFjLENBQUMsTUFBTSxDQUFDLDBCQUEwQixDQUFDLENBQUM7U0FDcEU7UUFDRCxJQUFJLGNBQWMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQy9CLE9BQU8sY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQzFCO2FBQU07WUFDTCxPQUFPLENBQUMsR0FBRyxFQUFFO2dCQUNYLE9BQU8sQ0FBQyxPQUFPLEVBQUUsVUFBVSxFQUFFLEVBQUU7b0JBQzdCLElBQUksTUFBTSxHQUFHLEVBQUUsQ0FBQztvQkFDaEIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFHLGNBQWMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRTt3QkFDdkQsTUFBTSxNQUFNLEdBQUcsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLFVBQVUsQ0FBQyxDQUFDO3dCQUNqRSxJQUFJLE1BQU0sRUFBRTs0QkFDVixNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQzt5QkFDaEM7cUJBQ0Y7b0JBQ0QsT0FBTyxNQUFNLENBQUM7Z0JBQ2hCLENBQUMsQ0FBQztZQUNKLENBQUMsQ0FBQyxFQUFFLENBQUM7U0FDTjtJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIG9sc3R5bGUgZnJvbSAnb2wvc3R5bGUnO1xyXG5pbXBvcnQgKiBhcyBvbHByb2ogZnJvbSAnb2wvcHJvaic7XHJcblxyXG5leHBvcnQgY2xhc3MgRXNyaVN0eWxlR2VuZXJhdG9yIHtcclxuICBwdWJsaWMgX2NvbnZlcnRlcnM6IGFueTtcclxuICBwdWJsaWMgX3JlbmRlcmVyczogYW55O1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICAgIHRoaXMuX2NvbnZlcnRlcnMgPSB7fTtcclxuICAgIHRoaXMuX2NvbnZlcnRlcnMuZXNyaVBNUyA9IEVzcmlTdHlsZUdlbmVyYXRvci5fY29udmVydEVzcmlQTVM7XHJcbiAgICB0aGlzLl9jb252ZXJ0ZXJzLmVzcmlTRlMgPSBFc3JpU3R5bGVHZW5lcmF0b3IuX2NvbnZlcnRFc3JpU0ZTO1xyXG4gICAgdGhpcy5fY29udmVydGVycy5lc3JpU0xTID0gRXNyaVN0eWxlR2VuZXJhdG9yLl9jb252ZXJ0RXNyaVNMUztcclxuICAgIHRoaXMuX2NvbnZlcnRlcnMuZXNyaVNNUyA9IEVzcmlTdHlsZUdlbmVyYXRvci5fY29udmVydEVzcmlTTVM7XHJcbiAgICB0aGlzLl9jb252ZXJ0ZXJzLmVzcmlUUyA9IEVzcmlTdHlsZUdlbmVyYXRvci5fY29udmVydEVzcmlUUztcclxuICAgIHRoaXMuX3JlbmRlcmVycyA9IHt9O1xyXG4gICAgdGhpcy5fcmVuZGVyZXJzLnVuaXF1ZVZhbHVlID0gdGhpcy5fcmVuZGVyVW5pcXVlVmFsdWU7XHJcbiAgICB0aGlzLl9yZW5kZXJlcnMuc2ltcGxlID0gdGhpcy5fcmVuZGVyU2ltcGxlO1xyXG4gICAgdGhpcy5fcmVuZGVyZXJzLmNsYXNzQnJlYWtzID0gdGhpcy5fcmVuZGVyQ2xhc3NCcmVha3M7XHJcbiAgfVxyXG4gIHN0YXRpYyBfY29udmVydFBvaW50VG9QaXhlbChwb2ludCkge1xyXG4gICAgcmV0dXJuIHBvaW50IC8gMC43NTtcclxuICB9XHJcbiAgc3RhdGljIF90cmFuc2Zvcm1Db2xvcihjb2xvcik6IFtudW1iZXIsIG51bWJlciwgbnVtYmVyLCBudW1iZXJdIHtcclxuICAgIC8vIGFscGhhIGNoYW5uZWwgaXMgZGlmZmVyZW50LCBydW5zIGZyb20gMC0yNTUgYnV0IGluIG9sMyBmcm9tIDAtMVxyXG4gICAgcmV0dXJuIFtjb2xvclswXSwgY29sb3JbMV0sIGNvbG9yWzJdLCBjb2xvclszXSAvIDI1NV07XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgX2dldFJlc29sdXRpb25Gb3JTY2FsZShzY2FsZSwgdW5pdHMpIHtcclxuICAgIGNvbnN0IGRwaSA9IDk2O1xyXG4gICAgY29uc3QgbXB1ID0gb2xwcm9qLk1FVEVSU19QRVJfVU5JVFt1bml0c107XHJcbiAgICBjb25zdCBpbmNoZXNQZXJNZXRlciA9IDM5LjM3MDE7XHJcbiAgICByZXR1cm4gcGFyc2VGbG9hdChzY2FsZSkgLyAobXB1ICogaW5jaGVzUGVyTWV0ZXIgKiBkcGkpO1xyXG4gIH1cclxuXHJcbiAgLyogY29udmVydCBhbiBFc3JpIFRleHQgU3ltYm9sICovXHJcbiAgc3RhdGljIF9jb252ZXJ0RXNyaVRTKHN5bWJvbCkge1xyXG4gICAgY29uc3Qgcm90YXRpb24gPSBFc3JpU3R5bGVHZW5lcmF0b3IuX3RyYW5zZm9ybUFuZ2xlKHN5bWJvbC5hbmdsZSk7XHJcbiAgICBjb25zdCB0ZXh0ID0gc3ltYm9sLnRleHQgIT09IHVuZGVmaW5lZCA/IHN5bWJvbC50ZXh0IDogdW5kZWZpbmVkO1xyXG4gICAgcmV0dXJuIG5ldyBvbHN0eWxlLlN0eWxlKHtcclxuICAgICAgdGV4dDogbmV3IG9sc3R5bGUuVGV4dCh7XHJcbiAgICAgICAgZmlsbDogbmV3IG9sc3R5bGUuRmlsbCh7XHJcbiAgICAgICAgICBjb2xvcjogRXNyaVN0eWxlR2VuZXJhdG9yLl90cmFuc2Zvcm1Db2xvcihzeW1ib2wuY29sb3IpXHJcbiAgICAgICAgfSksXHJcbiAgICAgICAgZm9udDpcclxuICAgICAgICAgIHN5bWJvbC5mb250LnN0eWxlICtcclxuICAgICAgICAgICcgJyArXHJcbiAgICAgICAgICBzeW1ib2wuZm9udC53ZWlnaHQgK1xyXG4gICAgICAgICAgJyAnICtcclxuICAgICAgICAgIHN5bWJvbC5mb250LnNpemUgK1xyXG4gICAgICAgICAgJyBweCAnICtcclxuICAgICAgICAgIHN5bWJvbC5mb250LmZhbWlseSxcclxuICAgICAgICB0ZXh0QmFzZWxpbmU6IHN5bWJvbC52ZXJ0aWNhbEFsaWdubWVudCxcclxuICAgICAgICB0ZXh0QWxpZ246IHN5bWJvbC5ob3Jpem9udGFsQWxpZ25tZW50LFxyXG4gICAgICAgIG9mZnNldFg6IEVzcmlTdHlsZUdlbmVyYXRvci5fY29udmVydFBvaW50VG9QaXhlbChzeW1ib2wueG9mZnNldCksXHJcbiAgICAgICAgb2Zmc2V0WTogRXNyaVN0eWxlR2VuZXJhdG9yLl9jb252ZXJ0UG9pbnRUb1BpeGVsKHN5bWJvbC55b2Zmc2V0KSxcclxuICAgICAgICByb3RhdGlvbixcclxuICAgICAgICB0ZXh0XHJcbiAgICAgIH0pXHJcbiAgICB9KTtcclxuICB9XHJcbiAgLyogY29udmVydCBhbiBFc3JpIFBpY3R1cmUgTWFya2VyIFN5bWJvbCAqL1xyXG4gIHN0YXRpYyBfY29udmVydEVzcmlQTVMoc3ltYm9sKSB7XHJcbiAgICBjb25zdCBzcmMgPSAnZGF0YTonICsgc3ltYm9sLmNvbnRlbnRUeXBlICsgJztiYXNlNjQsICcgKyBzeW1ib2wuaW1hZ2VEYXRhO1xyXG4gICAgY29uc3Qgcm90YXRpb24gPSBFc3JpU3R5bGVHZW5lcmF0b3IuX3RyYW5zZm9ybUFuZ2xlKHN5bWJvbC5hbmdsZSk7XHJcblxyXG4gICAgcmV0dXJuIG5ldyBvbHN0eWxlLlN0eWxlKHtcclxuICAgICAgaW1hZ2U6IG5ldyBvbHN0eWxlLkljb24oe1xyXG4gICAgICAgIHNyYyxcclxuICAgICAgICByb3RhdGlvblxyXG4gICAgICB9KVxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIC8qIGNvbnZlcnQgYW4gRXNyaSBTaW1wbGUgRmlsbCBTeW1ib2wgKi9cclxuICBzdGF0aWMgX2NvbnZlcnRFc3JpU0ZTKHN5bWJvbCkge1xyXG4gICAgLy8gdGhlcmUgaXMgbm8gc3VwcG9ydCBpbiBvcGVubGF5ZXJzIGN1cnJlbnRseSBmb3IgZmlsbCBwYXR0ZXJucywgc28gc3R5bGUgaXMgbm90IGludGVycHJldGVkXHJcbiAgICBjb25zdCBmaWxsID0gbmV3IG9sc3R5bGUuRmlsbCh7XHJcbiAgICAgIGNvbG9yOiBFc3JpU3R5bGVHZW5lcmF0b3IuX3RyYW5zZm9ybUNvbG9yKHN5bWJvbC5jb2xvcilcclxuICAgIH0pO1xyXG4gICAgY29uc3Qgc3Ryb2tlID0gc3ltYm9sLm91dGxpbmVcclxuICAgICAgPyBFc3JpU3R5bGVHZW5lcmF0b3IuX2NvbnZlcnRPdXRsaW5lKHN5bWJvbC5vdXRsaW5lKVxyXG4gICAgICA6IHVuZGVmaW5lZDtcclxuICAgIHJldHVybiBuZXcgb2xzdHlsZS5TdHlsZSh7XHJcbiAgICAgIGZpbGwsXHJcbiAgICAgIHN0cm9rZVxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIHN0YXRpYyBfY29udmVydE91dGxpbmUob3V0bGluZSkge1xyXG4gICAgbGV0IGxpbmVEYXNoO1xyXG4gICAgY29uc3QgY29sb3IgPSBFc3JpU3R5bGVHZW5lcmF0b3IuX3RyYW5zZm9ybUNvbG9yKG91dGxpbmUuY29sb3IpO1xyXG4gICAgaWYgKG91dGxpbmUuc3R5bGUgPT09ICdlc3JpU0xTRGFzaCcpIHtcclxuICAgICAgbGluZURhc2ggPSBbNV07XHJcbiAgICB9IGVsc2UgaWYgKG91dGxpbmUuc3R5bGUgPT09ICdlc3JpU0xTRGFzaERvdCcpIHtcclxuICAgICAgbGluZURhc2ggPSBbNSwgNSwgMSwgMl07XHJcbiAgICB9IGVsc2UgaWYgKG91dGxpbmUuc3R5bGUgPT09ICdlc3JpU0xTRGFzaERvdERvdCcpIHtcclxuICAgICAgbGluZURhc2ggPSBbNSwgNSwgMSwgMiwgMSwgMl07XHJcbiAgICB9IGVsc2UgaWYgKG91dGxpbmUuc3R5bGUgPT09ICdlc3JpU0xTRG90Jykge1xyXG4gICAgICBsaW5lRGFzaCA9IFsxLCAyXTtcclxuICAgIH0gZWxzZSBpZiAob3V0bGluZS5zdHlsZSA9PT0gJ2VzcmlTTFNOdWxsJykge1xyXG4gICAgICAvLyBsaW5lIG5vdCB2aXNpYmxlLCBtYWtlIGNvbG9yIGZ1bGx5IHRyYW5zcGFyZW50XHJcbiAgICAgIGNvbG9yWzNdID0gMDtcclxuICAgIH1cclxuICAgIHJldHVybiBuZXcgb2xzdHlsZS5TdHJva2Uoe1xyXG4gICAgICBjb2xvcixcclxuICAgICAgbGluZURhc2gsXHJcbiAgICAgIHdpZHRoOiBFc3JpU3R5bGVHZW5lcmF0b3IuX2NvbnZlcnRQb2ludFRvUGl4ZWwob3V0bGluZS53aWR0aClcclxuICAgIH0pO1xyXG4gIH1cclxuICAvKiBjb252ZXJ0IGFuIEVzcmkgU2ltcGxlIExpbmUgU3ltYm9sICovXHJcbiAgc3RhdGljIF9jb252ZXJ0RXNyaVNMUyhzeW1ib2wpIHtcclxuICAgIHJldHVybiBuZXcgb2xzdHlsZS5TdHlsZSh7XHJcbiAgICAgIHN0cm9rZTogRXNyaVN0eWxlR2VuZXJhdG9yLl9jb252ZXJ0T3V0bGluZShzeW1ib2wpXHJcbiAgICB9KTtcclxuICB9XHJcbiAgc3RhdGljIF90cmFuc2Zvcm1BbmdsZShhbmdsZSkge1xyXG4gICAgaWYgKGFuZ2xlID09PSAwIHx8IGFuZ2xlID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgIH1cclxuICAgIGNvbnN0IG5vcm1hbFJhZCA9IChhbmdsZSAqIE1hdGguUEkpIC8gMTgwO1xyXG4gICAgY29uc3Qgb2wzUmFkID0gLW5vcm1hbFJhZCArIE1hdGguUEkgLyAyO1xyXG4gICAgaWYgKG9sM1JhZCA8IDApIHtcclxuICAgICAgcmV0dXJuIDIgKiBNYXRoLlBJICsgb2wzUmFkO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIG9sM1JhZDtcclxuICAgIH1cclxuICB9XHJcbiAgLyogY29udmVydCBhbiBFc3JpIFNpbXBsZSBNYXJrZXIgU3ltYm9sICovXHJcbiAgc3RhdGljIF9jb252ZXJ0RXNyaVNNUyhzeW1ib2wpIHtcclxuICAgIGNvbnN0IGZpbGwgPSBuZXcgb2xzdHlsZS5GaWxsKHtcclxuICAgICAgY29sb3I6IEVzcmlTdHlsZUdlbmVyYXRvci5fdHJhbnNmb3JtQ29sb3Ioc3ltYm9sLmNvbG9yKVxyXG4gICAgfSk7XHJcbiAgICBjb25zdCBzdHJva2UgPSBzeW1ib2wub3V0bGluZVxyXG4gICAgICA/IEVzcmlTdHlsZUdlbmVyYXRvci5fY29udmVydE91dGxpbmUoc3ltYm9sLm91dGxpbmUpXHJcbiAgICAgIDogdW5kZWZpbmVkO1xyXG4gICAgY29uc3QgcmFkaXVzID0gRXNyaVN0eWxlR2VuZXJhdG9yLl9jb252ZXJ0UG9pbnRUb1BpeGVsKHN5bWJvbC5zaXplKSAvIDI7XHJcbiAgICBjb25zdCByb3RhdGlvbiA9IEVzcmlTdHlsZUdlbmVyYXRvci5fdHJhbnNmb3JtQW5nbGUoc3ltYm9sLmFuZ2xlKTtcclxuICAgIGlmIChzeW1ib2wuc3R5bGUgPT09ICdlc3JpU01TQ2lyY2xlJykge1xyXG4gICAgICByZXR1cm4gbmV3IG9sc3R5bGUuU3R5bGUoe1xyXG4gICAgICAgIGltYWdlOiBuZXcgb2xzdHlsZS5DaXJjbGUoe1xyXG4gICAgICAgICAgcmFkaXVzLFxyXG4gICAgICAgICAgZmlsbCxcclxuICAgICAgICAgIHN0cm9rZVxyXG4gICAgICAgIH0pXHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIGlmIChzeW1ib2wuc3R5bGUgPT09ICdlc3JpU01TQ3Jvc3MnKSB7XHJcbiAgICAgIHJldHVybiBuZXcgb2xzdHlsZS5TdHlsZSh7XHJcbiAgICAgICAgaW1hZ2U6IG5ldyBvbHN0eWxlLlJlZ3VsYXJTaGFwZSh7XHJcbiAgICAgICAgICBmaWxsLFxyXG4gICAgICAgICAgc3Ryb2tlLFxyXG4gICAgICAgICAgcG9pbnRzOiA0LFxyXG4gICAgICAgICAgcmFkaXVzLFxyXG4gICAgICAgICAgcmFkaXVzMjogMCxcclxuICAgICAgICAgIGFuZ2xlOiAwLFxyXG4gICAgICAgICAgcm90YXRpb25cclxuICAgICAgICB9KVxyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSBpZiAoc3ltYm9sLnN0eWxlID09PSAnZXNyaVNNU0RpYW1vbmQnKSB7XHJcbiAgICAgIHJldHVybiBuZXcgb2xzdHlsZS5TdHlsZSh7XHJcbiAgICAgICAgaW1hZ2U6IG5ldyBvbHN0eWxlLlJlZ3VsYXJTaGFwZSh7XHJcbiAgICAgICAgICBmaWxsLFxyXG4gICAgICAgICAgc3Ryb2tlLFxyXG4gICAgICAgICAgcG9pbnRzOiA0LFxyXG4gICAgICAgICAgcmFkaXVzLFxyXG4gICAgICAgICAgcm90YXRpb25cclxuICAgICAgICB9KVxyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSBpZiAoc3ltYm9sLnN0eWxlID09PSAnZXNyaVNNU1NxdWFyZScpIHtcclxuICAgICAgcmV0dXJuIG5ldyBvbHN0eWxlLlN0eWxlKHtcclxuICAgICAgICBpbWFnZTogbmV3IG9sc3R5bGUuUmVndWxhclNoYXBlKHtcclxuICAgICAgICAgIGZpbGwsXHJcbiAgICAgICAgICBzdHJva2UsXHJcbiAgICAgICAgICBwb2ludHM6IDQsXHJcbiAgICAgICAgICByYWRpdXMsXHJcbiAgICAgICAgICBhbmdsZTogTWF0aC5QSSAvIDQsXHJcbiAgICAgICAgICByb3RhdGlvblxyXG4gICAgICAgIH0pXHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIGlmIChzeW1ib2wuc3R5bGUgPT09ICdlc3JpU01TWCcpIHtcclxuICAgICAgcmV0dXJuIG5ldyBvbHN0eWxlLlN0eWxlKHtcclxuICAgICAgICBpbWFnZTogbmV3IG9sc3R5bGUuUmVndWxhclNoYXBlKHtcclxuICAgICAgICAgIGZpbGwsXHJcbiAgICAgICAgICBzdHJva2UsXHJcbiAgICAgICAgICBwb2ludHM6IDQsXHJcbiAgICAgICAgICByYWRpdXMsXHJcbiAgICAgICAgICByYWRpdXMyOiAwLFxyXG4gICAgICAgICAgYW5nbGU6IE1hdGguUEkgLyA0LFxyXG4gICAgICAgICAgcm90YXRpb25cclxuICAgICAgICB9KVxyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSBpZiAoc3ltYm9sLnN0eWxlID09PSAnZXNyaVNNU1RyaWFuZ2xlJykge1xyXG4gICAgICByZXR1cm4gbmV3IG9sc3R5bGUuU3R5bGUoe1xyXG4gICAgICAgIGltYWdlOiBuZXcgb2xzdHlsZS5SZWd1bGFyU2hhcGUoe1xyXG4gICAgICAgICAgZmlsbCxcclxuICAgICAgICAgIHN0cm9rZSxcclxuICAgICAgICAgIHBvaW50czogMyxcclxuICAgICAgICAgIHJhZGl1cyxcclxuICAgICAgICAgIGFuZ2xlOiAwLFxyXG4gICAgICAgICAgcm90YXRpb25cclxuICAgICAgICB9KVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIF9jb252ZXJ0TGFiZWxpbmdJbmZvKGxhYmVsaW5nSW5mbywgbWFwVW5pdHMpIHtcclxuICAgIGNvbnN0IHN0eWxlcyA9IFtdO1xyXG4gICAgZm9yIChsZXQgaSA9IDAsIGlpID0gbGFiZWxpbmdJbmZvLmxlbmd0aDsgaSA8IGlpOyArK2kpIHtcclxuICAgICAgY29uc3QgbGFiZWxFeHByZXNzaW9uID0gbGFiZWxpbmdJbmZvW2ldLmxhYmVsRXhwcmVzc2lvbjtcclxuICAgICAgLy8gb25seSBsaW1pdGVkIHN1cHBvcnQgZm9yIGxhYmVsIGV4cHJlc3Npb25zXHJcbiAgICAgIGNvbnN0IGZpZWxkID0gbGFiZWxFeHByZXNzaW9uLnN1YnN0cihcclxuICAgICAgICBsYWJlbEV4cHJlc3Npb24uaW5kZXhPZignWycpICsgMSxcclxuICAgICAgICBsYWJlbEV4cHJlc3Npb24uaW5kZXhPZignXScpIC0gMVxyXG4gICAgICApO1xyXG4gICAgICBjb25zdCBzeW1ib2wgPSBsYWJlbGluZ0luZm9baV0uc3ltYm9sO1xyXG4gICAgICBjb25zdCBtYXhTY2FsZSA9IGxhYmVsaW5nSW5mb1tpXS5tYXhTY2FsZTtcclxuICAgICAgY29uc3QgbWluU2NhbGUgPSBsYWJlbGluZ0luZm9baV0ubWluU2NhbGU7XHJcbiAgICAgIGxldCBtaW5SZXNvbHV0aW9uID0gbnVsbDtcclxuICAgICAgaWYgKG1heFNjYWxlICE9PSAwKSB7XHJcbiAgICAgICAgbWluUmVzb2x1dGlvbiA9IEVzcmlTdHlsZUdlbmVyYXRvci5fZ2V0UmVzb2x1dGlvbkZvclNjYWxlKFxyXG4gICAgICAgICAgbWF4U2NhbGUsXHJcbiAgICAgICAgICBtYXBVbml0c1xyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgICAgbGV0IG1heFJlc29sdXRpb24gPSBudWxsO1xyXG4gICAgICBpZiAobWluU2NhbGUgIT09IDApIHtcclxuICAgICAgICBtYXhSZXNvbHV0aW9uID0gRXNyaVN0eWxlR2VuZXJhdG9yLl9nZXRSZXNvbHV0aW9uRm9yU2NhbGUoXHJcbiAgICAgICAgICBtaW5TY2FsZSxcclxuICAgICAgICAgIG1hcFVuaXRzXHJcbiAgICAgICAgKTtcclxuICAgICAgfVxyXG4gICAgICBjb25zdCBzdHlsZSA9IHRoaXMuX2NvbnZlcnRlcnNbc3ltYm9sLnR5cGVdLmNhbGwodGhpcywgc3ltYm9sKTtcclxuICAgICAgc3R5bGVzLnB1c2goXHJcbiAgICAgICAgKCgpID0+IHtcclxuICAgICAgICAgIHJldHVybiBmdW5jdGlvbihmZWF0dXJlLCByZXNvbHV0aW9uKSB7XHJcbiAgICAgICAgICAgIGxldCB2aXNpYmxlID0gdHJ1ZTtcclxuICAgICAgICAgICAgaWYgKHRoaXMubWluUmVzb2x1dGlvbiAhPT0gbnVsbCAmJiB0aGlzLm1heFJlc29sdXRpb24gIT09IG51bGwpIHtcclxuICAgICAgICAgICAgICB2aXNpYmxlID1cclxuICAgICAgICAgICAgICAgIHJlc29sdXRpb24gPCB0aGlzLm1heFJlc29sdXRpb24gJiZcclxuICAgICAgICAgICAgICAgIHJlc29sdXRpb24gPj0gdGhpcy5taW5SZXNvbHV0aW9uO1xyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMubWluUmVzb2x1dGlvbiAhPT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgIHZpc2libGUgPSByZXNvbHV0aW9uID49IHRoaXMubWluUmVzb2x1dGlvbjtcclxuICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLm1heFJlc29sdXRpb24gIT09IG51bGwpIHtcclxuICAgICAgICAgICAgICB2aXNpYmxlID0gcmVzb2x1dGlvbiA8IHRoaXMubWF4UmVzb2x1dGlvbjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAodmlzaWJsZSkge1xyXG4gICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gZmVhdHVyZS5nZXQodGhpcy5maWVsZCk7XHJcbiAgICAgICAgICAgICAgdGhpcy5zdHlsZS5nZXRUZXh0KCkuc2V0VGV4dCh2YWx1ZSk7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIFt0aGlzLnN0eWxlXTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfTtcclxuICAgICAgICB9KSgpLmJpbmQoe1xyXG4gICAgICAgICAgbWluUmVzb2x1dGlvbixcclxuICAgICAgICAgIG1heFJlc29sdXRpb24sXHJcbiAgICAgICAgICBmaWVsZCxcclxuICAgICAgICAgIHN0eWxlXHJcbiAgICAgICAgfSlcclxuICAgICAgKTtcclxuICAgIH1cclxuICAgIHJldHVybiBzdHlsZXM7XHJcbiAgfVxyXG5cclxuICBfcmVuZGVyU2ltcGxlKHJlbmRlcmVyKSB7XHJcbiAgICBjb25zdCBzdHlsZSA9IHRoaXMuX2NvbnZlcnRlcnNbcmVuZGVyZXIuc3ltYm9sLnR5cGVdLmNhbGwoXHJcbiAgICAgIHRoaXMsXHJcbiAgICAgIHJlbmRlcmVyLnN5bWJvbFxyXG4gICAgKTtcclxuICAgIHJldHVybiAoKCkgPT4ge1xyXG4gICAgICByZXR1cm4gKCkgPT4ge1xyXG4gICAgICAgIHJldHVybiBbc3R5bGVdO1xyXG4gICAgICB9O1xyXG4gICAgfSkoKTtcclxuICB9XHJcbiAgX3JlbmRlckNsYXNzQnJlYWtzKHJlbmRlcmVyKSB7XHJcbiAgICBjb25zdCBkZWZhdWx0U3ltYm9sID0gcmVuZGVyZXIuZGVmYXVsdFN5bWJvbDtcclxuICAgIGNvbnN0IGRlZmF1bHRTdHlsZSA9IHRoaXMuX2NvbnZlcnRlcnNbZGVmYXVsdFN5bWJvbC50eXBlXS5jYWxsKFxyXG4gICAgICB0aGlzLFxyXG4gICAgICBkZWZhdWx0U3ltYm9sXHJcbiAgICApO1xyXG4gICAgY29uc3QgZmllbGQgPSByZW5kZXJlci5maWVsZDtcclxuICAgIGNvbnN0IGNsYXNzZXMgPSBbXTtcclxuICAgIGZvciAobGV0IGkgPSAwLCBpaSA9IHJlbmRlcmVyLmNsYXNzQnJlYWtJbmZvcy5sZW5ndGg7IGkgPCBpaTsgKytpKSB7XHJcbiAgICAgIGNvbnN0IGNsYXNzQnJlYWtJbmZvID0gcmVuZGVyZXIuY2xhc3NCcmVha0luZm9zW2ldO1xyXG4gICAgICBsZXQgbWluO1xyXG4gICAgICBpZiAoXHJcbiAgICAgICAgY2xhc3NCcmVha0luZm8uY2xhc3NNaW5WYWx1ZSA9PT0gbnVsbCB8fFxyXG4gICAgICAgIGNsYXNzQnJlYWtJbmZvLmNsYXNzTWluVmFsdWUgPT09IHVuZGVmaW5lZFxyXG4gICAgICApIHtcclxuICAgICAgICBpZiAoaSA9PT0gMCkge1xyXG4gICAgICAgICAgbWluID0gcmVuZGVyZXIubWluVmFsdWU7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIG1pbiA9IHJlbmRlcmVyLmNsYXNzQnJlYWtJbmZvc1tpIC0gMV0uY2xhc3NNYXhWYWx1ZTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgbWluID0gY2xhc3NCcmVha0luZm8uY2xhc3NNaW5WYWx1ZTtcclxuICAgICAgfVxyXG4gICAgICBjb25zdCBtYXggPSBjbGFzc0JyZWFrSW5mby5jbGFzc01heFZhbHVlO1xyXG4gICAgICBjb25zdCBzeW1ib2wgPSBjbGFzc0JyZWFrSW5mby5zeW1ib2w7XHJcbiAgICAgIGNvbnN0IHN0eWxlID0gdGhpcy5fY29udmVydGVyc1tzeW1ib2wudHlwZV0uY2FsbCh0aGlzLCBzeW1ib2wpO1xyXG4gICAgICBjbGFzc2VzLnB1c2goeyBtaW4sIG1heCwgc3R5bGUgfSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gKCgpID0+IHtcclxuICAgICAgcmV0dXJuIChmZWF0dXJlKSA9PiB7XHJcbiAgICAgICAgY29uc3QgdmFsdWUgPSBmZWF0dXJlLmdldChmaWVsZCk7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDAsIGlpID0gY2xhc3Nlcy5sZW5ndGg7IGkgPCBpaTsgKytpKSB7XHJcbiAgICAgICAgICBsZXQgY29uZGl0aW9uO1xyXG4gICAgICAgICAgaWYgKGkgPT09IDApIHtcclxuICAgICAgICAgICAgY29uZGl0aW9uID0gdmFsdWUgPj0gY2xhc3Nlc1tpXS5taW4gJiYgdmFsdWUgPD0gY2xhc3Nlc1tpXS5tYXg7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBjb25kaXRpb24gPSB2YWx1ZSA+IGNsYXNzZXNbaV0ubWluICYmIHZhbHVlIDw9IGNsYXNzZXNbaV0ubWF4O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKGNvbmRpdGlvbikge1xyXG4gICAgICAgICAgICByZXR1cm4gW2NsYXNzZXNbaV0uc3R5bGVdO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gW2RlZmF1bHRTdHlsZV07XHJcbiAgICAgIH07XHJcbiAgICB9KSgpO1xyXG4gIH1cclxuICBfcmVuZGVyVW5pcXVlVmFsdWUocmVuZGVyZXIpIHtcclxuICAgIGNvbnN0IGRlZmF1bHRTeW1ib2wgPSByZW5kZXJlci5kZWZhdWx0U3ltYm9sO1xyXG4gICAgbGV0IGRlZmF1bHRTdHlsZSA9IFtdO1xyXG4gICAgaWYgKGRlZmF1bHRTeW1ib2wpIHtcclxuICAgICAgZGVmYXVsdFN0eWxlID0gW1xyXG4gICAgICAgIHRoaXMuX2NvbnZlcnRlcnNbZGVmYXVsdFN5bWJvbC50eXBlXS5jYWxsKHRoaXMsIGRlZmF1bHRTeW1ib2wpXHJcbiAgICAgIF07XHJcbiAgICB9XHJcbiAgICBjb25zdCBmaWVsZCA9IHJlbmRlcmVyLmZpZWxkMTtcclxuICAgIGNvbnN0IGluZm9zID0gcmVuZGVyZXIudW5pcXVlVmFsdWVJbmZvcztcclxuICAgIGNvbnN0IG1lID0gdGhpcztcclxuICAgIHJldHVybiAoKCkgPT4ge1xyXG4gICAgICBjb25zdCBoYXNoID0ge307XHJcbiAgICAgIGZvciAobGV0IGkgPSAwLCBpaSA9IGluZm9zLmxlbmd0aDsgaSA8IGlpOyArK2kpIHtcclxuICAgICAgICBjb25zdCBpbmZvID0gaW5mb3NbaV07XHJcbiAgICAgICAgY29uc3Qgc3ltYm9sID0gaW5mby5zeW1ib2w7XHJcbiAgICAgICAgaGFzaFtpbmZvLnZhbHVlXSA9IFttZS5fY29udmVydGVyc1tzeW1ib2wudHlwZV0uY2FsbChtZSwgc3ltYm9sKV07XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHJldHVybiAoZmVhdHVyZSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IHN0eWxlID0gaGFzaFtmZWF0dXJlLmdldChmaWVsZCldO1xyXG4gICAgICAgIHJldHVybiBzdHlsZSA/IHN0eWxlIDogZGVmYXVsdFN0eWxlO1xyXG4gICAgICB9O1xyXG4gICAgfSkoKTtcclxuICB9XHJcbiAgZ2VuZXJhdGVTdHlsZShsYXllckluZm8sIG1hcFVuaXRzKSB7XHJcbiAgICBjb25zdCBkcmF3aW5nSW5mbyA9IGxheWVySW5mby5kcmF3aW5nSW5mbztcclxuICAgIGxldCBzdHlsZUZ1bmN0aW9ucyA9IFtdO1xyXG4gICAgY29uc3QgZHJhd2luZ0luZm9TdHlsZSA9IHRoaXMuX3JlbmRlcmVyc1tkcmF3aW5nSW5mby5yZW5kZXJlci50eXBlXS5jYWxsKFxyXG4gICAgICB0aGlzLFxyXG4gICAgICBkcmF3aW5nSW5mby5yZW5kZXJlclxyXG4gICAgKTtcclxuICAgIGlmIChkcmF3aW5nSW5mb1N0eWxlICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgc3R5bGVGdW5jdGlvbnMucHVzaChkcmF3aW5nSW5mb1N0eWxlKTtcclxuICAgIH1cclxuICAgIGlmIChsYXllckluZm8ubGFiZWxpbmdJbmZvKSB7XHJcbiAgICAgIGNvbnN0IGxhYmVsaW5nSW5mb1N0eWxlRnVuY3Rpb25zID0gdGhpcy5fY29udmVydExhYmVsaW5nSW5mbyhcclxuICAgICAgICBsYXllckluZm8ubGFiZWxpbmdJbmZvLFxyXG4gICAgICAgIG1hcFVuaXRzXHJcbiAgICAgICk7XHJcbiAgICAgIHN0eWxlRnVuY3Rpb25zID0gc3R5bGVGdW5jdGlvbnMuY29uY2F0KGxhYmVsaW5nSW5mb1N0eWxlRnVuY3Rpb25zKTtcclxuICAgIH1cclxuICAgIGlmIChzdHlsZUZ1bmN0aW9ucy5sZW5ndGggPT09IDEpIHtcclxuICAgICAgcmV0dXJuIHN0eWxlRnVuY3Rpb25zWzBdO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuICgoKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIChmZWF0dXJlLCByZXNvbHV0aW9uKSA9PiB7XHJcbiAgICAgICAgICBsZXQgc3R5bGVzID0gW107XHJcbiAgICAgICAgICBmb3IgKGxldCBpID0gMCwgaWkgPSBzdHlsZUZ1bmN0aW9ucy5sZW5ndGg7IGkgPCBpaTsgKytpKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IHN0eWxlRnVuY3Rpb25zW2ldLmNhbGwobnVsbCwgZmVhdHVyZSwgcmVzb2x1dGlvbik7XHJcbiAgICAgICAgICAgIGlmIChyZXN1bHQpIHtcclxuICAgICAgICAgICAgICBzdHlsZXMgPSBzdHlsZXMuY29uY2F0KHJlc3VsdCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHJldHVybiBzdHlsZXM7XHJcbiAgICAgICAgfTtcclxuICAgICAgfSkoKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
@@ -0,0 +1,2 @@
1
+ export * from './esri-style-generator';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9zdHlsZS9zaGFyZWQvZGF0YXNvdXJjZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHdCQUF3QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9lc3JpLXN0eWxlLWdlbmVyYXRvcic7XHJcbiJdfQ==
@@ -0,0 +1,141 @@
1
+ import * as olStyle from 'ol/style';
2
+ import { StyleService } from '../../style-service/style.service';
3
+ export function featureRandomStyleFunction() {
4
+ const r = Math.floor(Math.random() * 255);
5
+ const g = Math.floor(Math.random() * 255);
6
+ const b = Math.floor(Math.random() * 255);
7
+ const stroke = new olStyle.Stroke({
8
+ color: [r, g, b, 1],
9
+ width: 2
10
+ });
11
+ const fill = new olStyle.Fill({
12
+ color: [r, g, b, 0.4]
13
+ });
14
+ return (olFeature) => {
15
+ const customStyle = olFeature.get('_style');
16
+ if (customStyle) {
17
+ const styleService = new StyleService();
18
+ return styleService.createStyle(customStyle);
19
+ }
20
+ const style = new olStyle.Style({
21
+ stroke,
22
+ fill,
23
+ image: new olStyle.Circle({
24
+ radius: 5,
25
+ stroke,
26
+ fill
27
+ }),
28
+ text: olFeature.get('_mapTitle') ? new olStyle.Text({
29
+ text: olFeature.get('_mapTitle').toString(),
30
+ offsetX: 5,
31
+ offsetY: -5,
32
+ font: '12px Calibri,sans-serif',
33
+ fill: new olStyle.Fill({ color: '#000' }),
34
+ stroke: new olStyle.Stroke({ color: '#fff', width: 3 }),
35
+ overflow: true
36
+ }) : undefined
37
+ });
38
+ return style;
39
+ };
40
+ }
41
+ export function featureRandomStyle() {
42
+ const r = Math.floor(Math.random() * 255);
43
+ const g = Math.floor(Math.random() * 255);
44
+ const b = Math.floor(Math.random() * 255);
45
+ const stroke = new olStyle.Stroke({
46
+ color: [r, g, b, 1],
47
+ width: 2
48
+ });
49
+ const fill = new olStyle.Fill({
50
+ color: [r, g, b, 0.4]
51
+ });
52
+ const style = new olStyle.Style({
53
+ stroke,
54
+ fill,
55
+ image: new olStyle.Circle({
56
+ radius: 5,
57
+ stroke,
58
+ fill
59
+ })
60
+ });
61
+ return style;
62
+ }
63
+ /**
64
+ * Create a default style for the pointer position and it's label summary.
65
+ * @param feature olFeature
66
+ * @returns OL style function
67
+ */
68
+ export function hoverFeatureMarkerStyle(feature, resolution) {
69
+ const olStyleText = new olStyle.Style({
70
+ text: new olStyle.Text({
71
+ text: feature.get('hoverSummary'),
72
+ textAlign: 'left',
73
+ textBaseline: 'top',
74
+ font: '12px Calibri,sans-serif',
75
+ fill: new olStyle.Fill({ color: '#000' }),
76
+ backgroundFill: new olStyle.Fill({ color: 'rgba(255, 255, 255, 0.5)' }),
77
+ backgroundStroke: new olStyle.Stroke({ color: 'rgba(200, 200, 200, 0.75)', width: 2 }),
78
+ stroke: new olStyle.Stroke({ color: '#fff', width: 3 }),
79
+ overflow: true,
80
+ offsetX: 10,
81
+ offsetY: 20,
82
+ padding: [2.5, 2.5, 2.5, 2.5]
83
+ })
84
+ });
85
+ const olStyles = [olStyleText];
86
+ switch (feature.getGeometry().getType()) {
87
+ case 'Point':
88
+ olStyles.push(new olStyle.Style({
89
+ image: new olStyle.Circle({
90
+ radius: 10,
91
+ stroke: new olStyle.Stroke({
92
+ color: 'blue',
93
+ width: 3
94
+ })
95
+ })
96
+ }));
97
+ break;
98
+ default:
99
+ olStyles.push(new olStyle.Style({
100
+ stroke: new olStyle.Stroke({
101
+ color: 'white',
102
+ width: 5
103
+ })
104
+ }));
105
+ olStyles.push(new olStyle.Style({
106
+ stroke: new olStyle.Stroke({
107
+ color: 'blue',
108
+ width: 3
109
+ })
110
+ }));
111
+ }
112
+ return olStyles;
113
+ }
114
+ /**
115
+ * Create a default style for the pointer position and it's label summary.
116
+ * @param feature olFeature
117
+ * @returns OL style function
118
+ */
119
+ export function pointerPositionSummaryMarkerStyle(feature, resolution) {
120
+ return new olStyle.Style({
121
+ image: new olStyle.Icon({
122
+ src: './assets/igo2/geo/icons/cross_black_18px.svg',
123
+ imgSize: [18, 18], // for ie
124
+ }),
125
+ text: new olStyle.Text({
126
+ text: feature.get('pointerSummary'),
127
+ textAlign: 'left',
128
+ textBaseline: 'bottom',
129
+ font: '12px Calibri,sans-serif',
130
+ fill: new olStyle.Fill({ color: '#000' }),
131
+ backgroundFill: new olStyle.Fill({ color: 'rgba(255, 255, 255, 0.5)' }),
132
+ backgroundStroke: new olStyle.Stroke({ color: 'rgba(200, 200, 200, 0.75)', width: 2 }),
133
+ stroke: new olStyle.Stroke({ color: '#fff', width: 3 }),
134
+ overflow: true,
135
+ offsetX: 10,
136
+ offsetY: -10,
137
+ padding: [2.5, 2.5, 2.5, 2.5]
138
+ })
139
+ });
140
+ }
141
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZS1zdHlsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL3N0eWxlL3NoYXJlZC9mZWF0dXJlL2ZlYXR1cmUtc3R5bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE9BQU8sTUFBTSxVQUFVLENBQUM7QUFJcEMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBR2pFLE1BQU0sVUFBVSwwQkFBMEI7SUFDeEMsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsR0FBRyxDQUFDLENBQUM7SUFDMUMsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsR0FBRyxDQUFDLENBQUM7SUFDMUMsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsR0FBRyxDQUFDLENBQUM7SUFDMUMsTUFBTSxNQUFNLEdBQUcsSUFBSSxPQUFPLENBQUMsTUFBTSxDQUFDO1FBQ2hDLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNuQixLQUFLLEVBQUUsQ0FBQztLQUNULENBQUMsQ0FBQztJQUNILE1BQU0sSUFBSSxHQUFHLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQztRQUM1QixLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFHLENBQUM7S0FDdEIsQ0FBQyxDQUFDO0lBQ0gsT0FBTyxDQUFDLFNBQWdDLEVBQUUsRUFBRTtRQUN4QyxNQUFNLFdBQVcsR0FBRyxTQUFTLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzVDLElBQUksV0FBVyxFQUFFO1lBQ2YsTUFBTSxZ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TSxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsQ0FBQztZQUN2RCxRQUFRLEVBQUUsSUFBSTtZQUNkLE9BQU8sRUFBRSxFQUFFO1lBQ1gsT0FBTyxFQUFFLENBQUMsRUFBRTtZQUNaLE9BQU8sRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQztTQUM5QixDQUFDO0tBQ0gsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIG9sU3R5bGUgZnJvbSAnb2wvc3R5bGUnO1xyXG5pbXBvcnQgKiBhcyBvbEdlb20gZnJvbSAnb2wvZ2VvbSc7XHJcbmltcG9ydCBvbEZlYXR1cmUgZnJvbSAnb2wvRmVhdHVyZSc7XHJcbmltcG9ydCB0eXBlIHsgZGVmYXVsdCBhcyBPbEdlb21ldHJ5IH0gZnJvbSAnb2wvZ2VvbS9HZW9tZXRyeSc7XHJcbmltcG9ydCB7IFN0eWxlU2VydmljZSB9IGZyb20gJy4uLy4uL3N0eWxlLXNlcnZpY2Uvc3R5bGUuc2VydmljZSc7XHJcblxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGZlYXR1cmVSYW5kb21TdHlsZUZ1bmN0aW9uKCk6IChvbEZlYXR1cmU6IG9sRmVhdHVyZTxPbEdlb21ldHJ5PikgPT4gb2xTdHlsZS5TdHlsZSB7XHJcbiAgY29uc3QgciA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDI1NSk7XHJcbiAgY29uc3QgZyA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDI1NSk7XHJcbiAgY29uc3QgYiA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDI1NSk7XHJcbiAgY29uc3Qgc3Ryb2tlID0gbmV3IG9sU3R5bGUuU3Ryb2tlKHtcclxuICAgIGNvbG9yOiBbciwgZywgYiwgMV0sXHJcbiAgICB3aWR0aDogMlxyXG4gIH0pO1xyXG4gIGNvbnN0IGZpbGwgPSBuZXcgb2xTdHlsZS5GaWxsKHtcclxuICAgIGNvbG9yOiBbciwgZywgYiwgMC40XVxyXG4gIH0pO1xyXG4gIHJldHVybiAob2xGZWF0dXJlOiBvbEZlYXR1cmU8T2xHZW9tZXRyeT4pID0+IHtcclxuICAgICAgY29uc3QgY3VzdG9tU3R5bGUgPSBvbEZlYXR1cmUuZ2V0KCdfc3R5bGUnKTtcclxuICAgICAgaWYgKGN1c3RvbVN0eWxlKSB7XHJcbiAgICAgICAgY29uc3Qgc3R5bGVTZXJ2aWNlID0gbmV3IFN0eWxlU2VydmljZSgpO1xyXG4gICAgICAgIHJldHVybiBzdHlsZVNlcnZpY2UuY3JlYXRlU3R5bGUoY3VzdG9tU3R5bGUpO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbnN0IHN0eWxlID0gbmV3IG9sU3R5bGUuU3R5bGUoe1xyXG4gICAgICAgIHN0cm9rZSxcclxuICAgICAgICBmaWxsLFxyXG4gICAgICAgIGltYWdlOiBuZXcgb2xTdHlsZS5DaXJjbGUoe1xyXG4gICAgICAgICAgcmFkaXVzOiA1LFxyXG4gICAgICAgICAgc3Ryb2tlLFxyXG4gICAgICAgICAgZmlsbFxyXG4gICAgICAgIH0pLFxyXG4gICAgICAgIHRleHQ6IG9sRmVhdHVyZS5nZXQoJ19tYXBUaXRsZScpID8gbmV3IG9sU3R5bGUuVGV4dCh7XHJcbiAgICAgICAgICB0ZXh0OiBvbEZlYXR1cmUuZ2V0KCdfbWFwVGl0bGUnKS50b1N0cmluZygpLFxyXG4gICAgICAgICAgb2Zmc2V0WDogNSxcclxuICAgICAgICAgIG9mZnNldFk6IC01LFxyXG4gICAgICAgICAgZm9udDogJzEycHggQ2FsaWJyaSxzYW5zLXNlcmlmJyxcclxuICAgICAgICAgIGZpbGw6IG5ldyBvbFN0eWxlLkZpbGwoeyBjb2xvcjogJyMwMDAnIH0pLFxyXG4gICAgICAgICAgc3Ryb2tlOiBuZXcgb2xTdHlsZS5TdHJva2UoeyBjb2xvcjogJyNmZmYnLCB3aWR0aDogMyB9KSxcclxuICAgICAgICAgIG92ZXJmbG93OiB0cnVlXHJcbiAgICAgICAgfSk6IHVuZGVmaW5lZFxyXG4gICAgICB9KTtcclxuICAgICAgcmV0dXJuIHN0eWxlO1xyXG4gIH07XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBmZWF0dXJlUmFuZG9tU3R5bGUoKTogb2xTdHlsZS5TdHlsZSB7XHJcbiAgY29uc3QgciA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDI1NSk7XHJcbiAgY29uc3QgZyA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDI1NSk7XHJcbiAgY29uc3QgYiA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDI1NSk7XHJcbiAgY29uc3Qgc3Ryb2tlID0gbmV3IG9sU3R5bGUuU3Ryb2tlKHtcclxuICAgIGNvbG9yOiBbciwgZywgYiwgMV0sXHJcbiAgICB3aWR0aDogMlxyXG4gIH0pO1xyXG4gIGNvbnN0IGZpbGwgPSBuZXcgb2xTdHlsZS5GaWxsKHtcclxuICAgIGNvbG9yOiBbciwgZywgYiwgMC40XVxyXG4gIH0pO1xyXG5cclxuICBjb25zdCBzdHlsZSA9IG5ldyBvbFN0eWxlLlN0eWxlKHtcclxuICAgIHN0cm9rZSxcclxuICAgIGZpbGwsXHJcbiAgICBpbWFnZTogbmV3IG9sU3R5bGUuQ2lyY2xlKHtcclxuICAgICAgcmFkaXVzOiA1LFxyXG4gICAgICBzdHJva2UsXHJcbiAgICAgIGZpbGxcclxuICAgIH0pXHJcbiAgfSk7XHJcbiAgcmV0dXJuIHN0eWxlO1xyXG59XHJcblxyXG4vKipcclxuICogQ3JlYXRlIGEgZGVmYXVsdCBzdHlsZSBmb3IgdGhlIHBvaW50ZXIgcG9zaXRpb24gYW5kIGl0J3MgbGFiZWwgc3VtbWFyeS5cclxuICogQHBhcmFtIGZlYXR1cmUgb2xGZWF0dXJlXHJcbiAqIEByZXR1cm5zIE9MIHN0eWxlIGZ1bmN0aW9uXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gaG92ZXJGZWF0dXJlTWFya2VyU3R5bGUoZmVhdHVyZTogb2xGZWF0dXJlPG9sR2VvbS5HZW9tZXRyeT4sIHJlc29sdXRpb246IG51bWJlcik6IG9sU3R5bGUuU3R5bGVbXSB7XHJcblxyXG4gICAgY29uc3Qgb2xTdHlsZVRleHQgPSBuZXcgb2xTdHlsZS5TdHlsZSh7XHJcbiAgICAgIHRleHQ6IG5ldyBvbFN0eWxlLlRleHQoe1xyXG4gICAgICAgIHRleHQ6IGZlYXR1cmUuZ2V0KCdob3ZlclN1bW1hcnknKSxcclxuICAgICAgICB0ZXh0QWxpZ246ICdsZWZ0JyxcclxuICAgICAgICB0ZXh0QmFzZWxpbmU6ICd0b3AnLFxyXG4gICAgICAgIGZvbnQ6ICcxMnB4IENhbGlicmksc2Fucy1zZXJpZicsXHJcbiAgICAgICAgZmlsbDogbmV3IG9sU3R5bGUuRmlsbCh7IGNvbG9yOiAnIzAwMCcgfSksXHJcbiAgICAgICAgYmFja2dyb3VuZEZpbGw6IG5ldyBvbFN0eWxlLkZpbGwoeyBjb2xvcjogJ3JnYmEoMjU1LCAyNTUsIDI1NSwgMC41KScgfSksXHJcbiAgICAgICAgYmFja2dyb3VuZFN0cm9rZTogbmV3IG9sU3R5bGUuU3Ryb2tlKHsgY29sb3I6ICdyZ2JhKDIwMCwgMjAwLCAyMDAsIDAuNzUpJywgd2lkdGg6IDIgfSksXHJcbiAgICAgICAgc3Ryb2tlOiBuZXcgb2xTdHlsZS5TdHJva2UoeyBjb2xvcjogJyNmZmYnLCB3aWR0aDogMyB9KSxcclxuICAgICAgICBvdmVyZmxvdzogdHJ1ZSxcclxuICAgICAgICBvZmZzZXRYOiAxMCxcclxuICAgICAgICBvZmZzZXRZOiAyMCxcclxuICAgICAgICBwYWRkaW5nOiBbMi41LCAyLjUsIDIuNSwgMi41XVxyXG4gICAgICB9KVxyXG4gICAgfSk7XHJcbiAgICBjb25zdCBvbFN0eWxlcyA9IFtvbFN0eWxlVGV4dF07XHJcbiAgICBzd2l0Y2ggKGZlYXR1cmUuZ2V0R2VvbWV0cnkoKS5nZXRUeXBlKCkpIHtcclxuICAgICAgY2FzZSAnUG9pbnQnOlxyXG4gICAgICAgIG9sU3R5bGVzLnB1c2gobmV3IG9sU3R5bGUuU3R5bGUoe1xyXG4gICAgICAgICAgaW1hZ2U6IG5ldyBvbFN0eWxlLkNpcmNsZSh7XHJcbiAgICAgICAgICAgIHJhZGl1czogMTAsXHJcbiAgICAgICAgICAgIHN0cm9rZTogbmV3IG9sU3R5bGUuU3Ryb2tlKHtcclxuICAgICAgICAgICAgICBjb2xvcjogJ2JsdWUnLFxyXG4gICAgICAgICAgICAgIHdpZHRoOiAzXHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgIH0pKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICBvbFN0eWxlcy5wdXNoKG5ldyBvbFN0eWxlLlN0eWxlKHtcclxuICAgICAgICAgIHN0cm9rZTogbmV3IG9sU3R5bGUuU3Ryb2tlKHtcclxuICAgICAgICAgICAgY29sb3I6ICd3aGl0ZScsXHJcbiAgICAgICAgICAgIHdpZHRoOiA1XHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgIH0pKTtcclxuICAgICAgICBvbFN0eWxlcy5wdXNoKG5ldyBvbFN0eWxlLlN0eWxlKHtcclxuICAgICAgICAgIHN0cm9rZTogbmV3IG9sU3R5bGUuU3Ryb2tlKHtcclxuICAgICAgICAgICAgY29sb3I6ICdibHVlJyxcclxuICAgICAgICAgICAgd2lkdGg6IDNcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgfSkpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBvbFN0eWxlcztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gKiBDcmVhdGUgYSBkZWZhdWx0IHN0eWxlIGZvciB0aGUgcG9pbnRlciBwb3NpdGlvbiBhbmQgaXQncyBsYWJlbCBzdW1tYXJ5LlxyXG4gKiBAcGFyYW0gZmVhdHVyZSBvbEZlYXR1cmVcclxuICogQHJldHVybnMgT0wgc3R5bGUgZnVuY3Rpb25cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBwb2ludGVyUG9zaXRpb25TdW1tYXJ5TWFya2VyU3R5bGUoZmVhdHVyZTogb2xGZWF0dXJlPE9sR2VvbWV0cnk+LCByZXNvbHV0aW9uOiBudW1iZXIpOiBvbFN0eWxlLlN0eWxlIHtcclxuICAgIHJldHVybiBuZXcgb2xTdHlsZS5TdHlsZSh7XHJcbiAgICAgIGltYWdlOiBuZXcgb2xTdHlsZS5JY29uKHtcclxuICAgICAgICBzcmM6ICcuL2Fzc2V0cy9pZ28yL2dlby9pY29ucy9jcm9zc19ibGFja18xOHB4LnN2ZycsXHJcbiAgICAgICAgaW1nU2l6ZTogWzE4LCAxOF0sIC8vIGZvciBpZVxyXG4gICAgICB9KSxcclxuXHJcbiAgICAgIHRleHQ6IG5ldyBvbFN0eWxlLlRleHQoe1xyXG4gICAgICAgIHRleHQ6IGZlYXR1cmUuZ2V0KCdwb2ludGVyU3VtbWFyeScpLFxyXG4gICAgICAgIHRleHRBbGlnbjogJ2xlZnQnLFxyXG4gICAgICAgIHRleHRCYXNlbGluZTogJ2JvdHRvbScsXHJcbiAgICAgICAgZm9udDogJzEycHggQ2FsaWJyaSxzYW5zLXNlcmlmJyxcclxuICAgICAgICBmaWxsOiBuZXcgb2xTdHlsZS5GaWxsKHsgY29sb3I6ICcjMDAwJyB9KSxcclxuICAgICAgICBiYWNrZ3JvdW5kRmlsbDogbmV3IG9sU3R5bGUuRmlsbCh7IGNvbG9yOiAncmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpJyB9KSxcclxuICAgICAgICBiYWNrZ3JvdW5kU3Ryb2tlOiBuZXcgb2xTdHlsZS5TdHJva2UoeyBjb2xvcjogJ3JnYmEoMjAwLCAyMDAsIDIwMCwgMC43NSknLCB3aWR0aDogMiB9KSxcclxuICAgICAgICBzdHJva2U6IG5ldyBvbFN0eWxlLlN0cm9rZSh7IGNvbG9yOiAnI2ZmZicsIHdpZHRoOiAzIH0pLFxyXG4gICAgICAgIG92ZXJmbG93OiB0cnVlLFxyXG4gICAgICAgIG9mZnNldFg6IDEwLFxyXG4gICAgICAgIG9mZnNldFk6IC0xMCxcclxuICAgICAgICBwYWRkaW5nOiBbMi41LCAyLjUsIDIuNSwgMi41XVxyXG4gICAgICB9KVxyXG4gICAgfSk7XHJcbiAgfVxyXG4iXX0=
@@ -0,0 +1,2 @@
1
+ export * from './feature-style';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9zdHlsZS9zaGFyZWQvZmVhdHVyZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGlCQUFpQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9mZWF0dXJlLXN0eWxlJztcclxuIl19
@@ -0,0 +1,17 @@
1
+ export var FontType;
2
+ (function (FontType) {
3
+ FontType["Arial"] = "Arial";
4
+ FontType["ArialBlack"] = "Arial Black";
5
+ FontType["Verdana"] = "Verdana";
6
+ FontType["Tahoma"] = "Tahoma";
7
+ FontType["TrebuchetMS"] = "Trebuchet MS";
8
+ FontType["Impact"] = "Impact";
9
+ FontType["TimesNewRoman"] = "Times New Roman";
10
+ FontType["Georgia"] = "Georgia";
11
+ FontType["AmericanTypewriter"] = "American Typewriter";
12
+ FontType["Courier"] = "Courier";
13
+ FontType["LucidaConsole"] = "Lucida Console";
14
+ FontType["BrushScriptMT"] = "Brush Script MT";
15
+ FontType["ComicSansMS"] = "Comic Sans MS";
16
+ })(FontType || (FontType = {}));
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9udC5lbnVtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvc3R5bGUvc2hhcmVkL2ZvbnQuZW51bS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQU4sSUFBWSxRQWNYO0FBZEQsV0FBWSxRQUFRO0lBQ2hCLDJCQUFlLENBQUE7SUFDZixzQ0FBMEIsQ0FBQTtJQUMxQiwrQkFBbUIsQ0FBQTtJQUNuQiw2QkFBaUIsQ0FBQTtJQUNqQix3Q0FBNEIsQ0FBQTtJQUM1Qiw2QkFBaUIsQ0FBQTtJQUNqQiw2Q0FBaUMsQ0FBQTtJQUNqQywrQkFBbUIsQ0FBQTtJQUNuQixzREFBMEMsQ0FBQTtJQUMxQywrQkFBbUIsQ0FBQTtJQUNuQiw0Q0FBZ0MsQ0FBQTtJQUNoQyw2Q0FBaUMsQ0FBQTtJQUNqQyx5Q0FBNkIsQ0FBQTtBQUNqQyxDQUFDLEVBZFcsUUFBUSxLQUFSLFFBQVEsUUFjbkIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZW51bSBGb250VHlwZSB7XHJcbiAgICBBcmlhbCA9ICdBcmlhbCcsXHJcbiAgICBBcmlhbEJsYWNrID0gJ0FyaWFsIEJsYWNrJyxcclxuICAgIFZlcmRhbmEgPSAnVmVyZGFuYScsXHJcbiAgICBUYWhvbWEgPSAnVGFob21hJyxcclxuICAgIFRyZWJ1Y2hldE1TID0gJ1RyZWJ1Y2hldCBNUycsXHJcbiAgICBJbXBhY3QgPSAnSW1wYWN0JyxcclxuICAgIFRpbWVzTmV3Um9tYW4gPSAnVGltZXMgTmV3IFJvbWFuJyxcclxuICAgIEdlb3JnaWEgPSAnR2VvcmdpYScsXHJcbiAgICBBbWVyaWNhblR5cGV3cml0ZXIgPSAnQW1lcmljYW4gVHlwZXdyaXRlcicsXHJcbiAgICBDb3VyaWVyID0gJ0NvdXJpZXInLFxyXG4gICAgTHVjaWRhQ29uc29sZSA9ICdMdWNpZGEgQ29uc29sZScsXHJcbiAgICBCcnVzaFNjcmlwdE1UID0gJ0JydXNoIFNjcmlwdCBNVCcsXHJcbiAgICBDb21pY1NhbnNNUyA9ICdDb21pYyBTYW5zIE1TJ1xyXG59XHJcbiJdfQ==
@@ -0,0 +1,5 @@
1
+ export * from './datasource';
2
+ export * from './vector';
3
+ export * from './overlay';
4
+ export * from './feature';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9zdHlsZS9zaGFyZWQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxVQUFVLENBQUM7QUFDekIsY0FBYyxXQUFXLENBQUM7QUFDMUIsY0FBYyxXQUFXLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2RhdGFzb3VyY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL3ZlY3Rvcic7XHJcbmV4cG9ydCAqIGZyb20gJy4vb3ZlcmxheSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vZmVhdHVyZSc7XHJcbiJdfQ==
@@ -0,0 +1,3 @@
1
+ export * from './overlay-marker-style.utils';
2
+ export * from './overlay-style.utils';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9zdHlsZS9zaGFyZWQvb3ZlcmxheS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsdUJBQXVCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL292ZXJsYXktbWFya2VyLXN0eWxlLnV0aWxzJztcclxuZXhwb3J0ICogZnJvbSAnLi9vdmVybGF5LXN0eWxlLnV0aWxzJztcclxuIl19