@itwin/map-layers 3.1.0-dev.39 → 3.1.0-dev.42

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 (132) hide show
  1. package/CHANGELOG.md +6 -1
  2. package/lib/cjs/MapLayerPreferences.d.ts +8 -8
  3. package/lib/cjs/MapLayerPreferences.d.ts.map +1 -1
  4. package/lib/cjs/MapLayerPreferences.js +13 -13
  5. package/lib/cjs/MapLayerPreferences.js.map +1 -1
  6. package/lib/cjs/map-layers.d.ts +1 -0
  7. package/lib/cjs/map-layers.d.ts.map +1 -1
  8. package/lib/cjs/map-layers.js +1 -0
  9. package/lib/cjs/map-layers.js.map +1 -1
  10. package/lib/cjs/mapLayers.d.ts +15 -26
  11. package/lib/cjs/mapLayers.d.ts.map +1 -1
  12. package/lib/cjs/mapLayers.js +24 -45
  13. package/lib/cjs/mapLayers.js.map +1 -1
  14. package/lib/cjs/ui/FeatureInfoUiItemsProvider.d.ts +6 -12
  15. package/lib/cjs/ui/FeatureInfoUiItemsProvider.d.ts.map +1 -1
  16. package/lib/cjs/ui/FeatureInfoUiItemsProvider.js +28 -19
  17. package/lib/cjs/ui/FeatureInfoUiItemsProvider.js.map +1 -1
  18. package/lib/cjs/ui/Interfaces.d.ts +10 -1
  19. package/lib/cjs/ui/Interfaces.d.ts.map +1 -1
  20. package/lib/cjs/ui/Interfaces.js.map +1 -1
  21. package/lib/cjs/ui/MapFeatureInfoTool.d.ts +14 -0
  22. package/lib/cjs/ui/MapFeatureInfoTool.d.ts.map +1 -0
  23. package/lib/cjs/ui/MapFeatureInfoTool.js +51 -0
  24. package/lib/cjs/ui/MapFeatureInfoTool.js.map +1 -0
  25. package/lib/cjs/ui/MapLayersUiItemsProvider.d.ts +4 -18
  26. package/lib/cjs/ui/MapLayersUiItemsProvider.d.ts.map +1 -1
  27. package/lib/cjs/ui/MapLayersUiItemsProvider.js +13 -29
  28. package/lib/cjs/ui/MapLayersUiItemsProvider.js.map +1 -1
  29. package/lib/cjs/ui/widget/AttachLayerPopupButton.d.ts.map +1 -1
  30. package/lib/cjs/ui/widget/AttachLayerPopupButton.js +22 -14
  31. package/lib/cjs/ui/widget/AttachLayerPopupButton.js.map +1 -1
  32. package/lib/cjs/ui/widget/BasemapPanel.js +6 -6
  33. package/lib/cjs/ui/widget/BasemapPanel.js.map +1 -1
  34. package/lib/cjs/ui/widget/FeatureInfoDataProvider.d.ts +4 -5
  35. package/lib/cjs/ui/widget/FeatureInfoDataProvider.d.ts.map +1 -1
  36. package/lib/cjs/ui/widget/FeatureInfoDataProvider.js +4 -11
  37. package/lib/cjs/ui/widget/FeatureInfoDataProvider.js.map +1 -1
  38. package/lib/cjs/ui/widget/FeatureInfoWidget.d.ts +2 -2
  39. package/lib/cjs/ui/widget/FeatureInfoWidget.d.ts.map +1 -1
  40. package/lib/cjs/ui/widget/FeatureInfoWidget.js +13 -11
  41. package/lib/cjs/ui/widget/FeatureInfoWidget.js.map +1 -1
  42. package/lib/cjs/ui/widget/MapLayerDroppable.d.ts.map +1 -1
  43. package/lib/cjs/ui/widget/MapLayerDroppable.js +6 -6
  44. package/lib/cjs/ui/widget/MapLayerDroppable.js.map +1 -1
  45. package/lib/cjs/ui/widget/MapLayerManager.d.ts.map +1 -1
  46. package/lib/cjs/ui/widget/MapLayerManager.js +14 -14
  47. package/lib/cjs/ui/widget/MapLayerManager.js.map +1 -1
  48. package/lib/cjs/ui/widget/MapLayerSettingsMenu.d.ts.map +1 -1
  49. package/lib/cjs/ui/widget/MapLayerSettingsMenu.js +3 -3
  50. package/lib/cjs/ui/widget/MapLayerSettingsMenu.js.map +1 -1
  51. package/lib/cjs/ui/widget/MapLayerSettingsPopupButton.d.ts.map +1 -1
  52. package/lib/cjs/ui/widget/MapLayerSettingsPopupButton.js +2 -2
  53. package/lib/cjs/ui/widget/MapLayerSettingsPopupButton.js.map +1 -1
  54. package/lib/cjs/ui/widget/MapLayersWidget.d.ts.map +1 -1
  55. package/lib/cjs/ui/widget/MapLayersWidget.js +2 -2
  56. package/lib/cjs/ui/widget/MapLayersWidget.js.map +1 -1
  57. package/lib/cjs/ui/widget/MapManagerSettings.js +16 -16
  58. package/lib/cjs/ui/widget/MapManagerSettings.js.map +1 -1
  59. package/lib/cjs/ui/widget/MapUrlDialog.d.ts.map +1 -1
  60. package/lib/cjs/ui/widget/MapUrlDialog.js +46 -40
  61. package/lib/cjs/ui/widget/MapUrlDialog.js.map +1 -1
  62. package/lib/cjs/ui/widget/SubLayersPopupButton.js +3 -3
  63. package/lib/cjs/ui/widget/SubLayersPopupButton.js.map +1 -1
  64. package/lib/cjs/ui/widget/SubLayersTree.d.ts.map +1 -1
  65. package/lib/cjs/ui/widget/SubLayersTree.js +5 -5
  66. package/lib/cjs/ui/widget/SubLayersTree.js.map +1 -1
  67. package/lib/esm/MapLayerPreferences.d.ts +8 -8
  68. package/lib/esm/MapLayerPreferences.d.ts.map +1 -1
  69. package/lib/esm/MapLayerPreferences.js +13 -13
  70. package/lib/esm/MapLayerPreferences.js.map +1 -1
  71. package/lib/esm/map-layers.d.ts +1 -0
  72. package/lib/esm/map-layers.d.ts.map +1 -1
  73. package/lib/esm/map-layers.js +1 -0
  74. package/lib/esm/map-layers.js.map +1 -1
  75. package/lib/esm/mapLayers.d.ts +15 -26
  76. package/lib/esm/mapLayers.d.ts.map +1 -1
  77. package/lib/esm/mapLayers.js +24 -45
  78. package/lib/esm/mapLayers.js.map +1 -1
  79. package/lib/esm/ui/FeatureInfoUiItemsProvider.d.ts +6 -12
  80. package/lib/esm/ui/FeatureInfoUiItemsProvider.d.ts.map +1 -1
  81. package/lib/esm/ui/FeatureInfoUiItemsProvider.js +29 -19
  82. package/lib/esm/ui/FeatureInfoUiItemsProvider.js.map +1 -1
  83. package/lib/esm/ui/Interfaces.d.ts +10 -1
  84. package/lib/esm/ui/Interfaces.d.ts.map +1 -1
  85. package/lib/esm/ui/Interfaces.js.map +1 -1
  86. package/lib/esm/ui/MapFeatureInfoTool.d.ts +14 -0
  87. package/lib/esm/ui/MapFeatureInfoTool.d.ts.map +1 -0
  88. package/lib/esm/ui/MapFeatureInfoTool.js +46 -0
  89. package/lib/esm/ui/MapFeatureInfoTool.js.map +1 -0
  90. package/lib/esm/ui/MapLayersUiItemsProvider.d.ts +4 -18
  91. package/lib/esm/ui/MapLayersUiItemsProvider.d.ts.map +1 -1
  92. package/lib/esm/ui/MapLayersUiItemsProvider.js +14 -29
  93. package/lib/esm/ui/MapLayersUiItemsProvider.js.map +1 -1
  94. package/lib/esm/ui/widget/AttachLayerPopupButton.d.ts.map +1 -1
  95. package/lib/esm/ui/widget/AttachLayerPopupButton.js +22 -14
  96. package/lib/esm/ui/widget/AttachLayerPopupButton.js.map +1 -1
  97. package/lib/esm/ui/widget/BasemapPanel.js +6 -6
  98. package/lib/esm/ui/widget/BasemapPanel.js.map +1 -1
  99. package/lib/esm/ui/widget/FeatureInfoDataProvider.d.ts +4 -5
  100. package/lib/esm/ui/widget/FeatureInfoDataProvider.d.ts.map +1 -1
  101. package/lib/esm/ui/widget/FeatureInfoDataProvider.js +4 -11
  102. package/lib/esm/ui/widget/FeatureInfoDataProvider.js.map +1 -1
  103. package/lib/esm/ui/widget/FeatureInfoWidget.d.ts +2 -2
  104. package/lib/esm/ui/widget/FeatureInfoWidget.d.ts.map +1 -1
  105. package/lib/esm/ui/widget/FeatureInfoWidget.js +13 -11
  106. package/lib/esm/ui/widget/FeatureInfoWidget.js.map +1 -1
  107. package/lib/esm/ui/widget/MapLayerDroppable.d.ts.map +1 -1
  108. package/lib/esm/ui/widget/MapLayerDroppable.js +6 -6
  109. package/lib/esm/ui/widget/MapLayerDroppable.js.map +1 -1
  110. package/lib/esm/ui/widget/MapLayerManager.d.ts.map +1 -1
  111. package/lib/esm/ui/widget/MapLayerManager.js +14 -14
  112. package/lib/esm/ui/widget/MapLayerManager.js.map +1 -1
  113. package/lib/esm/ui/widget/MapLayerSettingsMenu.d.ts.map +1 -1
  114. package/lib/esm/ui/widget/MapLayerSettingsMenu.js +3 -3
  115. package/lib/esm/ui/widget/MapLayerSettingsMenu.js.map +1 -1
  116. package/lib/esm/ui/widget/MapLayerSettingsPopupButton.d.ts.map +1 -1
  117. package/lib/esm/ui/widget/MapLayerSettingsPopupButton.js +2 -2
  118. package/lib/esm/ui/widget/MapLayerSettingsPopupButton.js.map +1 -1
  119. package/lib/esm/ui/widget/MapLayersWidget.d.ts.map +1 -1
  120. package/lib/esm/ui/widget/MapLayersWidget.js +2 -2
  121. package/lib/esm/ui/widget/MapLayersWidget.js.map +1 -1
  122. package/lib/esm/ui/widget/MapManagerSettings.js +16 -16
  123. package/lib/esm/ui/widget/MapManagerSettings.js.map +1 -1
  124. package/lib/esm/ui/widget/MapUrlDialog.d.ts.map +1 -1
  125. package/lib/esm/ui/widget/MapUrlDialog.js +46 -40
  126. package/lib/esm/ui/widget/MapUrlDialog.js.map +1 -1
  127. package/lib/esm/ui/widget/SubLayersPopupButton.js +3 -3
  128. package/lib/esm/ui/widget/SubLayersPopupButton.js.map +1 -1
  129. package/lib/esm/ui/widget/SubLayersTree.d.ts.map +1 -1
  130. package/lib/esm/ui/widget/SubLayersTree.js +5 -5
  131. package/lib/esm/ui/widget/SubLayersTree.js.map +1 -1
  132. package/package.json +30 -29
