@itwin/map-layers 3.2.0-dev.37 → 3.2.0-dev.40

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.
@@ -1,5 +1,6 @@
1
1
  import { Localization } from "@itwin/core-common";
2
2
  import { UserPreferencesAccess } from "@itwin/core-frontend";
3
+ import { UiItemProviderOverrides } from "@itwin/appui-abstract";
3
4
  import { MapFeatureInfoOptions, MapLayerOptions } from "./ui/Interfaces";
4
5
  export interface MapLayersConfig {
5
6
  localization?: Localization;
@@ -7,6 +8,12 @@ export interface MapLayersConfig {
7
8
  iTwinConfig?: UserPreferencesAccess;
8
9
  mapLayerOptions?: MapLayerOptions;
9
10
  featureInfoOpts?: MapFeatureInfoOptions;
11
+ delayItemsProviderRegister?: boolean;
12
+ }
13
+ /** Configuration for registering UiItemsProviders for the MapLayers package */
14
+ export interface MapLayersUiProviderConfig {
15
+ mapLayerProviderOverrides?: UiItemProviderOverrides;
16
+ featureInfoProviderOverrides?: UiItemProviderOverrides;
10
17
  }
11
18
  /** MapLayersUI is use when the package is used as a dependency to another app.
12
19
  * '''ts
@@ -17,11 +24,19 @@ export interface MapLayersConfig {
17
24
  export declare class MapLayersUI {
18
25
  private static _defaultNs;
19
26
  static localization: Localization;
20
- private static _uiItemsProviders;
27
+ private static _uiItemsProvidersId;
21
28
  private static _iTwinConfig?;
29
+ private static _featureInfoOpts?;
30
+ private static _mapLayerOptions?;
22
31
  static get iTwinConfig(): UserPreferencesAccess | undefined;
23
32
  /** Used to initialize the Map Layers */
24
33
  static initialize(config?: MapLayersConfig): Promise<void>;
34
+ /** Registers the UiItemsProviders for MapLayers with optional overrides
35
+ * This is useful for an app that wants to defer UiItemsProvider registration so that it
36
+ * may limit the MapLayers widgets to a specific workflow
37
+ * @beta
38
+ */
39
+ static registerUiItemsProviders(config?: MapLayersUiProviderConfig): void;
25
40
  /** Unregisters internationalization service namespace and UiItemManager */
26
41
  static terminate(): void;
27
42
  /** The internationalization service namespace. */
@@ -1 +1 @@
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
+ {"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;AAExE,OAAO,EAAE,uBAAuB,EAAkB,MAAM,uBAAuB,CAAC;AAEhF,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;IACxC,0BAA0B,CAAC,EAAE,OAAO,CAAC;CACtC;AACD,+EAA+E;AAC/E,MAAM,WAAW,yBAAyB;IACxC,yBAAyB,CAAC,EAAE,uBAAuB,CAAC;IACpD,4BAA4B,CAAC,EAAE,uBAAuB,CAAC;CACxD;AAED;;;;;GAKG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,MAAM,CAAC,UAAU,CAAe;IACxC,OAAc,YAAY,EAAE,YAAY,CAAC;IACzC,OAAO,CAAC,MAAM,CAAC,mBAAmB,CAAgB;IAClD,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,CAAwB;IACpD,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAwB;IACxD,OAAO,CAAC,MAAM,CAAE,gBAAgB,CAAC,CAAkB;IAEnD,WAAkB,WAAW,IAAI,qBAAqB,GAAG,SAAS,CAEjE;IAED,wCAAwC;WACpB,UAAU,CAAC,MAAM,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAevE;;;;OAIG;WACW,wBAAwB,CAAC,MAAM,CAAC,EAAE,yBAAyB;IAezE,4EAA4E;WAC9D,SAAS;IAQvB,kDAAkD;IAClD,WAAkB,qBAAqB,IAAI,MAAM,CAEhD;CACF"}
@@ -17,25 +17,40 @@ class MapLayersUI {
17
17
  }
18
18
  /** Used to initialize the Map Layers */
19
19
  static async initialize(config) {
20
- var _a, _b;
20
+ var _a;
21
21
  // register namespace containing localized strings for this package
22
22
  MapLayersUI.localization = (_a = config === null || config === void 0 ? void 0 : config.localization) !== null && _a !== void 0 ? _a : core_frontend_1.IModelApp.localization;
23
23
  await MapLayersUI.localization.registerNamespace(MapLayersUI.localizationNamespace);
24
24
  MapLayersUI._iTwinConfig = config === null || config === void 0 ? void 0 : config.iTwinConfig;
25
- MapLayersUI._uiItemsProviders.push(new MapLayersUiItemsProvider_1.MapLayersUiItemsProvider({ ...config === null || config === void 0 ? void 0 : config.mapLayerOptions }));
25
+ MapLayersUI._featureInfoOpts = config === null || config === void 0 ? void 0 : config.featureInfoOpts;
26
+ MapLayersUI._mapLayerOptions = config === null || config === void 0 ? void 0 : config.mapLayerOptions;
27
+ if (!(config === null || config === void 0 ? void 0 : config.delayItemsProviderRegister))
28
+ MapLayersUI.registerUiItemsProviders();
29
+ }
30
+ /** Registers the UiItemsProviders for MapLayers with optional overrides
31
+ * This is useful for an app that wants to defer UiItemsProvider registration so that it
32
+ * may limit the MapLayers widgets to a specific workflow
33
+ * @beta
34
+ */
35
+ static registerUiItemsProviders(config) {
36
+ var _a, _b, _c, _d, _e;
37
+ const mlProvider = new MapLayersUiItemsProvider_1.MapLayersUiItemsProvider({ ...MapLayersUI._mapLayerOptions });
38
+ const mlProviderId = (_b = (_a = config === null || config === void 0 ? void 0 : config.mapLayerProviderOverrides) === null || _a === void 0 ? void 0 : _a.providerId) !== null && _b !== void 0 ? _b : mlProvider.id;
39
+ MapLayersUI._uiItemsProvidersId.push(mlProviderId);
40
+ appui_abstract_1.UiItemsManager.register(mlProvider, config === null || config === void 0 ? void 0 : config.mapLayerProviderOverrides);
26
41
  // Register the FeatureInfo widget only if MapHit was provided.
27
- if ((_b = config === null || config === void 0 ? void 0 : config.featureInfoOpts) === null || _b === void 0 ? void 0 : _b.onMapHit) {
28
- MapLayersUI._uiItemsProviders.push(new FeatureInfoUiItemsProvider_1.FeatureInfoUiItemsProvider({ ...config === null || config === void 0 ? void 0 : config.featureInfoOpts }));
42
+ if ((_c = MapLayersUI._featureInfoOpts) === null || _c === void 0 ? void 0 : _c.onMapHit) {
43
+ const fiProvider = new FeatureInfoUiItemsProvider_1.FeatureInfoUiItemsProvider({ ...MapLayersUI._featureInfoOpts });
44
+ const fiProviderId = (_e = (_d = config === null || config === void 0 ? void 0 : config.featureInfoProviderOverrides) === null || _d === void 0 ? void 0 : _d.providerId) !== null && _e !== void 0 ? _e : fiProvider.id;
45
+ MapLayersUI._uiItemsProvidersId.push(fiProviderId);
46
+ appui_abstract_1.UiItemsManager.register(mlProvider, config === null || config === void 0 ? void 0 : config.featureInfoProviderOverrides);
29
47
  }
30
- MapLayersUI._uiItemsProviders.forEach((uiProvider) => {
31
- appui_abstract_1.UiItemsManager.register(uiProvider);
32
- });
33
48
  }
34
49
  /** Unregisters internationalization service namespace and UiItemManager */
35
50
  static terminate() {
36
51
  core_frontend_1.IModelApp.localization.unregisterNamespace(MapLayersUI.localizationNamespace);
37
- MapLayersUI._uiItemsProviders.forEach((uiProvider) => {
38
- appui_abstract_1.UiItemsManager.unregister(uiProvider.id);
52
+ MapLayersUI._uiItemsProvidersId.forEach((uiProviderId) => {
53
+ appui_abstract_1.UiItemsManager.unregister(uiProviderId);
39
54
  });
40
55
  }
41
56
  /** The internationalization service namespace. */
@@ -45,5 +60,5 @@ class MapLayersUI {
45
60
  }
46
61
  exports.MapLayersUI = MapLayersUI;
47
62
  MapLayersUI._defaultNs = "mapLayers";
48
- MapLayersUI._uiItemsProviders = [];
63
+ MapLayersUI._uiItemsProvidersId = [];
49
64
  //# sourceMappingURL=mapLayers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mapLayers.js","sourceRoot":"","sources":["../../src/mapLayers.ts"],"names":[],"mappings":";;;AAKA,wDAAwE;AACxE,4EAAyE;AACzE,0DAAwE;AACxE,gFAA6E;AAW7E;;;;;GAKG;AACH,MAAa,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,yBAAS,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,mDAAwB,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,uDAA0B,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,+BAAc,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,4EAA4E;IACrE,MAAM,CAAC,SAAS;QACrB,yBAAS,CAAC,YAAY,CAAC,mBAAmB,CAAC,WAAW,CAAC,qBAAqB,CAAC,CAAC;QAE9E,WAAW,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE;YACnD,+BAAc,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;;AAjDH,kCAkDC;AAjDgB,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
+ {"version":3,"file":"mapLayers.js","sourceRoot":"","sources":["../../src/mapLayers.ts"],"names":[],"mappings":";;;AAKA,wDAAwE;AACxE,4EAAyE;AACzE,0DAAgF;AAChF,gFAA6E;AAiB7E;;;;;GAKG;AACH,MAAa,WAAW;IAQf,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,yBAAS,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;QAC/C,WAAW,CAAC,gBAAgB,GAAG,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,eAAe,CAAC;QACvD,WAAW,CAAC,gBAAgB,GAAG,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,eAAe,CAAC;QAEvD,IAAI,CAAC,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,0BAA0B,CAAA;YACrC,WAAW,CAAC,wBAAwB,EAAE,CAAC;IAC3C,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,wBAAwB,CAAC,MAAkC;;QACvE,MAAM,UAAU,GAAG,IAAI,mDAAwB,CAAC,EAAE,GAAG,WAAW,CAAC,gBAAgB,EAAE,CAAC,CAAC;QACrF,MAAM,YAAY,GAAG,MAAA,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,yBAAyB,0CAAE,UAAU,mCAAI,UAAU,CAAC,EAAE,CAAC;QACpF,WAAW,CAAC,mBAAmB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACnD,+BAAc,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,yBAAyB,CAAC,CAAC;QAEvE,+DAA+D;QAC/D,IAAI,MAAA,WAAW,CAAC,gBAAgB,0CAAE,QAAQ,EAAE;YAC1C,MAAM,UAAU,GAAG,IAAI,uDAA0B,CAAC,EAAE,GAAG,WAAW,CAAC,gBAAgB,EAAE,CAAC,CAAC;YACvF,MAAM,YAAY,GAAG,MAAA,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,4BAA4B,0CAAE,UAAU,mCAAI,UAAU,CAAC,EAAE,CAAC;YACvF,WAAW,CAAC,mBAAmB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACnD,+BAAc,CAAC,QAAQ,CAAC,UAAU,EAAG,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,4BAA4B,CAAC,CAAC;SAC5E;IACH,CAAC;IAED,4EAA4E;IACrE,MAAM,CAAC,SAAS;QACrB,yBAAS,CAAC,YAAY,CAAC,mBAAmB,CAAC,WAAW,CAAC,qBAAqB,CAAC,CAAC;QAE9E,WAAW,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,YAAY,EAAE,EAAE;YACvD,+BAAc,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;IACL,CAAC;IAED,kDAAkD;IAC3C,MAAM,KAAK,qBAAqB;QACrC,OAAO,WAAW,CAAC,UAAU,CAAC;IAChC,CAAC;;AA5DH,kCA6DC;AA5DgB,sBAAU,GAAG,WAAW,CAAC;AAEzB,+BAAmB,GAAa,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 { UiItemProviderOverrides, UiItemsManager } 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 delayItemsProviderRegister?: boolean;\r\n}\r\n/** Configuration for registering UiItemsProviders for the MapLayers package */\r\nexport interface MapLayersUiProviderConfig {\r\n mapLayerProviderOverrides?: UiItemProviderOverrides;\r\n featureInfoProviderOverrides?: UiItemProviderOverrides;\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 _uiItemsProvidersId: string[] = [];\r\n private static _iTwinConfig?: UserPreferencesAccess;\r\n private static _featureInfoOpts?: MapFeatureInfoOptions;\r\n private static _mapLayerOptions?: MapLayerOptions;\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 MapLayersUI._featureInfoOpts = config?.featureInfoOpts;\r\n MapLayersUI._mapLayerOptions = config?.mapLayerOptions;\r\n\r\n if (!config?.delayItemsProviderRegister)\r\n MapLayersUI.registerUiItemsProviders();\r\n }\r\n\r\n /** Registers the UiItemsProviders for MapLayers with optional overrides\r\n * This is useful for an app that wants to defer UiItemsProvider registration so that it\r\n * may limit the MapLayers widgets to a specific workflow\r\n * @beta\r\n */\r\n public static registerUiItemsProviders(config?: MapLayersUiProviderConfig) {\r\n const mlProvider = new MapLayersUiItemsProvider({ ...MapLayersUI._mapLayerOptions });\r\n const mlProviderId = config?.mapLayerProviderOverrides?.providerId ?? mlProvider.id;\r\n MapLayersUI._uiItemsProvidersId.push(mlProviderId);\r\n UiItemsManager.register(mlProvider, config?.mapLayerProviderOverrides);\r\n\r\n // Register the FeatureInfo widget only if MapHit was provided.\r\n if (MapLayersUI._featureInfoOpts?.onMapHit) {\r\n const fiProvider = new FeatureInfoUiItemsProvider({ ...MapLayersUI._featureInfoOpts });\r\n const fiProviderId = config?.featureInfoProviderOverrides?.providerId ?? fiProvider.id;\r\n MapLayersUI._uiItemsProvidersId.push(fiProviderId);\r\n UiItemsManager.register(mlProvider, config?.featureInfoProviderOverrides);\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._uiItemsProvidersId.forEach((uiProviderId) => {\r\n UiItemsManager.unregister(uiProviderId);\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,5 +1,6 @@
1
1
  import { Localization } from "@itwin/core-common";
2
2
  import { UserPreferencesAccess } from "@itwin/core-frontend";
3
+ import { UiItemProviderOverrides } from "@itwin/appui-abstract";
3
4
  import { MapFeatureInfoOptions, MapLayerOptions } from "./ui/Interfaces";
4
5
  export interface MapLayersConfig {
5
6
  localization?: Localization;
@@ -7,6 +8,12 @@ export interface MapLayersConfig {
7
8
  iTwinConfig?: UserPreferencesAccess;
8
9
  mapLayerOptions?: MapLayerOptions;
9
10
  featureInfoOpts?: MapFeatureInfoOptions;
11
+ delayItemsProviderRegister?: boolean;
12
+ }
13
+ /** Configuration for registering UiItemsProviders for the MapLayers package */
14
+ export interface MapLayersUiProviderConfig {
15
+ mapLayerProviderOverrides?: UiItemProviderOverrides;
16
+ featureInfoProviderOverrides?: UiItemProviderOverrides;
10
17
  }
11
18
  /** MapLayersUI is use when the package is used as a dependency to another app.
12
19
  * '''ts
@@ -17,11 +24,19 @@ export interface MapLayersConfig {
17
24
  export declare class MapLayersUI {
18
25
  private static _defaultNs;
19
26
  static localization: Localization;
20
- private static _uiItemsProviders;
27
+ private static _uiItemsProvidersId;
21
28
  private static _iTwinConfig?;
29
+ private static _featureInfoOpts?;
30
+ private static _mapLayerOptions?;
22
31
  static get iTwinConfig(): UserPreferencesAccess | undefined;
23
32
  /** Used to initialize the Map Layers */
24
33
  static initialize(config?: MapLayersConfig): Promise<void>;
34
+ /** Registers the UiItemsProviders for MapLayers with optional overrides
35
+ * This is useful for an app that wants to defer UiItemsProvider registration so that it
36
+ * may limit the MapLayers widgets to a specific workflow
37
+ * @beta
38
+ */
39
+ static registerUiItemsProviders(config?: MapLayersUiProviderConfig): void;
25
40
  /** Unregisters internationalization service namespace and UiItemManager */
26
41
  static terminate(): void;
27
42
  /** The internationalization service namespace. */
@@ -1 +1 @@
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
+ {"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;AAExE,OAAO,EAAE,uBAAuB,EAAkB,MAAM,uBAAuB,CAAC;AAEhF,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;IACxC,0BAA0B,CAAC,EAAE,OAAO,CAAC;CACtC;AACD,+EAA+E;AAC/E,MAAM,WAAW,yBAAyB;IACxC,yBAAyB,CAAC,EAAE,uBAAuB,CAAC;IACpD,4BAA4B,CAAC,EAAE,uBAAuB,CAAC;CACxD;AAED;;;;;GAKG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,MAAM,CAAC,UAAU,CAAe;IACxC,OAAc,YAAY,EAAE,YAAY,CAAC;IACzC,OAAO,CAAC,MAAM,CAAC,mBAAmB,CAAgB;IAClD,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,CAAwB;IACpD,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAwB;IACxD,OAAO,CAAC,MAAM,CAAE,gBAAgB,CAAC,CAAkB;IAEnD,WAAkB,WAAW,IAAI,qBAAqB,GAAG,SAAS,CAEjE;IAED,wCAAwC;WACpB,UAAU,CAAC,MAAM,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAevE;;;;OAIG;WACW,wBAAwB,CAAC,MAAM,CAAC,EAAE,yBAAyB;IAezE,4EAA4E;WAC9D,SAAS;IAQvB,kDAAkD;IAClD,WAAkB,qBAAqB,IAAI,MAAM,CAEhD;CACF"}
@@ -14,25 +14,40 @@ export class MapLayersUI {
14
14
  }
15
15
  /** Used to initialize the Map Layers */
16
16
  static async initialize(config) {
17
- var _a, _b;
17
+ var _a;
18
18
  // register namespace containing localized strings for this package
19
19
  MapLayersUI.localization = (_a = config === null || config === void 0 ? void 0 : config.localization) !== null && _a !== void 0 ? _a : IModelApp.localization;
20
20
  await MapLayersUI.localization.registerNamespace(MapLayersUI.localizationNamespace);
21
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 }));
22
+ MapLayersUI._featureInfoOpts = config === null || config === void 0 ? void 0 : config.featureInfoOpts;
23
+ MapLayersUI._mapLayerOptions = config === null || config === void 0 ? void 0 : config.mapLayerOptions;
24
+ if (!(config === null || config === void 0 ? void 0 : config.delayItemsProviderRegister))
25
+ MapLayersUI.registerUiItemsProviders();
26
+ }
27
+ /** Registers the UiItemsProviders for MapLayers with optional overrides
28
+ * This is useful for an app that wants to defer UiItemsProvider registration so that it
29
+ * may limit the MapLayers widgets to a specific workflow
30
+ * @beta
31
+ */
32
+ static registerUiItemsProviders(config) {
33
+ var _a, _b, _c, _d, _e;
34
+ const mlProvider = new MapLayersUiItemsProvider({ ...MapLayersUI._mapLayerOptions });
35
+ const mlProviderId = (_b = (_a = config === null || config === void 0 ? void 0 : config.mapLayerProviderOverrides) === null || _a === void 0 ? void 0 : _a.providerId) !== null && _b !== void 0 ? _b : mlProvider.id;
36
+ MapLayersUI._uiItemsProvidersId.push(mlProviderId);
37
+ UiItemsManager.register(mlProvider, config === null || config === void 0 ? void 0 : config.mapLayerProviderOverrides);
23
38
  // 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 }));
39
+ if ((_c = MapLayersUI._featureInfoOpts) === null || _c === void 0 ? void 0 : _c.onMapHit) {
40
+ const fiProvider = new FeatureInfoUiItemsProvider({ ...MapLayersUI._featureInfoOpts });
41
+ const fiProviderId = (_e = (_d = config === null || config === void 0 ? void 0 : config.featureInfoProviderOverrides) === null || _d === void 0 ? void 0 : _d.providerId) !== null && _e !== void 0 ? _e : fiProvider.id;
42
+ MapLayersUI._uiItemsProvidersId.push(fiProviderId);
43
+ UiItemsManager.register(mlProvider, config === null || config === void 0 ? void 0 : config.featureInfoProviderOverrides);
26
44
  }
27
- MapLayersUI._uiItemsProviders.forEach((uiProvider) => {
28
- UiItemsManager.register(uiProvider);
29
- });
30
45
  }
31
46
  /** Unregisters internationalization service namespace and UiItemManager */
32
47
  static terminate() {
33
48
  IModelApp.localization.unregisterNamespace(MapLayersUI.localizationNamespace);
34
- MapLayersUI._uiItemsProviders.forEach((uiProvider) => {
35
- UiItemsManager.unregister(uiProvider.id);
49
+ MapLayersUI._uiItemsProvidersId.forEach((uiProviderId) => {
50
+ UiItemsManager.unregister(uiProviderId);
36
51
  });
37
52
  }
38
53
  /** The internationalization service namespace. */
@@ -41,5 +56,5 @@ export class MapLayersUI {
41
56
  }
42
57
  }
43
58
  MapLayersUI._defaultNs = "mapLayers";
44
- MapLayersUI._uiItemsProviders = [];
59
+ MapLayersUI._uiItemsProvidersId = [];
45
60
  //# sourceMappingURL=mapLayers.js.map
@@ -1 +1 @@
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
+ {"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,EAA2B,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAChF,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAiB7E;;;;;GAKG;AACH,MAAM,OAAO,WAAW;IAQf,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;QAC/C,WAAW,CAAC,gBAAgB,GAAG,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,eAAe,CAAC;QACvD,WAAW,CAAC,gBAAgB,GAAG,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,eAAe,CAAC;QAEvD,IAAI,CAAC,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,0BAA0B,CAAA;YACrC,WAAW,CAAC,wBAAwB,EAAE,CAAC;IAC3C,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,wBAAwB,CAAC,MAAkC;;QACvE,MAAM,UAAU,GAAG,IAAI,wBAAwB,CAAC,EAAE,GAAG,WAAW,CAAC,gBAAgB,EAAE,CAAC,CAAC;QACrF,MAAM,YAAY,GAAG,MAAA,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,yBAAyB,0CAAE,UAAU,mCAAI,UAAU,CAAC,EAAE,CAAC;QACpF,WAAW,CAAC,mBAAmB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACnD,cAAc,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,yBAAyB,CAAC,CAAC;QAEvE,+DAA+D;QAC/D,IAAI,MAAA,WAAW,CAAC,gBAAgB,0CAAE,QAAQ,EAAE;YAC1C,MAAM,UAAU,GAAG,IAAI,0BAA0B,CAAC,EAAE,GAAG,WAAW,CAAC,gBAAgB,EAAE,CAAC,CAAC;YACvF,MAAM,YAAY,GAAG,MAAA,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,4BAA4B,0CAAE,UAAU,mCAAI,UAAU,CAAC,EAAE,CAAC;YACvF,WAAW,CAAC,mBAAmB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACnD,cAAc,CAAC,QAAQ,CAAC,UAAU,EAAG,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,4BAA4B,CAAC,CAAC;SAC5E;IACH,CAAC;IAED,4EAA4E;IACrE,MAAM,CAAC,SAAS;QACrB,SAAS,CAAC,YAAY,CAAC,mBAAmB,CAAC,WAAW,CAAC,qBAAqB,CAAC,CAAC;QAE9E,WAAW,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,YAAY,EAAE,EAAE;YACvD,cAAc,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;IACL,CAAC;IAED,kDAAkD;IAC3C,MAAM,KAAK,qBAAqB;QACrC,OAAO,WAAW,CAAC,UAAU,CAAC;IAChC,CAAC;;AA3Dc,sBAAU,GAAG,WAAW,CAAC;AAEzB,+BAAmB,GAAa,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 { UiItemProviderOverrides, UiItemsManager } 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 delayItemsProviderRegister?: boolean;\r\n}\r\n/** Configuration for registering UiItemsProviders for the MapLayers package */\r\nexport interface MapLayersUiProviderConfig {\r\n mapLayerProviderOverrides?: UiItemProviderOverrides;\r\n featureInfoProviderOverrides?: UiItemProviderOverrides;\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 _uiItemsProvidersId: string[] = [];\r\n private static _iTwinConfig?: UserPreferencesAccess;\r\n private static _featureInfoOpts?: MapFeatureInfoOptions;\r\n private static _mapLayerOptions?: MapLayerOptions;\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 MapLayersUI._featureInfoOpts = config?.featureInfoOpts;\r\n MapLayersUI._mapLayerOptions = config?.mapLayerOptions;\r\n\r\n if (!config?.delayItemsProviderRegister)\r\n MapLayersUI.registerUiItemsProviders();\r\n }\r\n\r\n /** Registers the UiItemsProviders for MapLayers with optional overrides\r\n * This is useful for an app that wants to defer UiItemsProvider registration so that it\r\n * may limit the MapLayers widgets to a specific workflow\r\n * @beta\r\n */\r\n public static registerUiItemsProviders(config?: MapLayersUiProviderConfig) {\r\n const mlProvider = new MapLayersUiItemsProvider({ ...MapLayersUI._mapLayerOptions });\r\n const mlProviderId = config?.mapLayerProviderOverrides?.providerId ?? mlProvider.id;\r\n MapLayersUI._uiItemsProvidersId.push(mlProviderId);\r\n UiItemsManager.register(mlProvider, config?.mapLayerProviderOverrides);\r\n\r\n // Register the FeatureInfo widget only if MapHit was provided.\r\n if (MapLayersUI._featureInfoOpts?.onMapHit) {\r\n const fiProvider = new FeatureInfoUiItemsProvider({ ...MapLayersUI._featureInfoOpts });\r\n const fiProviderId = config?.featureInfoProviderOverrides?.providerId ?? fiProvider.id;\r\n MapLayersUI._uiItemsProvidersId.push(fiProviderId);\r\n UiItemsManager.register(mlProvider, config?.featureInfoProviderOverrides);\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._uiItemsProvidersId.forEach((uiProviderId) => {\r\n UiItemsManager.unregister(uiProviderId);\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"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@itwin/map-layers",
3
- "version": "3.2.0-dev.37",
3
+ "version": "3.2.0-dev.40",
4
4
  "description": "Extension that adds a Map Layers Widget",
5
5
  "main": "lib/cjs/map-layers.js",
6
6
  "module": "lib/esm/map-layers.js",
@@ -21,22 +21,22 @@
21
21
  "url": "http://www.bentley.com"
22
22
  },
23
23
  "devDependencies": {
24
- "@itwin/appui-abstract": "3.2.0-dev.37",
25
- "@itwin/appui-layout-react": "3.2.0-dev.37",
26
- "@itwin/appui-react": "3.2.0-dev.37",
27
- "@itwin/build-tools": "3.2.0-dev.37",
28
- "@itwin/components-react": "3.2.0-dev.37",
29
- "@itwin/core-bentley": "3.2.0-dev.37",
30
- "@itwin/core-common": "3.2.0-dev.37",
31
- "@itwin/core-frontend": "3.2.0-dev.37",
32
- "@itwin/core-geometry": "3.2.0-dev.37",
33
- "@itwin/core-quantity": "3.2.0-dev.37",
34
- "@itwin/core-react": "3.2.0-dev.37",
35
- "@itwin/eslint-plugin": "3.2.0-dev.37",
36
- "@itwin/imodel-components-react": "3.2.0-dev.37",
24
+ "@itwin/appui-abstract": "3.2.0-dev.40",
25
+ "@itwin/appui-layout-react": "3.2.0-dev.40",
26
+ "@itwin/appui-react": "3.2.0-dev.40",
27
+ "@itwin/build-tools": "3.2.0-dev.40",
28
+ "@itwin/components-react": "3.2.0-dev.40",
29
+ "@itwin/core-bentley": "3.2.0-dev.40",
30
+ "@itwin/core-common": "3.2.0-dev.40",
31
+ "@itwin/core-frontend": "3.2.0-dev.40",
32
+ "@itwin/core-geometry": "3.2.0-dev.40",
33
+ "@itwin/core-quantity": "3.2.0-dev.40",
34
+ "@itwin/core-react": "3.2.0-dev.40",
35
+ "@itwin/eslint-plugin": "3.2.0-dev.40",
36
+ "@itwin/imodel-components-react": "3.2.0-dev.40",
37
37
  "@itwin/itwinui-css": "0.x",
38
38
  "@itwin/itwinui-react": "^1.32.0",
39
- "@itwin/presentation-common": "3.2.0-dev.37",
39
+ "@itwin/presentation-common": "3.2.0-dev.40",
40
40
  "@testing-library/react": "^12.0.0",
41
41
  "@testing-library/react-hooks": "^7.0.2",
42
42
  "@types/chai": "^4.1.4",
@@ -72,17 +72,17 @@
72
72
  "react-beautiful-dnd": "^13.0.0"
73
73
  },
74
74
  "peerDependencies": {
75
- "@itwin/core-bentley": "^3.2.0-dev.37",
76
- "@itwin/core-geometry": "^3.2.0-dev.37",
77
- "@itwin/core-common": "^3.2.0-dev.37",
78
- "@itwin/core-frontend": "^3.2.0-dev.37",
79
- "@itwin/core-quantity": "^3.2.0-dev.37",
80
- "@itwin/appui-abstract": "^3.2.0-dev.37",
81
- "@itwin/components-react": "^3.2.0-dev.37",
82
- "@itwin/core-react": "^3.2.0-dev.37",
83
- "@itwin/appui-react": "^3.2.0-dev.37",
84
- "@itwin/imodel-components-react": "^3.2.0-dev.37",
85
- "@itwin/appui-layout-react": "^3.2.0-dev.37",
75
+ "@itwin/core-bentley": "^3.2.0-dev.40",
76
+ "@itwin/core-geometry": "^3.2.0-dev.40",
77
+ "@itwin/core-common": "^3.2.0-dev.40",
78
+ "@itwin/core-frontend": "^3.2.0-dev.40",
79
+ "@itwin/core-quantity": "^3.2.0-dev.40",
80
+ "@itwin/appui-abstract": "^3.2.0-dev.40",
81
+ "@itwin/components-react": "^3.2.0-dev.40",
82
+ "@itwin/core-react": "^3.2.0-dev.40",
83
+ "@itwin/appui-react": "^3.2.0-dev.40",
84
+ "@itwin/imodel-components-react": "^3.2.0-dev.40",
85
+ "@itwin/appui-layout-react": "^3.2.0-dev.40",
86
86
  "react": "^17.0.0",
87
87
  "react-dom": "^17.0.0"
88
88
  },