@@ -1,39 +1,28 @@
1
- import { HitDetail, UserPreferencesAccess } from "@itwin/core-frontend";
2
- import { BeEvent } from "@itwin/core-bentley";
3
- export declare type MapHitEvent = BeEvent<(hit: HitDetail) => void>;
4
- export interface FeatureInfoOpts {
5
- onMapHit: MapHitEvent;
1
+ import { Localization } from "@itwin/core-common";
2
+ import { UserPreferencesAccess } from "@itwin/core-frontend";
3
+ import { MapFeatureInfoOptions, MapLayerOptions } from "./ui/Interfaces";
4
+ export interface MapLayersConfig {
5
+ localization?: Localization;
6
+ /** If an iTwinConfig is provided, it will be used to load the MapLayerSources that are stored. */
7
+ iTwinConfig?: UserPreferencesAccess;
8
+ mapLayerOptions?: MapLayerOptions;
9
+ featureInfoOpts?: MapFeatureInfoOptions;
6
10
  }
7
11
  /** MapLayersUI is use when the package is used as a dependency to another app.
8
12
  * '''ts
9
- * await MapLayersUI.initialize(registerItemsProvider);
13
+ * await MapLayersUI.initialize({...MapLayersInitProps});
10
14
  * '''
11
15
  * @beta
12
16
  */
13
17
  export declare class MapLayersUI {
14
18
  private static _defaultNs;
15
- private static _mapLayersItemsProvider;
16
- private static _mapFeatureInfoItemsProvider;
17
- private static _uiItemsProvider;
18
- private static _itemsProviderRegistered?;
19
+ static localization: Localization;
20
+ private static _uiItemsProviders;
19
21
  private static _iTwinConfig?;
20
- private static _onMapHit?;
21
22
  static get iTwinConfig(): UserPreferencesAccess | undefined;
22
- static get onMapHit(): MapHitEvent | undefined;
23
- /** Used to initialize the Map Layers.
24
- *
25
- * If `registerItemsProvider` is true, the UiItemsProvider will automatically insert the UI items into the host applications UI.
26
- * If it is false, explicitly add widget definition to a specific FrontStage definition using the following syntax.
27
- *
28
- * ```tsx
29
- * <Widget id={MapLayersWidgetControl.id} label={MapLayersWidgetControl.label} control={MapLayersWidgetControl}
30
- * iconSpec={MapLayersWidgetControl.iconSpec} />,
31
- * ```
32
- *
33
- * If an iTwinConfig is provided, it will be used to load the MapLayerSources that are stored.
34
- */
35
- static initialize(registerItemsProvider?: boolean, iTwinConfig?: UserPreferencesAccess, fInfoOps?: FeatureInfoOpts): Promise<void>;
36
- /** Unregisters internationalization service namespace and UiItemManager / control */
23
+ /** Used to initialize the Map Layers */
24
+ static initialize(config?: MapLayersConfig): Promise<void>;
25
+ /** Unregisters internationalization service namespace and UiItemManager */
37
26
  static terminate(): void;
38
27
  /** The internationalization service namespace. */
39
28
  static get localizationNamespace(): string;
@@ -1 +1 @@
1
- {"version":3,"file":"mapLayers.d.ts","sourceRoot":"","sources":["../../src/mapLayers.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAa,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAGnF,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAG9C,oBAAY,WAAW,GAAG,OAAO,CAAC,CAAC,GAAG,EAAE,SAAS,KAAK,IAAI,CAAC,CAAC;AAC5D,MAAM,WAAW,eAAe;IAK9B,QAAQ,EAAE,WAAW,CAAC;CACvB;AAED;;;;;GAKG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,MAAM,CAAC,UAAU,CAAe;IACxC,OAAO,CAAC,MAAM,CAAC,uBAAuB,CAA2B;IACjE,OAAO,CAAC,MAAM,CAAC,4BAA4B,CAA6B;IACxE,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAA2B;IAC1D,OAAO,CAAC,MAAM,CAAC,wBAAwB,CAAC,CAAU;IAElD,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,CAAwB;IACpD,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAc;IAEvC,WAAkB,WAAW,IAAI,qBAAqB,GAAG,SAAS,CAA8B;IAChG,WAAkB,QAAQ,IAAI,WAAW,GAAG,SAAS,CAA2B;IAEhF;;;;;;;;;;;OAWG;WACiB,UAAU,CAC5B,qBAAqB,UAAO,EAC5B,WAAW,CAAC,EAAE,qBAAqB,EACnC,QAAQ,CAAC,EAAE,eAAe,GACzB,OAAO,CAAC,IAAI,CAAC;IAuBhB,qFAAqF;WACvE,SAAS;IAevB,kDAAkD;IAClD,WAAkB,qBAAqB,IAAI,MAAM,CAEhD;CACF"}
1
+ {"version":3,"file":"mapLayers.d.ts","sourceRoot":"","sources":["../../src/mapLayers.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAa,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAIxE,OAAO,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAEzE,MAAM,WAAW,eAAe;IAC9B,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,kGAAkG;IAClG,WAAW,CAAC,EAAE,qBAAqB,CAAC;IACpC,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,eAAe,CAAC,EAAE,qBAAqB,CAAC;CACzC;AAED;;;;;GAKG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,MAAM,CAAC,UAAU,CAAe;IACxC,OAAc,YAAY,EAAE,YAAY,CAAC;IACzC,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAyB;IAEzD,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,CAAwB;IAEpD,WAAkB,WAAW,IAAI,qBAAqB,GAAG,SAAS,CAEjE;IAED,wCAAwC;WACpB,UAAU,CAAC,MAAM,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAyBvE,4EAA4E;WAC9D,SAAS;IAQvB,kDAAkD;IAClD,WAAkB,qBAAqB,IAAI,MAAM,CAEhD;CACF"}
@@ -1,66 +1,45 @@
1
- /*---------------------------------------------------------------------------------------------
2
- * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
3
- * See LICENSE.md in the project root for license terms and full copyright notice.
4
- *--------------------------------------------------------------------------------------------*/
5
1
  import { IModelApp } from "@itwin/core-frontend";
6
2
  import { MapLayersUiItemsProvider } from "./ui/MapLayersUiItemsProvider";
7
3
  import { UiItemsManager } from "@itwin/appui-abstract";
8
4
  import { FeatureInfoUiItemsProvider } from "./ui/FeatureInfoUiItemsProvider";
9
5
  /** MapLayersUI is use when the package is used as a dependency to another app.
10
6
  * '''ts
11
- * await MapLayersUI.initialize(registerItemsProvider);
7
+ * await MapLayersUI.initialize({...MapLayersInitProps});
12
8
  * '''
13
9
  * @beta
14
10
  */
15
11
  export class MapLayersUI {
16
- static get iTwinConfig() { return this._iTwinConfig; }
17
- static get onMapHit() { return this._onMapHit; }
18
- /** Used to initialize the Map Layers.
19
- *
20
- * If `registerItemsProvider` is true, the UiItemsProvider will automatically insert the UI items into the host applications UI.
21
- * If it is false, explicitly add widget definition to a specific FrontStage definition using the following syntax.
22
- *
23
- * ```tsx
24
- * <Widget id={MapLayersWidgetControl.id} label={MapLayersWidgetControl.label} control={MapLayersWidgetControl}
25
- * iconSpec={MapLayersWidgetControl.iconSpec} />,
26
- * ```
27
- *
28
- * If an iTwinConfig is provided, it will be used to load the MapLayerSources that are stored.
29
- */
30
- static async initialize(registerItemsProvider = true, iTwinConfig, fInfoOps) {
31
- MapLayersUI._iTwinConfig = iTwinConfig;
32
- MapLayersUI._onMapHit = fInfoOps === null || fInfoOps === void 0 ? void 0 : fInfoOps.onMapHit;
12
+ static get iTwinConfig() {
13
+ return this._iTwinConfig;
14
+ }
15
+ /** Used to initialize the Map Layers */
16
+ static async initialize(config) {
17
+ var _a, _b;
33
18
  // register namespace containing localized strings for this package
34
- await IModelApp.localization.registerNamespace(this.localizationNamespace);
35
- // _uiItemsProvider always created to provide access to localization.
36
- MapLayersUI._mapLayersItemsProvider = new MapLayersUiItemsProvider(IModelApp.localization);
37
- MapLayersUI._mapFeatureInfoItemsProvider = new FeatureInfoUiItemsProvider(IModelApp.localization);
38
- if (registerItemsProvider) {
39
- UiItemsManager.register(MapLayersUI._mapLayersItemsProvider);
40
- // Register the FeatureInfo widget only if MapHit was provided.
41
- if (MapLayersUI._onMapHit) {
42
- UiItemsManager.register(MapLayersUI._mapFeatureInfoItemsProvider);
43
- }
19
+ MapLayersUI.localization = (_a = config === null || config === void 0 ? void 0 : config.localization) !== null && _a !== void 0 ? _a : IModelApp.localization;
20
+ await MapLayersUI.localization.registerNamespace(MapLayersUI.localizationNamespace);
21
+ MapLayersUI._iTwinConfig = config === null || config === void 0 ? void 0 : config.iTwinConfig;
22
+ MapLayersUI._uiItemsProviders.push(new MapLayersUiItemsProvider({ ...config === null || config === void 0 ? void 0 : config.mapLayerOptions }));
23
+ // Register the FeatureInfo widget only if MapHit was provided.
24
+ if ((_b = config === null || config === void 0 ? void 0 : config.featureInfoOpts) === null || _b === void 0 ? void 0 : _b.onMapHit) {
25
+ MapLayersUI._uiItemsProviders.push(new FeatureInfoUiItemsProvider({ ...config === null || config === void 0 ? void 0 : config.featureInfoOpts }));
44
26
  }
45
- MapLayersUI._itemsProviderRegistered = registerItemsProvider;
27
+ MapLayersUI._uiItemsProviders.forEach((uiProvider) => {
28
+ UiItemsManager.register(uiProvider);
29
+ });
46
30
  }
47
- /** Unregisters internationalization service namespace and UiItemManager / control */
31
+ /** Unregisters internationalization service namespace and UiItemManager */
48
32
  static terminate() {
49
- IModelApp.localization.unregisterNamespace(this.localizationNamespace);
50
- if (MapLayersUI._itemsProviderRegistered !== undefined) {
51
- if (MapLayersUI._itemsProviderRegistered) {
52
- UiItemsManager.unregister(MapLayersUI._mapLayersItemsProvider.id);
53
- if (MapLayersUI._onMapHit) {
54
- UiItemsManager.unregister(MapLayersUI._mapFeatureInfoItemsProvider.id);
55
- }
56
- }
57
- MapLayersUI._itemsProviderRegistered = undefined;
58
- }
33
+ IModelApp.localization.unregisterNamespace(MapLayersUI.localizationNamespace);
34
+ MapLayersUI._uiItemsProviders.forEach((uiProvider) => {
35
+ UiItemsManager.unregister(uiProvider.id);
36
+ });
59
37
  }
60
38
  /** The internationalization service namespace. */
61
39
  static get localizationNamespace() {
62
- return this._defaultNs;
40
+ return MapLayersUI._defaultNs;
63
41
  }
64
42
  }
65
43
  MapLayersUI._defaultNs = "mapLayers";
44
+ MapLayersUI._uiItemsProviders = [];
66
45
  //# sourceMappingURL=mapLayers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mapLayers.js","sourceRoot":"","sources":["../../src/mapLayers.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F,OAAO,EAAa,SAAS,EAAyB,MAAM,sBAAsB,CAAC;AACnF,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvD,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAW7E;;;;;GAKG;AACH,MAAM,OAAO,WAAW;IAUf,MAAM,KAAK,WAAW,KAAwC,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;IACzF,MAAM,KAAK,QAAQ,KAA8B,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IAEhF;;;;;;;;;;;OAWG;IACI,MAAM,CAAC,KAAK,CAAC,UAAU,CAC5B,qBAAqB,GAAG,IAAI,EAC5B,WAAmC,EACnC,QAA0B;QAG1B,WAAW,CAAC,YAAY,GAAG,WAAW,CAAC;QACvC,WAAW,CAAC,SAAS,GAAG,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,QAAQ,CAAC;QAE3C,mEAAmE;QACnE,MAAM,SAAS,CAAC,YAAY,CAAC,iBAAiB,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QAE3E,qEAAqE;QACrE,WAAW,CAAC,uBAAuB,GAAG,IAAI,wBAAwB,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;QAC3F,WAAW,CAAC,4BAA4B,GAAG,IAAI,0BAA0B,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;QAClG,IAAI,qBAAqB,EAAE;YACzB,cAAc,CAAC,QAAQ,CAAC,WAAW,CAAC,uBAAuB,CAAC,CAAC;YAE7D,+DAA+D;YAC/D,IAAI,WAAW,CAAC,SAAS,EAAE;gBACzB,cAAc,CAAC,QAAQ,CAAC,WAAW,CAAC,4BAA4B,CAAC,CAAC;aACnE;SACF;QAED,WAAW,CAAC,wBAAwB,GAAG,qBAAqB,CAAC;IAC/D,CAAC;IAED,qFAAqF;IAC9E,MAAM,CAAC,SAAS;QACrB,SAAS,CAAC,YAAY,CAAC,mBAAmB,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QAEvE,IAAI,WAAW,CAAC,wBAAwB,KAAK,SAAS,EAAE;YACtD,IAAI,WAAW,CAAC,wBAAwB,EAAE;gBACxC,cAAc,CAAC,UAAU,CAAC,WAAW,CAAC,uBAAuB,CAAC,EAAE,CAAC,CAAC;gBAElE,IAAI,WAAW,CAAC,SAAS,EAAE;oBACzB,cAAc,CAAC,UAAU,CAAC,WAAW,CAAC,4BAA4B,CAAC,EAAE,CAAC,CAAC;iBACxE;aACF;YACD,WAAW,CAAC,wBAAwB,GAAG,SAAS,CAAC;SAClD;IACH,CAAC;IAED,kDAAkD;IAC3C,MAAM,KAAK,qBAAqB;QACrC,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;;AAtEc,sBAAU,GAAG,WAAW,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\nimport { HitDetail, IModelApp, UserPreferencesAccess } from \"@itwin/core-frontend\";\r\nimport { MapLayersUiItemsProvider } from \"./ui/MapLayersUiItemsProvider\";\r\nimport { UiItemsManager } from \"@itwin/appui-abstract\";\r\nimport { BeEvent } from \"@itwin/core-bentley\";\r\nimport { FeatureInfoUiItemsProvider } from \"./ui/FeatureInfoUiItemsProvider\";\r\n\r\nexport type MapHitEvent = BeEvent<(hit: HitDetail) => void>;\r\nexport interface FeatureInfoOpts\r\n{\r\n // HitDetail Event whenever the map is clicked.\r\n // Typically the HitDetail object is provided by ElementLocateManager.doLocate.\r\n // Every time this event is raised, FeatureInfoWidget will attempt to retrieve data from MapLayerImageryProviders.\r\n onMapHit: MapHitEvent;\r\n}\r\n\r\n/** MapLayersUI is use when the package is used as a dependency to another app.\r\n * '''ts\r\n * await MapLayersUI.initialize(registerItemsProvider);\r\n * '''\r\n * @beta\r\n */\r\nexport class MapLayersUI {\r\n private static _defaultNs = \"mapLayers\";\r\n private static _mapLayersItemsProvider: MapLayersUiItemsProvider;\r\n private static _mapFeatureInfoItemsProvider: FeatureInfoUiItemsProvider;\r\n private static _uiItemsProvider: MapLayersUiItemsProvider;\r\n private static _itemsProviderRegistered?: boolean;\r\n\r\n private static _iTwinConfig?: UserPreferencesAccess;\r\n private static _onMapHit?: MapHitEvent;\r\n\r\n public static get iTwinConfig(): UserPreferencesAccess | undefined { return this._iTwinConfig; }\r\n public static get onMapHit(): MapHitEvent | undefined { return this._onMapHit; }\r\n\r\n /** Used to initialize the Map Layers.\r\n *\r\n * If `registerItemsProvider` is true, the UiItemsProvider will automatically insert the UI items into the host applications UI.\r\n * If it is false, explicitly add widget definition to a specific FrontStage definition using the following syntax.\r\n *\r\n * ```tsx\r\n * <Widget id={MapLayersWidgetControl.id} label={MapLayersWidgetControl.label} control={MapLayersWidgetControl}\r\n * iconSpec={MapLayersWidgetControl.iconSpec} />,\r\n * ```\r\n *\r\n * If an iTwinConfig is provided, it will be used to load the MapLayerSources that are stored.\r\n */\r\n public static async initialize(\r\n registerItemsProvider = true,\r\n iTwinConfig?: UserPreferencesAccess,\r\n fInfoOps?: FeatureInfoOpts\r\n ): Promise<void> {\r\n\r\n MapLayersUI._iTwinConfig = iTwinConfig;\r\n MapLayersUI._onMapHit = fInfoOps?.onMapHit;\r\n\r\n // register namespace containing localized strings for this package\r\n await IModelApp.localization.registerNamespace(this.localizationNamespace);\r\n\r\n // _uiItemsProvider always created to provide access to localization.\r\n MapLayersUI._mapLayersItemsProvider = new MapLayersUiItemsProvider(IModelApp.localization);\r\n MapLayersUI._mapFeatureInfoItemsProvider = new FeatureInfoUiItemsProvider(IModelApp.localization);\r\n if (registerItemsProvider) {\r\n UiItemsManager.register(MapLayersUI._mapLayersItemsProvider);\r\n\r\n // Register the FeatureInfo widget only if MapHit was provided.\r\n if (MapLayersUI._onMapHit) {\r\n UiItemsManager.register(MapLayersUI._mapFeatureInfoItemsProvider);\r\n }\r\n }\r\n\r\n MapLayersUI._itemsProviderRegistered = registerItemsProvider;\r\n }\r\n\r\n /** Unregisters internationalization service namespace and UiItemManager / control */\r\n public static terminate() {\r\n IModelApp.localization.unregisterNamespace(this.localizationNamespace);\r\n\r\n if (MapLayersUI._itemsProviderRegistered !== undefined) {\r\n if (MapLayersUI._itemsProviderRegistered) {\r\n UiItemsManager.unregister(MapLayersUI._mapLayersItemsProvider.id);\r\n\r\n if (MapLayersUI._onMapHit) {\r\n UiItemsManager.unregister(MapLayersUI._mapFeatureInfoItemsProvider.id);\r\n }\r\n }\r\n MapLayersUI._itemsProviderRegistered = undefined;\r\n }\r\n }\r\n\r\n /** The internationalization service namespace. */\r\n public static get localizationNamespace(): string {\r\n return this._defaultNs;\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"mapLayers.js","sourceRoot":"","sources":["../../src/mapLayers.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,SAAS,EAAyB,MAAM,sBAAsB,CAAC;AACxE,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAE,cAAc,EAAmB,MAAM,uBAAuB,CAAC;AACxE,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAW7E;;;;;GAKG;AACH,MAAM,OAAO,WAAW;IAOf,MAAM,KAAK,WAAW;QAC3B,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED,wCAAwC;IACjC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,MAAwB;;QACrD,mEAAmE;QACnE,WAAW,CAAC,YAAY,GAAG,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,YAAY,mCAAI,SAAS,CAAC,YAAY,CAAC;QAC1E,MAAM,WAAW,CAAC,YAAY,CAAC,iBAAiB,CAC9C,WAAW,CAAC,qBAAqB,CAClC,CAAC;QAEF,WAAW,CAAC,YAAY,GAAG,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,WAAW,CAAC;QAE/C,WAAW,CAAC,iBAAiB,CAAC,IAAI,CAChC,IAAI,wBAAwB,CAAC,EAAE,GAAG,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,eAAe,EAAE,CAAC,CAC7D,CAAC;QAEF,+DAA+D;QAC/D,IAAI,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,eAAe,0CAAE,QAAQ,EAAE;YACrC,WAAW,CAAC,iBAAiB,CAAC,IAAI,CAChC,IAAI,0BAA0B,CAAC,EAAE,GAAG,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,eAAe,EAAE,CAAC,CAC/D,CAAC;SACH;QAED,WAAW,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE;YACnD,cAAc,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,4EAA4E;IACrE,MAAM,CAAC,SAAS;QACrB,SAAS,CAAC,YAAY,CAAC,mBAAmB,CAAC,WAAW,CAAC,qBAAqB,CAAC,CAAC;QAE9E,WAAW,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE;YACnD,cAAc,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;IACL,CAAC;IAED,kDAAkD;IAC3C,MAAM,KAAK,qBAAqB;QACrC,OAAO,WAAW,CAAC,UAAU,CAAC;IAChC,CAAC;;AAhDc,sBAAU,GAAG,WAAW,CAAC;AAEzB,6BAAiB,GAAsB,EAAE,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\nimport { Localization } from \"@itwin/core-common\";\r\nimport { IModelApp, UserPreferencesAccess } from \"@itwin/core-frontend\";\r\nimport { MapLayersUiItemsProvider } from \"./ui/MapLayersUiItemsProvider\";\r\nimport { UiItemsManager, UiItemsProvider } from \"@itwin/appui-abstract\";\r\nimport { FeatureInfoUiItemsProvider } from \"./ui/FeatureInfoUiItemsProvider\";\r\nimport { MapFeatureInfoOptions, MapLayerOptions } from \"./ui/Interfaces\";\r\n\r\nexport interface MapLayersConfig {\r\n localization?: Localization;\r\n /** If an iTwinConfig is provided, it will be used to load the MapLayerSources that are stored. */\r\n iTwinConfig?: UserPreferencesAccess;\r\n mapLayerOptions?: MapLayerOptions;\r\n featureInfoOpts?: MapFeatureInfoOptions;\r\n}\r\n\r\n/** MapLayersUI is use when the package is used as a dependency to another app.\r\n * '''ts\r\n * await MapLayersUI.initialize({...MapLayersInitProps});\r\n * '''\r\n * @beta\r\n */\r\nexport class MapLayersUI {\r\n private static _defaultNs = \"mapLayers\";\r\n public static localization: Localization;\r\n private static _uiItemsProviders: UiItemsProvider[] = [];\r\n\r\n private static _iTwinConfig?: UserPreferencesAccess;\r\n\r\n public static get iTwinConfig(): UserPreferencesAccess | undefined {\r\n return this._iTwinConfig;\r\n }\r\n\r\n /** Used to initialize the Map Layers */\r\n public static async initialize(config?: MapLayersConfig): Promise<void> {\r\n // register namespace containing localized strings for this package\r\n MapLayersUI.localization = config?.localization ?? IModelApp.localization;\r\n await MapLayersUI.localization.registerNamespace(\r\n MapLayersUI.localizationNamespace\r\n );\r\n\r\n MapLayersUI._iTwinConfig = config?.iTwinConfig;\r\n\r\n MapLayersUI._uiItemsProviders.push(\r\n new MapLayersUiItemsProvider({ ...config?.mapLayerOptions })\r\n );\r\n\r\n // Register the FeatureInfo widget only if MapHit was provided.\r\n if (config?.featureInfoOpts?.onMapHit) {\r\n MapLayersUI._uiItemsProviders.push(\r\n new FeatureInfoUiItemsProvider({ ...config?.featureInfoOpts })\r\n );\r\n }\r\n\r\n MapLayersUI._uiItemsProviders.forEach((uiProvider) => {\r\n UiItemsManager.register(uiProvider);\r\n });\r\n }\r\n\r\n /** Unregisters internationalization service namespace and UiItemManager */\r\n public static terminate() {\r\n IModelApp.localization.unregisterNamespace(MapLayersUI.localizationNamespace);\r\n\r\n MapLayersUI._uiItemsProviders.forEach((uiProvider) => {\r\n UiItemsManager.unregister(uiProvider.id);\r\n });\r\n }\r\n\r\n /** The internationalization service namespace. */\r\n public static get localizationNamespace(): string {\r\n return MapLayersUI._defaultNs;\r\n }\r\n}\r\n"]}
@@ -1,17 +1,11 @@
1
- import { AbstractWidgetProps, StagePanelLocation, StagePanelSection, UiItemsProvider } from "@itwin/appui-abstract";
2
- import { Localization } from "@itwin/core-common";
3
- import { ConfigurableCreateInfo, WidgetControl } from "@itwin/appui-react";
1
+ import { AbstractWidgetProps, AbstractZoneLocation, CommonToolbarItem, StagePanelLocation, StagePanelSection, ToolbarOrientation, ToolbarUsage, UiItemsProvider } from "@itwin/appui-abstract";
4
2
  import { MapFeatureInfoOptions } from "./Interfaces";
5
3
  export declare class FeatureInfoUiItemsProvider implements UiItemsProvider {
4
+ private _featureInfoOpts;
6
5
  readonly id = "FeatureInfoUiItemsProvider";
7
- static localization: Localization;
8
- constructor(localization: Localization);
9
- provideWidgets(_stageId: string, stageUsage: string, location: StagePanelLocation, section: StagePanelSection | undefined): ReadonlyArray<AbstractWidgetProps>;
10
- }
11
- export declare class FeatureInfoWidgetControl extends WidgetControl {
12
- static id: string;
13
- static iconSpec: string;
14
- static label: string;
15
- constructor(info: ConfigurableCreateInfo, featureInfoOpts: MapFeatureInfoOptions);
6
+ static readonly widgetId = "map-layers:mapFeatureInfoWidget";
7
+ constructor(_featureInfoOpts: MapFeatureInfoOptions);
8
+ provideToolbarButtonItems(_stageId: string, stageUsage: string, toolbarUsage: ToolbarUsage, toolbarOrientation: ToolbarOrientation): CommonToolbarItem[];
9
+ provideWidgets(_stageId: string, stageUsage: string, location: StagePanelLocation, section?: StagePanelSection, zoneLocation?: AbstractZoneLocation): ReadonlyArray<AbstractWidgetProps>;
16
10
  }
17
11
  //# sourceMappingURL=FeatureInfoUiItemsProvider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"FeatureInfoUiItemsProvider.d.ts","sourceRoot":"","sources":["../../../src/ui/FeatureInfoUiItemsProvider.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,iBAAiB,EAAc,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAChI,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,sBAAsB,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAE3E,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAGrD,qBAAc,0BAA2B,YAAW,eAAe;IACjE,SAAgB,EAAE,gCAAgC;IAClD,OAAc,YAAY,EAAE,YAAY,CAAC;gBAEtB,YAAY,EAAE,YAAY;IAItC,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,kBAAkB,EAAE,OAAO,EAAE,iBAAiB,GAAG,SAAS,GAAG,aAAa,CAAC,mBAAmB,CAAC;CActK;AAED,qBAAa,wBAAyB,SAAQ,aAAa;IACzD,OAAc,EAAE,SAAuB;IACvC,OAAc,QAAQ,SAAc;IACpC,OAAc,KAAK,SAA8B;gBACrC,IAAI,EAAE,sBAAsB,EAAE,eAAe,EAAE,qBAAqB;CAKjF"}
1
+ {"version":3,"file":"FeatureInfoUiItemsProvider.d.ts","sourceRoot":"","sources":["../../../src/ui/FeatureInfoUiItemsProvider.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,iBAAiB,EAAc,kBAAkB,EAAE,YAAY,EAAE,eAAe,EAAe,MAAM,uBAAuB,CAAC;AAGxN,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAIrD,qBAAa,0BAA2B,YAAW,eAAe;IAI7C,OAAO,CAAC,gBAAgB;IAH3C,SAAgB,EAAE,gCAAgC;IAClD,gBAAuB,QAAQ,qCAAqC;gBAEzC,gBAAgB,EAAE,qBAAqB;IAE3D,yBAAyB,CAC9B,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,YAAY,EAC1B,kBAAkB,EAAE,kBAAkB,GACrC,iBAAiB,EAAE;IAiBf,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,kBAAkB,EAAE,OAAO,CAAC,EAAE,iBAAiB,EAAE,YAAY,CAAC,EAAE,oBAAoB,GAAG,aAAa,CAAC,mBAAmB,CAAC;CAiBhM"}
@@ -3,35 +3,45 @@
3
3
  * See LICENSE.md in the project root for license terms and full copyright notice.
4
4
  *--------------------------------------------------------------------------------------------*/
5
5
  import * as React from "react";
6
- import { StagePanelLocation, StagePanelSection, StageUsage } from "@itwin/appui-abstract";
7
- import { WidgetControl } from "@itwin/appui-react";
8
- import { IModelApp } from "@itwin/core-frontend";
6
+ import { AbstractZoneLocation, StagePanelLocation, StagePanelSection, StageUsage, ToolbarOrientation, ToolbarUsage, WidgetState } from "@itwin/appui-abstract";
7
+ import { ToolbarHelper, UiFramework } from "@itwin/appui-react";
9
8
  import { MapFeatureInfoWidget } from "./widget/FeatureInfoWidget";
9
+ import { MapLayersUI } from "../mapLayers";
10
+ import { DefaultMapFeatureInfoTool, getDefaultMapFeatureInfoToolItemDef } from "./MapFeatureInfoTool";
10
11
  export class FeatureInfoUiItemsProvider {
11
- constructor(localization) {
12
+ constructor(_featureInfoOpts) {
13
+ this._featureInfoOpts = _featureInfoOpts;
12
14
  this.id = "FeatureInfoUiItemsProvider";
13
- FeatureInfoUiItemsProvider.localization = localization;
14
15
  }
15
- provideWidgets(_stageId, stageUsage, location, section) {
16
+ provideToolbarButtonItems(_stageId, stageUsage, toolbarUsage, toolbarOrientation) {
17
+ var _a;
18
+ if (!((_a = this._featureInfoOpts) === null || _a === void 0 ? void 0 : _a.disableDefaultFeatureInfoTool) &&
19
+ stageUsage === StageUsage.General &&
20
+ toolbarUsage === ToolbarUsage.ContentManipulation &&
21
+ toolbarOrientation === ToolbarOrientation.Vertical) {
22
+ DefaultMapFeatureInfoTool.register(MapLayersUI.localizationNamespace);
23
+ return [
24
+ ToolbarHelper.createToolbarItemFromItemDef(60, getDefaultMapFeatureInfoToolItemDef()),
25
+ ];
26
+ }
27
+ return [];
28
+ }
29
+ // eslint-disable-next-line deprecation/deprecation
30
+ provideWidgets(_stageId, stageUsage, location, section, zoneLocation) {
16
31
  const widgets = [];
17
- if (stageUsage === StageUsage.General && location === StagePanelLocation.Right && section === StagePanelSection.End) {
32
+ // eslint-disable-next-line deprecation/deprecation
33
+ if ((undefined === section && stageUsage === StageUsage.General && zoneLocation === AbstractZoneLocation.BottomRight) ||
34
+ (stageUsage === StageUsage.General && location === StagePanelLocation.Right && section === StagePanelSection.End && "1" !== UiFramework.uiVersion)) {
18
35
  widgets.push({
19
- id: "map-layers:mapFeatureInfoWidget",
20
- label: IModelApp.localization.getLocalizedString("mapLayers:FeatureInfoWidget.Label"),
36
+ id: FeatureInfoUiItemsProvider.widgetId,
37
+ label: MapLayersUI.localization.getLocalizedString("mapLayers:FeatureInfoWidget.Label"),
21
38
  icon: "icon-map",
22
- getWidgetContent: () => React.createElement(MapFeatureInfoWidget, { featureInfoOpts: { showLoadProgressAnimation: true } }), // eslint-disable-line react/display-name
39
+ getWidgetContent: () => React.createElement(MapFeatureInfoWidget, { featureInfoOpts: this._featureInfoOpts }),
40
+ defaultState: WidgetState.Closed,
23
41
  });
24
42
  }
25
43
  return widgets;
26
44
  }
27
45
  }
28
- export class FeatureInfoWidgetControl extends WidgetControl {
29
- constructor(info, featureInfoOpts) {
30
- super(info, featureInfoOpts);
31
- super.reactNode = React.createElement(MapFeatureInfoWidget, { featureInfoOpts: featureInfoOpts });
32
- }
33
- }
34
- FeatureInfoWidgetControl.id = "FeatureInfoWidget";
35
- FeatureInfoWidgetControl.iconSpec = "icon-map";
36
- FeatureInfoWidgetControl.label = "FeatureInfoWidgetControl";
46
+ FeatureInfoUiItemsProvider.widgetId = "map-layers:mapFeatureInfoWidget";
37
47
  //# sourceMappingURL=FeatureInfoUiItemsProvider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"FeatureInfoUiItemsProvider.js","sourceRoot":"","sources":["../../../src/ui/FeatureInfoUiItemsProvider.tsx"],"names":[],"mappings":"AAAA;;;+FAG+F;AAE/F,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAuB,kBAAkB,EAAE,iBAAiB,EAAE,UAAU,EAAmB,MAAM,uBAAuB,CAAC;AAEhI,OAAO,EAA0B,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAC3E,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAElE,MAAM,OAAQ,0BAA0B;IAItC,YAAmB,YAA0B;QAH7B,OAAE,GAAG,4BAA4B,CAAC;QAIhD,0BAA0B,CAAC,YAAY,GAAG,YAAY,CAAC;IACzD,CAAC;IAEM,cAAc,CAAC,QAAgB,EAAE,UAAkB,EAAE,QAA4B,EAAE,OAAsC;QAC9H,MAAM,OAAO,GAA0B,EAAE,CAAC;QAE1C,IAAI,UAAU,KAAK,UAAU,CAAC,OAAO,IAAI,QAAQ,KAAK,kBAAkB,CAAC,KAAK,IAAI,OAAO,KAAK,iBAAiB,CAAC,GAAG,EAAE;YACnH,OAAO,CAAC,IAAI,CAAC;gBACX,EAAE,EAAE,iCAAiC;gBACrC,KAAK,EAAE,SAAS,CAAC,YAAY,CAAC,kBAAkB,CAAC,mCAAmC,CAAC;gBACrF,IAAI,EAAE,UAAU;gBAChB,gBAAgB,EAAE,GAAG,EAAE,CAAC,oBAAC,oBAAoB,IAAC,eAAe,EAAE,EAAC,yBAAyB,EAAE,IAAI,EAAC,GAAG,EAAE,yCAAyC;aAC/I,CAAC,CAAC;SACJ;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;CACF;AAED,MAAM,OAAO,wBAAyB,SAAQ,aAAa;IAIzD,YAAY,IAA4B,EAAE,eAAsC;QAC9E,KAAK,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;QAE7B,KAAK,CAAC,SAAS,GAAG,oBAAC,oBAAoB,IAAC,eAAe,EAAE,eAAe,GAAG,CAAC;IAC9E,CAAC;;AAPa,2BAAE,GAAG,mBAAmB,CAAC;AACzB,iCAAQ,GAAG,UAAU,CAAC;AACtB,8BAAK,GAAG,0BAA0B,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n\r\nimport * as React from \"react\";\r\nimport { AbstractWidgetProps, StagePanelLocation, StagePanelSection, StageUsage, UiItemsProvider } from \"@itwin/appui-abstract\";\r\nimport { Localization } from \"@itwin/core-common\";\r\nimport { ConfigurableCreateInfo, WidgetControl } from \"@itwin/appui-react\";\r\nimport { IModelApp } from \"@itwin/core-frontend\";\r\nimport { MapFeatureInfoOptions } from \"./Interfaces\";\r\nimport { MapFeatureInfoWidget } from \"./widget/FeatureInfoWidget\";\r\n\r\nexport class FeatureInfoUiItemsProvider implements UiItemsProvider {\r\n public readonly id = \"FeatureInfoUiItemsProvider\";\r\n public static localization: Localization;\r\n\r\n public constructor(localization: Localization) {\r\n FeatureInfoUiItemsProvider.localization = localization;\r\n }\r\n\r\n public provideWidgets(_stageId: string, stageUsage: string, location: StagePanelLocation, section: StagePanelSection | undefined): ReadonlyArray<AbstractWidgetProps> {\r\n const widgets: AbstractWidgetProps[] = [];\r\n\r\n if (stageUsage === StageUsage.General && location === StagePanelLocation.Right && section === StagePanelSection.End) {\r\n widgets.push({\r\n id: \"map-layers:mapFeatureInfoWidget\",\r\n label: IModelApp.localization.getLocalizedString(\"mapLayers:FeatureInfoWidget.Label\"),\r\n icon: \"icon-map\",\r\n getWidgetContent: () => <MapFeatureInfoWidget featureInfoOpts={{showLoadProgressAnimation: true}}/>, // eslint-disable-line react/display-name\r\n });\r\n }\r\n\r\n return widgets;\r\n }\r\n}\r\n\r\nexport class FeatureInfoWidgetControl extends WidgetControl {\r\n public static id = \"FeatureInfoWidget\";\r\n public static iconSpec = \"icon-map\";\r\n public static label = \"FeatureInfoWidgetControl\";\r\n constructor(info: ConfigurableCreateInfo, featureInfoOpts: MapFeatureInfoOptions) {\r\n super(info, featureInfoOpts);\r\n\r\n super.reactNode = <MapFeatureInfoWidget featureInfoOpts={featureInfoOpts}/>;\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"FeatureInfoUiItemsProvider.js","sourceRoot":"","sources":["../../../src/ui/FeatureInfoUiItemsProvider.tsx"],"names":[],"mappings":"AAAA;;;+FAG+F;AAE/F,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAuB,oBAAoB,EAAqB,kBAAkB,EAAE,iBAAiB,EAAE,UAAU,EAAE,kBAAkB,EAAE,YAAY,EAAmB,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACxN,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAElE,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,yBAAyB,EAAE,mCAAmC,EAAE,MAAM,sBAAsB,CAAC;AAEtG,MAAM,OAAO,0BAA0B;IAIrC,YAA2B,gBAAuC;QAAvC,qBAAgB,GAAhB,gBAAgB,CAAuB;QAHlD,OAAE,GAAG,4BAA4B,CAAC;IAGoB,CAAC;IAEhE,yBAAyB,CAC9B,QAAgB,EAChB,UAAkB,EAClB,YAA0B,EAC1B,kBAAsC;;QAEtC,IACE,CAAC,CAAA,MAAA,IAAI,CAAC,gBAAgB,0CAAE,6BAA6B,CAAA;YACrD,UAAU,KAAK,UAAU,CAAC,OAAO;YACjC,YAAY,KAAK,YAAY,CAAC,mBAAmB;YACjD,kBAAkB,KAAK,kBAAkB,CAAC,QAAQ,EAClD;YACA,yBAAyB,CAAC,QAAQ,CAAC,WAAW,CAAC,qBAAqB,CAAC,CAAC;YACtE,OAAO;gBACL,aAAa,CAAC,4BAA4B,CAAC,EAAE,EAAE,mCAAmC,EAAE,CAAC;aACtF,CAAC;SACH;QAED,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,mDAAmD;IAC5C,cAAc,CAAC,QAAgB,EAAE,UAAkB,EAAE,QAA4B,EAAE,OAA2B,EAAE,YAAmC;QACxJ,MAAM,OAAO,GAA0B,EAAE,CAAC;QAE1C,mDAAmD;QACnD,IAAI,CAAC,SAAS,KAAK,OAAO,IAAI,UAAU,KAAK,UAAU,CAAC,OAAO,IAAI,YAAY,KAAK,oBAAoB,CAAC,WAAW,CAAC;YACnH,CAAC,UAAU,KAAK,UAAU,CAAC,OAAO,IAAI,QAAQ,KAAK,kBAAkB,CAAC,KAAK,IAAI,OAAO,KAAK,iBAAiB,CAAC,GAAG,IAAI,GAAG,KAAK,WAAW,CAAC,SAAS,CAAC,EAAE;YACpJ,OAAO,CAAC,IAAI,CAAC;gBACX,EAAE,EAAE,0BAA0B,CAAC,QAAQ;gBACvC,KAAK,EAAE,WAAW,CAAC,YAAY,CAAC,kBAAkB,CAAC,mCAAmC,CAAC;gBACvF,IAAI,EAAE,UAAU;gBAChB,gBAAgB,EAAE,GAAG,EAAE,CAAC,oBAAC,oBAAoB,IAAC,eAAe,EAAE,IAAI,CAAC,gBAAgB,GAAI;gBACxF,YAAY,EAAE,WAAW,CAAC,MAAM;aACjC,CAAC,CAAC;SACJ;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;;AA1CsB,mCAAQ,GAAG,iCAAiC,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n\r\nimport * as React from \"react\";\r\nimport { AbstractWidgetProps, AbstractZoneLocation, CommonToolbarItem, StagePanelLocation, StagePanelSection, StageUsage, ToolbarOrientation, ToolbarUsage, UiItemsProvider, WidgetState } from \"@itwin/appui-abstract\";\r\nimport { ToolbarHelper, UiFramework } from \"@itwin/appui-react\";\r\nimport { MapFeatureInfoWidget } from \"./widget/FeatureInfoWidget\";\r\nimport { MapFeatureInfoOptions } from \"./Interfaces\";\r\nimport { MapLayersUI } from \"../mapLayers\";\r\nimport { DefaultMapFeatureInfoTool, getDefaultMapFeatureInfoToolItemDef } from \"./MapFeatureInfoTool\";\r\n\r\nexport class FeatureInfoUiItemsProvider implements UiItemsProvider {\r\n public readonly id = \"FeatureInfoUiItemsProvider\";\r\n public static readonly widgetId = \"map-layers:mapFeatureInfoWidget\";\r\n\r\n public constructor(private _featureInfoOpts: MapFeatureInfoOptions) { }\r\n\r\n public provideToolbarButtonItems(\r\n _stageId: string,\r\n stageUsage: string,\r\n toolbarUsage: ToolbarUsage,\r\n toolbarOrientation: ToolbarOrientation,\r\n ): CommonToolbarItem[] {\r\n if (\r\n !this._featureInfoOpts?.disableDefaultFeatureInfoTool &&\r\n stageUsage === StageUsage.General &&\r\n toolbarUsage === ToolbarUsage.ContentManipulation &&\r\n toolbarOrientation === ToolbarOrientation.Vertical\r\n ) {\r\n DefaultMapFeatureInfoTool.register(MapLayersUI.localizationNamespace);\r\n return [\r\n ToolbarHelper.createToolbarItemFromItemDef(60, getDefaultMapFeatureInfoToolItemDef()),\r\n ];\r\n }\r\n\r\n return [];\r\n }\r\n\r\n // eslint-disable-next-line deprecation/deprecation\r\n public provideWidgets(_stageId: string, stageUsage: string, location: StagePanelLocation, section?: StagePanelSection, zoneLocation?: AbstractZoneLocation): ReadonlyArray<AbstractWidgetProps> {\r\n const widgets: AbstractWidgetProps[] = [];\r\n\r\n // eslint-disable-next-line deprecation/deprecation\r\n if ((undefined === section && stageUsage === StageUsage.General && zoneLocation === AbstractZoneLocation.BottomRight) ||\r\n (stageUsage === StageUsage.General && location === StagePanelLocation.Right && section === StagePanelSection.End && \"1\" !== UiFramework.uiVersion)) {\r\n widgets.push({\r\n id: FeatureInfoUiItemsProvider.widgetId,\r\n label: MapLayersUI.localization.getLocalizedString(\"mapLayers:FeatureInfoWidget.Label\"),\r\n icon: \"icon-map\",\r\n getWidgetContent: () => <MapFeatureInfoWidget featureInfoOpts={this._featureInfoOpts} />, // eslint-disable-line react/display-name\r\n defaultState: WidgetState.Closed,\r\n });\r\n }\r\n\r\n return widgets;\r\n }\r\n}\r\n"]}
@@ -1,5 +1,6 @@
1
+ import { BeEvent } from "@itwin/core-bentley";
1
2
  import { MapSubLayerProps } from "@itwin/core-common";
2
- import { MapLayerImageryProvider } from "@itwin/core-frontend";
3
+ import { HitDetail, MapLayerImageryProvider } from "@itwin/core-frontend";
3
4
  export interface StyleMapLayerSettings {
4
5
  /** Name */
5
6
  name: string;
@@ -32,7 +33,15 @@ export interface MapLayerOptions {
32
33
  export interface MapFeatureInfoPropertyGridOptions {
33
34
  isPropertySelectionEnabled?: boolean;
34
35
  }
36
+ export declare type MapHitEvent = BeEvent<(hit: HitDetail) => void>;
35
37
  export interface MapFeatureInfoOptions {
38
+ /**
39
+ * HitDetail Event whenever the map is clicked.
40
+ * Typically the HitDetail object is provided by ElementLocateManager.doLocate.
41
+ * Every time this event is raised, FeatureInfoWidget will attempt to retrieve data from MapLayerImageryProviders.
42
+ */
43
+ onMapHit: MapHitEvent;
44
+ disableDefaultFeatureInfoTool?: boolean;
36
45
  showLoadProgressAnimation?: boolean;
37
46
  propertyGridOptions?: MapFeatureInfoPropertyGridOptions;
38
47
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Interfaces.d.ts","sourceRoot":"","sources":["../../../src/ui/Interfaces.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAE/D,MAAM,WAAW,qBAAqB;IACpC,WAAW;IACX,IAAI,EAAE,MAAM,CAAC;IACb,oFAAoF;IACpF,MAAM,EAAE,MAAM,CAAC;IACf,mCAAmC;IACnC,OAAO,EAAE,OAAO,CAAC;IACjB,2MAA2M;IAC3M,YAAY,EAAE,MAAM,CAAC;IACrB,6BAA6B;IAC7B,qBAAqB,EAAE,OAAO,CAAC;IAC/B,qCAAqC;IACrC,SAAS,EAAE,OAAO,CAAC;IACnB,8BAA8B;IAC9B,SAAS,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC/B,iCAAiC;IACjC,aAAa,EAAE,OAAO,CAAC;IACvB,uEAAuE;IACvE,QAAQ,CAAC,EAAE,uBAAuB,CAAC;CACpC;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,wBAAwB,EAAE,OAAO,CAAC;CAC5C;AAED,MAAM,WAAW,eAAe;IAC9B,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,0BAA0B,CAAC,EAAE,OAAO,CAAC;IACrC,cAAc,CAAC,EAAE,eAAe,CAAC;CAClC;AAED,MAAM,WAAW,iCAAiC;IAChD,0BAA0B,CAAC,EAAE,OAAO,CAAC;CACtC;AAED,MAAM,WAAW,qBAAqB;IACpC,yBAAyB,CAAC,EAAE,OAAO,CAAC;IACpC,mBAAmB,CAAC,EAAE,iCAAiC,CAAC;CACzD"}
1
+ {"version":3,"file":"Interfaces.d.ts","sourceRoot":"","sources":["../../../src/ui/Interfaces.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAE1E,MAAM,WAAW,qBAAqB;IACpC,WAAW;IACX,IAAI,EAAE,MAAM,CAAC;IACb,oFAAoF;IACpF,MAAM,EAAE,MAAM,CAAC;IACf,mCAAmC;IACnC,OAAO,EAAE,OAAO,CAAC;IACjB,2MAA2M;IAC3M,YAAY,EAAE,MAAM,CAAC;IACrB,6BAA6B;IAC7B,qBAAqB,EAAE,OAAO,CAAC;IAC/B,qCAAqC;IACrC,SAAS,EAAE,OAAO,CAAC;IACnB,8BAA8B;IAC9B,SAAS,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC/B,iCAAiC;IACjC,aAAa,EAAE,OAAO,CAAC;IACvB,uEAAuE;IACvE,QAAQ,CAAC,EAAE,uBAAuB,CAAC;CACpC;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,wBAAwB,EAAE,OAAO,CAAC;CAC5C;AAED,MAAM,WAAW,eAAe;IAC9B,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,0BAA0B,CAAC,EAAE,OAAO,CAAC;IACrC,cAAc,CAAC,EAAE,eAAe,CAAC;CAClC;AAED,MAAM,WAAW,iCAAiC;IAChD,0BAA0B,CAAC,EAAE,OAAO,CAAC;CACtC;AAED,oBAAY,WAAW,GAAG,OAAO,CAAC,CAAC,GAAG,EAAE,SAAS,KAAK,IAAI,CAAC,CAAC;AAE5D,MAAM,WAAW,qBAAqB;IACpC;;;;OAIG;IACH,QAAQ,EAAE,WAAW,CAAC;IACtB,6BAA6B,CAAC,EAAE,OAAO,CAAC;IACxC,yBAAyB,CAAC,EAAE,OAAO,CAAC;IACpC,mBAAmB,CAAC,EAAE,iCAAiC,CAAC;CACzD"}
@@ -1 +1 @@
1
- {"version":3,"file":"Interfaces.js","sourceRoot":"","sources":["../../../src/ui/Interfaces.ts"],"names":[],"mappings":"","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\nimport { MapSubLayerProps } from \"@itwin/core-common\";\r\nimport { MapLayerImageryProvider } from \"@itwin/core-frontend\";\r\n\r\nexport interface StyleMapLayerSettings {\r\n /** Name */\r\n name: string;\r\n /** source (i.URL for ImageMapLayerSettings or modelId for ModelMapLayerSettings) */\r\n source: string;\r\n /** Controls visibility of layer */\r\n visible: boolean;\r\n /** A transparency value from 0.0 (fully opaque) to 1.0 (fully transparent) to apply to map graphics when drawing, or false to indicate the transparency should not be overridden. Default value: false. */\r\n transparency: number;\r\n /** Transparent background */\r\n transparentBackground: boolean;\r\n /** set map as underlay or overlay */\r\n isOverlay: boolean;\r\n /** Available map sub-layer */\r\n subLayers?: MapSubLayerProps[];\r\n /** sub-layer panel displayed. */\r\n showSubLayers: boolean;\r\n /** Some format can publish only a single layer at a time (i.e WMTS) */\r\n provider?: MapLayerImageryProvider;\r\n}\r\n\r\nexport interface MapTypesOptions {\r\n readonly supportTileUrl: boolean;\r\n readonly supportWmsAuthentication: boolean;\r\n}\r\n\r\nexport interface MapLayerOptions {\r\n hideExternalMapLayers?: boolean;\r\n fetchPublicMapLayerSources?: boolean;\r\n mapTypeOptions?: MapTypesOptions;\r\n}\r\n\r\nexport interface MapFeatureInfoPropertyGridOptions {\r\n isPropertySelectionEnabled?: boolean;\r\n}\r\n\r\nexport interface MapFeatureInfoOptions {\r\n showLoadProgressAnimation?: boolean;\r\n propertyGridOptions?: MapFeatureInfoPropertyGridOptions;\r\n}\r\n"]}
1
+ {"version":3,"file":"Interfaces.js","sourceRoot":"","sources":["../../../src/ui/Interfaces.ts"],"names":[],"mappings":"","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\nimport { BeEvent } from \"@itwin/core-bentley\";\r\nimport { MapSubLayerProps } from \"@itwin/core-common\";\r\nimport { HitDetail, MapLayerImageryProvider } from \"@itwin/core-frontend\";\r\n\r\nexport interface StyleMapLayerSettings {\r\n /** Name */\r\n name: string;\r\n /** source (i.URL for ImageMapLayerSettings or modelId for ModelMapLayerSettings) */\r\n source: string;\r\n /** Controls visibility of layer */\r\n visible: boolean;\r\n /** A transparency value from 0.0 (fully opaque) to 1.0 (fully transparent) to apply to map graphics when drawing, or false to indicate the transparency should not be overridden. Default value: false. */\r\n transparency: number;\r\n /** Transparent background */\r\n transparentBackground: boolean;\r\n /** set map as underlay or overlay */\r\n isOverlay: boolean;\r\n /** Available map sub-layer */\r\n subLayers?: MapSubLayerProps[];\r\n /** sub-layer panel displayed. */\r\n showSubLayers: boolean;\r\n /** Some format can publish only a single layer at a time (i.e WMTS) */\r\n provider?: MapLayerImageryProvider;\r\n}\r\n\r\nexport interface MapTypesOptions {\r\n readonly supportTileUrl: boolean;\r\n readonly supportWmsAuthentication: boolean;\r\n}\r\n\r\nexport interface MapLayerOptions {\r\n hideExternalMapLayers?: boolean;\r\n fetchPublicMapLayerSources?: boolean;\r\n mapTypeOptions?: MapTypesOptions;\r\n}\r\n\r\nexport interface MapFeatureInfoPropertyGridOptions {\r\n isPropertySelectionEnabled?: boolean;\r\n}\r\n\r\nexport type MapHitEvent = BeEvent<(hit: HitDetail) => void>;\r\n\r\nexport interface MapFeatureInfoOptions {\r\n /**\r\n * HitDetail Event whenever the map is clicked.\r\n * Typically the HitDetail object is provided by ElementLocateManager.doLocate.\r\n * Every time this event is raised, FeatureInfoWidget will attempt to retrieve data from MapLayerImageryProviders.\r\n */\r\n onMapHit: MapHitEvent;\r\n disableDefaultFeatureInfoTool?: boolean;\r\n showLoadProgressAnimation?: boolean;\r\n propertyGridOptions?: MapFeatureInfoPropertyGridOptions;\r\n}\r\n"]}
@@ -0,0 +1,14 @@
1
+ import { BeButtonEvent, EventHandled, HitDetail, PrimitiveTool } from "@itwin/core-frontend";
2
+ import { ToolItemDef } from "@itwin/appui-react";
3
+ import { BeEvent } from "@itwin/core-bentley";
4
+ export declare const getDefaultMapFeatureInfoToolItemDef: () => ToolItemDef;
5
+ export declare class DefaultMapFeatureInfoTool extends PrimitiveTool {
6
+ static readonly onMapHit: BeEvent<(hit: HitDetail) => void>;
7
+ static toolId: string;
8
+ static iconSpec: string;
9
+ requireWriteableTarget(): boolean;
10
+ onDataButtonDown(ev: BeButtonEvent): Promise<EventHandled>;
11
+ onResetButtonUp(_ev: BeButtonEvent): Promise<EventHandled>;
12
+ onRestartTool(): Promise<void>;
13
+ }
14
+ //# sourceMappingURL=MapFeatureInfoTool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MapFeatureInfoTool.d.ts","sourceRoot":"","sources":["../../../src/ui/MapFeatureInfoTool.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,aAAa,EACb,YAAY,EACZ,SAAS,EAGT,aAAa,EACd,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAqB,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACpE,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAG9C,eAAO,MAAM,mCAAmC,QAAO,WAOnD,CAAC;AAEL,qBAAa,yBAA0B,SAAQ,aAAa;IAC1D,gBAAuB,QAAQ,gBAAqB,SAAS,KAAK,IAAI,EAAI;IAC1E,OAAuB,MAAM,SAAwB;IACrD,OAAuB,QAAQ,SAAc;IAE7B,sBAAsB,IAAI,OAAO;IAI3B,gBAAgB,CACpC,EAAE,EAAE,aAAa,GAChB,OAAO,CAAC,YAAY,CAAC;IAsBF,eAAe,CACnC,GAAG,EAAE,aAAa,GACjB,OAAO,CAAC,YAAY,CAAC;IAMX,aAAa;CAI3B"}
@@ -0,0 +1,46 @@
1
+ /*---------------------------------------------------------------------------------------------
2
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
3
+ * See LICENSE.md in the project root for license terms and full copyright notice.
4
+ *--------------------------------------------------------------------------------------------*/
5
+ import { EventHandled, IModelApp, LocateResponse, PrimitiveTool, } from "@itwin/core-frontend";
6
+ import { WidgetState } from "@itwin/appui-abstract";
7
+ import { FrontstageManager, ToolItemDef } from "@itwin/appui-react";
8
+ import { BeEvent } from "@itwin/core-bentley";
9
+ import { FeatureInfoUiItemsProvider } from "./FeatureInfoUiItemsProvider";
10
+ export const getDefaultMapFeatureInfoToolItemDef = () => new ToolItemDef({
11
+ toolId: DefaultMapFeatureInfoTool.toolId,
12
+ iconSpec: DefaultMapFeatureInfoTool.iconSpec,
13
+ label: () => DefaultMapFeatureInfoTool.flyover,
14
+ description: () => DefaultMapFeatureInfoTool.description,
15
+ execute: async () => { await IModelApp.tools.run(DefaultMapFeatureInfoTool.toolId); },
16
+ });
17
+ export class DefaultMapFeatureInfoTool extends PrimitiveTool {
18
+ requireWriteableTarget() {
19
+ return false;
20
+ }
21
+ async onDataButtonDown(ev) {
22
+ const hit = await IModelApp.locateManager.doLocate(new LocateResponse(), true, ev.point, ev.viewport, ev.inputSource);
23
+ if (hit !== undefined) {
24
+ const widgetDef = FrontstageManager.findWidget(FeatureInfoUiItemsProvider.widgetId);
25
+ if (widgetDef && widgetDef.state !== WidgetState.Open)
26
+ widgetDef.setWidgetState(WidgetState.Open);
27
+ DefaultMapFeatureInfoTool.onMapHit.raiseEvent(hit);
28
+ return EventHandled.Yes;
29
+ }
30
+ return EventHandled.No;
31
+ }
32
+ async onResetButtonUp(_ev) {
33
+ /* Common reset behavior for primitive tools is calling onReinitialize to restart or exitTool to terminate. */
34
+ await this.onReinitialize();
35
+ return EventHandled.No;
36
+ }
37
+ async onRestartTool() {
38
+ const tool = new DefaultMapFeatureInfoTool();
39
+ if (!(await tool.run()))
40
+ return this.exitTool();
41
+ }
42
+ }
43
+ DefaultMapFeatureInfoTool.onMapHit = new BeEvent();
44
+ DefaultMapFeatureInfoTool.toolId = "MapFeatureInfoTool";
45
+ DefaultMapFeatureInfoTool.iconSpec = "icon-map";
46
+ //# sourceMappingURL=MapFeatureInfoTool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MapFeatureInfoTool.js","sourceRoot":"","sources":["../../../src/ui/MapFeatureInfoTool.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAE/F,OAAO,EAEL,YAAY,EAEZ,SAAS,EACT,cAAc,EACd,aAAa,GACd,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACpE,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAE1E,MAAM,CAAC,MAAM,mCAAmC,GAAG,GAAgB,EAAE,CACnE,IAAI,WAAW,CAAC;IACd,MAAM,EAAE,yBAAyB,CAAC,MAAM;IACxC,QAAQ,EAAE,yBAAyB,CAAC,QAAQ;IAC5C,KAAK,EAAE,GAAG,EAAE,CAAC,yBAAyB,CAAC,OAAO;IAC9C,WAAW,EAAE,GAAG,EAAE,CAAC,yBAAyB,CAAC,WAAW;IACxD,OAAO,EAAE,KAAK,IAAI,EAAE,GAAG,MAAM,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;CACtF,CAAC,CAAC;AAEL,MAAM,OAAO,yBAA0B,SAAQ,aAAa;IAK1C,sBAAsB;QACpC,OAAO,KAAK,CAAC;IACf,CAAC;IAEe,KAAK,CAAC,gBAAgB,CACpC,EAAiB;QAEjB,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC,aAAa,CAAC,QAAQ,CAChD,IAAI,cAAc,EAAE,EACpB,IAAI,EACJ,EAAE,CAAC,KAAK,EACR,EAAE,CAAC,QAAQ,EACX,EAAE,CAAC,WAAW,CACf,CAAC;QACF,IAAI,GAAG,KAAK,SAAS,EAAE;YACrB,MAAM,SAAS,GAAG,iBAAiB,CAAC,UAAU,CAC5C,0BAA0B,CAAC,QAAQ,CACpC,CAAC;YACF,IAAI,SAAS,IAAI,SAAS,CAAC,KAAK,KAAK,WAAW,CAAC,IAAI;gBACnD,SAAS,CAAC,cAAc,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YAE7C,yBAAyB,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YACnD,OAAO,YAAY,CAAC,GAAG,CAAC;SACzB;QAED,OAAO,YAAY,CAAC,EAAE,CAAC;IACzB,CAAC;IAEe,KAAK,CAAC,eAAe,CACnC,GAAkB;QAElB,8GAA8G;QAC9G,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAC5B,OAAO,YAAY,CAAC,EAAE,CAAC;IACzB,CAAC;IAEM,KAAK,CAAC,aAAa;QACxB,MAAM,IAAI,GAAG,IAAI,yBAAyB,EAAE,CAAC;QAC7C,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC;YAAE,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;IAClD,CAAC;;AA3CsB,kCAAQ,GAAG,IAAI,OAAO,EAA4B,CAAC;AACnD,gCAAM,GAAG,oBAAoB,CAAC;AAC9B,kCAAQ,GAAG,UAAU,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n\r\nimport {\r\n BeButtonEvent,\r\n EventHandled,\r\n HitDetail,\r\n IModelApp,\r\n LocateResponse,\r\n PrimitiveTool,\r\n} from \"@itwin/core-frontend\";\r\nimport { WidgetState } from \"@itwin/appui-abstract\";\r\nimport { FrontstageManager, ToolItemDef } from \"@itwin/appui-react\";\r\nimport { BeEvent } from \"@itwin/core-bentley\";\r\nimport { FeatureInfoUiItemsProvider } from \"./FeatureInfoUiItemsProvider\";\r\n\r\nexport const getDefaultMapFeatureInfoToolItemDef = (): ToolItemDef =>\r\n new ToolItemDef({\r\n toolId: DefaultMapFeatureInfoTool.toolId,\r\n iconSpec: DefaultMapFeatureInfoTool.iconSpec,\r\n label: () => DefaultMapFeatureInfoTool.flyover,\r\n description: () => DefaultMapFeatureInfoTool.description,\r\n execute: async () => { await IModelApp.tools.run(DefaultMapFeatureInfoTool.toolId); },\r\n });\r\n\r\nexport class DefaultMapFeatureInfoTool extends PrimitiveTool {\r\n public static readonly onMapHit = new BeEvent<(hit: HitDetail) => void>();\r\n public static override toolId = \"MapFeatureInfoTool\";\r\n public static override iconSpec = \"icon-map\";\r\n\r\n public override requireWriteableTarget(): boolean {\r\n return false;\r\n }\r\n\r\n public override async onDataButtonDown(\r\n ev: BeButtonEvent\r\n ): Promise<EventHandled> {\r\n const hit = await IModelApp.locateManager.doLocate(\r\n new LocateResponse(),\r\n true,\r\n ev.point,\r\n ev.viewport,\r\n ev.inputSource\r\n );\r\n if (hit !== undefined) {\r\n const widgetDef = FrontstageManager.findWidget(\r\n FeatureInfoUiItemsProvider.widgetId\r\n );\r\n if (widgetDef && widgetDef.state !== WidgetState.Open)\r\n widgetDef.setWidgetState(WidgetState.Open);\r\n\r\n DefaultMapFeatureInfoTool.onMapHit.raiseEvent(hit);\r\n return EventHandled.Yes;\r\n }\r\n\r\n return EventHandled.No;\r\n }\r\n\r\n public override async onResetButtonUp(\r\n _ev: BeButtonEvent\r\n ): Promise<EventHandled> {\r\n /* Common reset behavior for primitive tools is calling onReinitialize to restart or exitTool to terminate. */\r\n await this.onReinitialize();\r\n return EventHandled.No;\r\n }\r\n\r\n public async onRestartTool() {\r\n const tool = new DefaultMapFeatureInfoTool();\r\n if (!(await tool.run())) return this.exitTool();\r\n }\r\n}\r\n"]}
@@ -1,23 +1,9 @@
1
- import { AbstractWidgetProps, StagePanelLocation, StagePanelSection, UiItemsProvider } from "@itwin/appui-abstract";
2
- import { Localization } from "@itwin/core-common";
3
- import { ConfigurableCreateInfo, WidgetControl } from "@itwin/appui-react";
1
+ import { AbstractWidgetProps, AbstractZoneLocation, StagePanelLocation, StagePanelSection, UiItemsProvider } from "@itwin/appui-abstract";
4
2
  import { MapLayerOptions } from "./Interfaces";
5
3
  export declare class MapLayersUiItemsProvider implements UiItemsProvider {
6
4
  readonly id = "MapLayersUiItemsProvider";
7
- static localization: Localization;
8
- constructor(localization: Localization);
9
- provideWidgets(_stageId: string, stageUsage: string, location: StagePanelLocation, section: StagePanelSection | undefined): ReadonlyArray<AbstractWidgetProps>;
10
- }
11
- /** MapLayersWidgetControl provides a widget to attach and remove maps layers from the active view's display style.
12
- * ``` tsx
13
- * <Widget id={MapLayersWidgetControl.id} label={MapLayersWidgetControl.label} control={MapLayersWidgetControl}
14
- * iconSpec={MapLayersWidgetControl.iconSpec} />,
15
- * ```
16
- */
17
- export declare class MapLayersWidgetControl extends WidgetControl {
18
- static id: string;
19
- static iconSpec: string;
20
- static get label(): string;
21
- constructor(info: ConfigurableCreateInfo, mapLayerOptions: MapLayerOptions | undefined);
5
+ private _mapLayerOptions?;
6
+ constructor(mapLayerOptions?: MapLayerOptions);
7
+ provideWidgets(_stageId: string, stageUsage: string, location: StagePanelLocation, section: StagePanelSection | undefined, zoneLocation?: AbstractZoneLocation): ReadonlyArray<AbstractWidgetProps>;
22
8
  }
23
9
  //# sourceMappingURL=MapLayersUiItemsProvider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MapLayersUiItemsProvider.d.ts","sourceRoot":"","sources":["../../../src/ui/MapLayersUiItemsProvider.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,iBAAiB,EAAc,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAChI,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,OAAO,EAAE,sBAAsB,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAE3E,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,qBAAa,wBAAyB,YAAW,eAAe;IAC9D,SAAgB,EAAE,8BAA8B;IAChD,OAAc,YAAY,EAAE,YAAY,CAAC;gBAEtB,YAAY,EAAE,YAAY;IAItC,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,kBAAkB,EAAE,OAAO,EAAE,iBAAiB,GAAG,SAAS,GAAG,aAAa,CAAC,mBAAmB,CAAC;CAmBtK;AAED;;;;;GAKG;AACH,qBAAa,sBAAuB,SAAQ,aAAa;IACvD,OAAc,EAAE,SAAqB;IACrC,OAAc,QAAQ,SAAc;IAEpC,WAAkB,KAAK,IAAI,MAAM,CAEhC;gBAEW,IAAI,EAAE,sBAAsB,EAAE,eAAe,EAAE,eAAe,GAAG,SAAS;CAKvF"}
1
+ {"version":3,"file":"MapLayersUiItemsProvider.d.ts","sourceRoot":"","sources":["../../../src/ui/MapLayersUiItemsProvider.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,iBAAiB,EAAc,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAGtJ,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAG/C,qBAAa,wBAAyB,YAAW,eAAe;IAC9D,SAAgB,EAAE,8BAA8B;IAChD,OAAO,CAAC,gBAAgB,CAAC,CAAkB;gBAExB,eAAe,CAAC,EAAE,eAAe;IAS7C,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,kBAAkB,EAAE,OAAO,EAAE,iBAAiB,GAAG,SAAS,EAAE,YAAY,CAAC,EAAE,oBAAoB,GAAG,aAAa,CAAC,mBAAmB,CAAC;CAgB3M"}
@@ -3,48 +3,33 @@
3
3
  * See LICENSE.md in the project root for license terms and full copyright notice.
4
4
  *--------------------------------------------------------------------------------------------*/
5
5
  import * as React from "react";
6
- import { StagePanelLocation, StagePanelSection, StageUsage } from "@itwin/appui-abstract";
6
+ import { AbstractZoneLocation, StagePanelLocation, StagePanelSection, StageUsage } from "@itwin/appui-abstract";
7
7
  import { MapLayersWidget } from "./widget/MapLayersWidget";
8
- import { WidgetControl } from "@itwin/appui-react";
9
- import { IModelApp } from "@itwin/core-frontend";
8
+ import { UiFramework } from "@itwin/appui-react";
9
+ import { MapLayersUI } from "../mapLayers";
10
10
  export class MapLayersUiItemsProvider {
11
- constructor(localization) {
11
+ constructor(mapLayerOptions) {
12
12
  this.id = "MapLayersUiItemsProvider";
13
- MapLayersUiItemsProvider.localization = localization;
14
- }
15
- provideWidgets(_stageId, stageUsage, location, section) {
16
- const widgets = [];
17
- const mapLayerOptions = {
13
+ this._mapLayerOptions = mapLayerOptions !== null && mapLayerOptions !== void 0 ? mapLayerOptions : {
18
14
  hideExternalMapLayers: false,
19
15
  mapTypeOptions: { supportTileUrl: false, supportWmsAuthentication: true },
20
16
  fetchPublicMapLayerSources: false,
21
17
  };
22
- if (stageUsage === StageUsage.General && location === StagePanelLocation.Right && section === StagePanelSection.Start) {
18
+ }
19
+ // eslint-disable-next-line deprecation/deprecation
20
+ provideWidgets(_stageId, stageUsage, location, section, zoneLocation) {
21
+ const widgets = [];
22
+ // eslint-disable-next-line deprecation/deprecation
23
+ if ((undefined === section && stageUsage === StageUsage.General && zoneLocation === AbstractZoneLocation.CenterRight) ||
24
+ (stageUsage === StageUsage.General && location === StagePanelLocation.Right && section === StagePanelSection.Start && "1" !== UiFramework.uiVersion)) {
23
25
  widgets.push({
24
26
  id: "map-layers:mapLayersWidget",
25
- label: IModelApp.localization.getLocalizedString("mapLayers:Widget.Label"),
27
+ label: MapLayersUI.localization.getLocalizedString("mapLayers:Widget.Label"),
26
28
  icon: "icon-map",
27
- getWidgetContent: () => React.createElement(MapLayersWidget, { mapLayerOptions: mapLayerOptions }), // eslint-disable-line react/display-name
29
+ getWidgetContent: () => React.createElement(MapLayersWidget, { mapLayerOptions: this._mapLayerOptions }), // eslint-disable-line react/display-name
28
30
  });
29
31
  }
30
32
  return widgets;
31
33
  }
32
34
  }
33
- /** MapLayersWidgetControl provides a widget to attach and remove maps layers from the active view's display style.
34
- * ``` tsx
35
- * <Widget id={MapLayersWidgetControl.id} label={MapLayersWidgetControl.label} control={MapLayersWidgetControl}
36
- * iconSpec={MapLayersWidgetControl.iconSpec} />,
37
- * ```
38
- */
39
- export class MapLayersWidgetControl extends WidgetControl {
40
- constructor(info, mapLayerOptions) {
41
- super(info, mapLayerOptions);
42
- this.reactNode = React.createElement(MapLayersWidget, { mapLayerOptions: mapLayerOptions });
43
- }
44
- static get label() {
45
- return IModelApp.localization.getLocalizedString("mapLayers:Widget.Label");
46
- }
47
- }
48
- MapLayersWidgetControl.id = "MapLayersWidget";
49
- MapLayersWidgetControl.iconSpec = "icon-map";
50
35
  //# sourceMappingURL=MapLayersUiItemsProvider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MapLayersUiItemsProvider.js","sourceRoot":"","sources":["../../../src/ui/MapLayersUiItemsProvider.tsx"],"names":[],"mappings":"AAAA;;;+FAG+F;AAE/F,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAuB,kBAAkB,EAAE,iBAAiB,EAAE,UAAU,EAAmB,MAAM,uBAAuB,CAAC;AAEhI,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAA0B,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAC3E,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAGjD,MAAM,OAAO,wBAAwB;IAInC,YAAmB,YAA0B;QAH7B,OAAE,GAAG,0BAA0B,CAAC;QAI9C,wBAAwB,CAAC,YAAY,GAAG,YAAY,CAAC;IACvD,CAAC;IAEM,cAAc,CAAC,QAAgB,EAAE,UAAkB,EAAE,QAA4B,EAAE,OAAsC;QAC9H,MAAM,OAAO,GAA0B,EAAE,CAAC;QAC1C,MAAM,eAAe,GAAoB;YACvC,qBAAqB,EAAE,KAAK;YAC5B,cAAc,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,wBAAwB,EAAE,IAAI,EAAE;YACzE,0BAA0B,EAAE,KAAK;SAClC,CAAC;QAEF,IAAI,UAAU,KAAK,UAAU,CAAC,OAAO,IAAI,QAAQ,KAAK,kBAAkB,CAAC,KAAK,IAAI,OAAO,KAAK,iBAAiB,CAAC,KAAK,EAAE;YACrH,OAAO,CAAC,IAAI,CAAC;gBACX,EAAE,EAAE,4BAA4B;gBAChC,KAAK,EAAE,SAAS,CAAC,YAAY,CAAC,kBAAkB,CAAC,wBAAwB,CAAC;gBAC1E,IAAI,EAAE,UAAU;gBAChB,gBAAgB,EAAE,GAAG,EAAE,CAAC,oBAAC,eAAe,IAAC,eAAe,EAAE,eAAe,GAAI,EAAE,yCAAyC;aACzH,CAAC,CAAC;SACJ;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;CACF;AAED;;;;;GAKG;AACH,MAAM,OAAO,sBAAuB,SAAQ,aAAa;IAQvD,YAAY,IAA4B,EAAE,eAA4C;QACpF,KAAK,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;QAE7B,IAAI,CAAC,SAAS,GAAG,oBAAC,eAAe,IAAC,eAAe,EAAE,eAAe,GAAI,CAAC;IACzE,CAAC;IARM,MAAM,KAAK,KAAK;QACrB,OAAO,SAAS,CAAC,YAAY,CAAC,kBAAkB,CAAC,wBAAwB,CAAC,CAAC;IAC7E,CAAC;;AALa,yBAAE,GAAG,iBAAiB,CAAC;AACvB,+BAAQ,GAAG,UAAU,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n\r\nimport * as React from \"react\";\r\nimport { AbstractWidgetProps, StagePanelLocation, StagePanelSection, StageUsage, UiItemsProvider } from \"@itwin/appui-abstract\";\r\nimport { Localization } from \"@itwin/core-common\";\r\nimport { MapLayersWidget } from \"./widget/MapLayersWidget\";\r\nimport { ConfigurableCreateInfo, WidgetControl } from \"@itwin/appui-react\";\r\nimport { IModelApp } from \"@itwin/core-frontend\";\r\nimport { MapLayerOptions } from \"./Interfaces\";\r\n\r\nexport class MapLayersUiItemsProvider implements UiItemsProvider {\r\n public readonly id = \"MapLayersUiItemsProvider\";\r\n public static localization: Localization;\r\n\r\n public constructor(localization: Localization) {\r\n MapLayersUiItemsProvider.localization = localization;\r\n }\r\n\r\n public provideWidgets(_stageId: string, stageUsage: string, location: StagePanelLocation, section: StagePanelSection | undefined): ReadonlyArray<AbstractWidgetProps> {\r\n const widgets: AbstractWidgetProps[] = [];\r\n const mapLayerOptions: MapLayerOptions = {\r\n hideExternalMapLayers: false,\r\n mapTypeOptions: { supportTileUrl: false, supportWmsAuthentication: true },\r\n fetchPublicMapLayerSources: false,\r\n };\r\n\r\n if (stageUsage === StageUsage.General && location === StagePanelLocation.Right && section === StagePanelSection.Start) {\r\n widgets.push({\r\n id: \"map-layers:mapLayersWidget\",\r\n label: IModelApp.localization.getLocalizedString(\"mapLayers:Widget.Label\"),\r\n icon: \"icon-map\",\r\n getWidgetContent: () => <MapLayersWidget mapLayerOptions={mapLayerOptions} />, // eslint-disable-line react/display-name\r\n });\r\n }\r\n\r\n return widgets;\r\n }\r\n}\r\n\r\n/** MapLayersWidgetControl provides a widget to attach and remove maps layers from the active view's display style.\r\n * ``` tsx\r\n * <Widget id={MapLayersWidgetControl.id} label={MapLayersWidgetControl.label} control={MapLayersWidgetControl}\r\n * iconSpec={MapLayersWidgetControl.iconSpec} />,\r\n * ```\r\n */\r\nexport class MapLayersWidgetControl extends WidgetControl {\r\n public static id = \"MapLayersWidget\";\r\n public static iconSpec = \"icon-map\";\r\n\r\n public static get label(): string {\r\n return IModelApp.localization.getLocalizedString(\"mapLayers:Widget.Label\");\r\n }\r\n\r\n constructor(info: ConfigurableCreateInfo, mapLayerOptions: MapLayerOptions | undefined) {\r\n super(info, mapLayerOptions);\r\n\r\n this.reactNode = <MapLayersWidget mapLayerOptions={mapLayerOptions} />;\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"MapLayersUiItemsProvider.js","sourceRoot":"","sources":["../../../src/ui/MapLayersUiItemsProvider.tsx"],"names":[],"mappings":"AAAA;;;+FAG+F;AAE/F,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAuB,oBAAoB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,UAAU,EAAmB,MAAM,uBAAuB,CAAC;AACtJ,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,MAAM,OAAO,wBAAwB;IAInC,YAAmB,eAAiC;QAHpC,OAAE,GAAG,0BAA0B,CAAC;QAI9C,IAAI,CAAC,gBAAgB,GAAG,eAAe,aAAf,eAAe,cAAf,eAAe,GAAI;YACzC,qBAAqB,EAAE,KAAK;YAC5B,cAAc,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,wBAAwB,EAAE,IAAI,EAAE;YACzE,0BAA0B,EAAE,KAAK;SAClC,CAAC;IACJ,CAAC;IAED,mDAAmD;IAC5C,cAAc,CAAC,QAAgB,EAAE,UAAkB,EAAE,QAA4B,EAAE,OAAsC,EAAE,YAAmC;QACnK,MAAM,OAAO,GAA0B,EAAE,CAAC;QAE1C,mDAAmD;QACnD,IAAI,CAAC,SAAS,KAAK,OAAO,IAAI,UAAU,KAAK,UAAU,CAAC,OAAO,IAAI,YAAY,KAAK,oBAAoB,CAAC,WAAW,CAAC;YACnH,CAAC,UAAU,KAAK,UAAU,CAAC,OAAO,IAAI,QAAQ,KAAK,kBAAkB,CAAC,KAAK,IAAI,OAAO,KAAK,iBAAiB,CAAC,KAAK,IAAI,GAAG,KAAK,WAAW,CAAC,SAAS,CAAC,EAAE;YACtJ,OAAO,CAAC,IAAI,CAAC;gBACX,EAAE,EAAE,4BAA4B;gBAChC,KAAK,EAAE,WAAW,CAAC,YAAY,CAAC,kBAAkB,CAAC,wBAAwB,CAAC;gBAC5E,IAAI,EAAE,UAAU;gBAChB,gBAAgB,EAAE,GAAG,EAAE,CAAC,oBAAC,eAAe,IAAC,eAAe,EAAE,IAAI,CAAC,gBAAgB,GAAI,EAAE,yCAAyC;aAC/H,CAAC,CAAC;SACJ;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;CACF","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n\r\nimport * as React from \"react\";\r\nimport { AbstractWidgetProps, AbstractZoneLocation, StagePanelLocation, StagePanelSection, StageUsage, UiItemsProvider } from \"@itwin/appui-abstract\";\r\nimport { MapLayersWidget } from \"./widget/MapLayersWidget\";\r\nimport { UiFramework } from \"@itwin/appui-react\";\r\nimport { MapLayerOptions } from \"./Interfaces\";\r\nimport { MapLayersUI } from \"../mapLayers\";\r\n\r\nexport class MapLayersUiItemsProvider implements UiItemsProvider {\r\n public readonly id = \"MapLayersUiItemsProvider\";\r\n private _mapLayerOptions?: MapLayerOptions;\r\n\r\n public constructor(mapLayerOptions?: MapLayerOptions) {\r\n this._mapLayerOptions = mapLayerOptions ?? {\r\n hideExternalMapLayers: false,\r\n mapTypeOptions: { supportTileUrl: false, supportWmsAuthentication: true },\r\n fetchPublicMapLayerSources: false,\r\n };\r\n }\r\n\r\n // eslint-disable-next-line deprecation/deprecation\r\n public provideWidgets(_stageId: string, stageUsage: string, location: StagePanelLocation, section: StagePanelSection | undefined, zoneLocation?: AbstractZoneLocation): ReadonlyArray<AbstractWidgetProps> {\r\n const widgets: AbstractWidgetProps[] = [];\r\n\r\n // eslint-disable-next-line deprecation/deprecation\r\n if ((undefined === section && stageUsage === StageUsage.General && zoneLocation === AbstractZoneLocation.CenterRight) ||\r\n (stageUsage === StageUsage.General && location === StagePanelLocation.Right && section === StagePanelSection.Start && \"1\" !== UiFramework.uiVersion)) {\r\n widgets.push({\r\n id: \"map-layers:mapLayersWidget\",\r\n label: MapLayersUI.localization.getLocalizedString(\"mapLayers:Widget.Label\"),\r\n icon: \"icon-map\",\r\n getWidgetContent: () => <MapLayersWidget mapLayerOptions={this._mapLayerOptions} />, // eslint-disable-line react/display-name\r\n });\r\n }\r\n\r\n return widgets;\r\n }\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"AttachLayerPopupButton.d.ts","sourceRoot":"","sources":["../../../../src/ui/widget/AttachLayerPopupButton.tsx"],"names":[],"mappings":";AA0TA,gBAAgB;AAChB,oBAAY,qBAAqB;IAC/B,OAAO,IAAA;IACP,IAAI,IAAA;IACJ,IAAI,IAAA;CACL;AACD,MAAM,WAAW,2BAA2B;IAC1C,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,qBAAqB,CAAC;CACpC;AAED,gBAAgB;AAEhB,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,2BAA2B,eAsHxE"}
1
+ {"version":3,"file":"AttachLayerPopupButton.d.ts","sourceRoot":"","sources":["../../../../src/ui/widget/AttachLayerPopupButton.tsx"],"names":[],"mappings":";AAgUA,gBAAgB;AAChB,oBAAY,qBAAqB;IAC/B,OAAO,IAAA;IACP,IAAI,IAAA;IACJ,IAAI,IAAA;CACL;AACD,MAAM,WAAW,2BAA2B;IAC1C,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,qBAAqB,CAAC;CACpC;AAED,gBAAgB;AAEhB,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,2BAA2B,eA2HxE"}