@splunk/visualization-context 28.8.0 → 28.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/GeoRegistry.js CHANGED
@@ -69,6 +69,7 @@ __reExport(i18n_exports, require("@splunk/ui-utils/i18n"));
69
69
  var i18n_default = "default" in defaultImport ? defaultImport.default : defaultImport;
70
70
 
71
71
  // src/BaseRegistry.ts
72
+ var DEFAULT_LIST_IDS_OPTIONS = { offset: 0, count: 100 };
72
73
  var BaseRegistry = class _BaseRegistry {
73
74
  constructor() {
74
75
  __publicField(this, "cachedProviders");
@@ -154,7 +155,7 @@ var BaseRegistry = class _BaseRegistry {
154
155
  * check whether src is a http url or a url used for icon/image-registry (e.g. 'kvstore://image123')
155
156
  */
156
157
  isResourceURL(url) {
157
- if (!url || url.indexOf("://") < 0) {
158
+ if (!(url == null ? void 0 : url.includes("://"))) {
158
159
  return false;
159
160
  }
160
161
  const { type } = this.parseURL(url);
@@ -226,7 +227,7 @@ var BaseRegistry = class _BaseRegistry {
226
227
  * @returns {Array} ids
227
228
  */
228
229
  listIds(_0) {
229
- return __async(this, arguments, function* (providerType, options = { offset: 0, count: 100 }) {
230
+ return __async(this, arguments, function* (providerType, options = DEFAULT_LIST_IDS_OPTIONS) {
230
231
  const provider = this.findProvider(providerType);
231
232
  const ids = yield provider.listIds(options);
232
233
  return ids;
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["src/GeoRegistry.ts", "esm-externals:@splunk/ui-utils/i18n", "src/BaseRegistry.ts"],
4
- "sourcesContent": ["/* eslint-disable class-methods-use-this */\nimport { _ } from '@splunk/ui-utils/i18n';\nimport BaseRegistry from './BaseRegistry';\n\nclass GeoRegistry extends BaseRegistry {\n static create() {\n return new GeoRegistry();\n }\n\n /*\n * parse url\n * @params {String} url the valid url should be geo://default/us\n * @return {Object}\n * {String} providerType 'geo'\n * {String} mapId 'us' or 'world' for now\n */\n parseURL(url) {\n const urlPattern = /^[A-Za-z0-9+.-]+:\\/\\/[^/]+\\/[^/]+$/;\n if (typeof url !== 'string' || !urlPattern.test(url)) {\n throw new Error(_('Invalid url.'));\n }\n\n const [providerType, geoId] = url.split('://');\n const [storageType, mapId] = geoId.split('/');\n return { id: undefined, type: undefined, providerType, storageType, mapId };\n }\n\n /*\n * get geoJson by url\n * @params {String} url e.g. geo://default/us\n * @return {Json} geoJson\n */\n async getByURL(url) {\n try {\n const { providerType, storageType, mapId } = this.parseURL(url);\n const provider = this.findProvider(providerType);\n const geoJson = await provider.getById({ storageType, mapId });\n return geoJson;\n } catch (error) {\n throw new Error(_('Cannot get geoJson data.'));\n }\n }\n\n /*\n * list all available geojson ids\n * @params {Object}\n * @params {String} providerType\n * @params {Object} options\n * @return {Array} ids [{id: \"us\", url: 'geo://default/us'}, {id: 'world', url: 'geo://default/world'}]\n */\n async listIds({ providerType = 'geo', options = { offset: 0, count: 100 } }) {\n const provider = this.findProvider(providerType);\n const ids = await provider.listIds(options);\n return ids;\n }\n}\n\nexport default GeoRegistry;\n", "\nimport * as defaultImport from \"@splunk/ui-utils/i18n\";\nexport * from \"@splunk/ui-utils/i18n\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "/* eslint-disable class-methods-use-this */\nimport { _ } from '@splunk/ui-utils/i18n';\nimport Provider from './Provider';\n\n/**\n * Base Registry\n */\nclass BaseRegistry {\n cachedProviders: Record<string, Provider>;\n\n defaultProvider: Provider | null;\n\n constructor() {\n this.cachedProviders = {};\n this.defaultProvider = null;\n }\n\n static create() {\n return new BaseRegistry();\n }\n\n /**\n * check whether user defined provider extends the base provider\n * @param {Provider} provider\n * @returns {Boolean}\n */\n isValidProvider(provider) {\n const hasProviderInterface =\n provider &&\n typeof provider.getType === 'function' &&\n typeof provider.listIds === 'function' &&\n typeof provider.upload === 'function' &&\n typeof provider.getById === 'function' &&\n typeof provider.deleteById === 'function';\n\n if (hasProviderInterface) {\n return true;\n }\n throw new Error(_('Invalid Provider'));\n }\n\n /**\n * add default provider to cache\n * @param {Provider} provider\n */\n addDefaultProvider(provider) {\n if (this.isValidProvider(provider)) {\n this.addProvider(provider);\n this.defaultProvider = provider;\n }\n }\n\n /**\n * add provider to cache\n * @param {Provider} provider\n */\n addProvider(provider) {\n if (this.isValidProvider(provider)) {\n if (this.cachedProviders[provider.getType()]) {\n // eslint-disable-next-line no-console\n console.warn(`The provider \"${provider.getType()}\" existed already.`);\n }\n this.cachedProviders[provider.getType()] = provider;\n }\n }\n\n /**\n * delete provider\n * @param {String} providerType\n */\n deleteProvider(providerType) {\n const cachedProvider = this.cachedProviders[providerType];\n if (!cachedProvider) {\n // eslint-disable-next-line no-console\n console.warn(`The provider \"${providerType}\" does not existed`);\n return;\n }\n\n if (this.defaultProvider && providerType === this.defaultProvider.getType()) {\n this.defaultProvider = null;\n }\n delete this.cachedProviders[providerType];\n }\n\n /**\n * find provider from cache\n * @param {String} type\n * @returns {Provider} provider\n */\n findProvider(type) {\n const provider = this.cachedProviders[type];\n if (provider) {\n return provider;\n }\n throw new Error(_('Provider not found'));\n }\n\n /**\n * list all providers\n * @return {Object} provider = { type: 'local', isDefault: true }\n */\n listProviders() {\n return Object.keys(this.cachedProviders).map(type => ({\n type,\n isDefault: type === this.defaultProvider.getType(),\n }));\n }\n\n /**\n * check whether src is a http url or a url used for icon/image-registry (e.g. 'kvstore://image123')\n */\n isResourceURL(url) {\n if (!url || url.indexOf('://') < 0) {\n return false;\n }\n\n const { type } = this.parseURL(url);\n return type !== 'http' && type !== 'https';\n }\n\n /**\n * parse provider type and id from the url\n * @params {String} url 'kvstore://image123'\n * @returns {Object} obj\n * @returns {String} obj.type 'kvstore'\n * @returns {String} obj.id 'image123'\n */\n parseURL(url) {\n if (url) {\n const [type, id] = url.split('://');\n\n if (type && id) {\n return { type, id };\n }\n }\n throw new Error(_('Invalid url'));\n }\n\n /**\n * upload\n * @param {DataURI} dataURI\n * @param {Object} metaData\n * @param {String} providerType e.g. 'kvstore' or 'sui' or 'local'\n * @returns {String} id e.g. 'kvstore://image123'\n */\n async upload(dataURI, metaData, providerType) {\n if (providerType == null && this.defaultProvider == null) {\n throw new Error(_('No valid provider was found. Please add a provider'));\n }\n const provider = providerType ? this.findProvider(providerType) : this.defaultProvider;\n const id = await provider.upload(dataURI, metaData);\n return `${provider.getType()}://${id}`;\n }\n\n /**\n * get object by url\n * @param {String} url 'kvstore://image123'\n * @returns {Object} obj e.g. an image object or icon\n */\n async getByURL(url) {\n const { type, id } = this.parseURL(url);\n const provider = this.findProvider(type);\n const obj = await provider.getById(id);\n return obj;\n }\n\n /**\n * delete object by url\n * @param {String} url 'kvstore://image123' || 'sui://icon123'\n * @returns {Object} obj e.g. an image object or icon\n */\n async deleteByURL(url) {\n const { type, id } = this.parseURL(url);\n const provider = this.findProvider(type);\n const obj = await provider.deleteById(id);\n return obj;\n }\n\n /**\n * list all object ids\n * @params {String} providerType e.g. 'kvstore' or 'sui'\n * @params {Object} options\n * @returns {Array} ids\n */\n async listIds(providerType, options = { offset: 0, count: 100 }) {\n const provider = this.findProvider(providerType);\n const ids = await provider.listIds(options);\n return ids;\n }\n}\n\nexport default BaseRegistry;\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["/* eslint-disable class-methods-use-this */\nimport { _ } from '@splunk/ui-utils/i18n';\nimport BaseRegistry from './BaseRegistry';\n\nclass GeoRegistry extends BaseRegistry {\n static create() {\n return new GeoRegistry();\n }\n\n /*\n * parse url\n * @params {String} url the valid url should be geo://default/us\n * @return {Object}\n * {String} providerType 'geo'\n * {String} mapId 'us' or 'world' for now\n */\n parseURL(url) {\n const urlPattern = /^[A-Za-z0-9+.-]+:\\/\\/[^/]+\\/[^/]+$/;\n if (typeof url !== 'string' || !urlPattern.test(url)) {\n throw new Error(_('Invalid url.'));\n }\n\n const [providerType, geoId] = url.split('://');\n const [storageType, mapId] = geoId.split('/');\n return { id: undefined, type: undefined, providerType, storageType, mapId };\n }\n\n /*\n * get geoJson by url\n * @params {String} url e.g. geo://default/us\n * @return {Json} geoJson\n */\n async getByURL(url) {\n try {\n const { providerType, storageType, mapId } = this.parseURL(url);\n const provider = this.findProvider(providerType);\n const geoJson = await provider.getById({ storageType, mapId });\n return geoJson;\n } catch (error) /* NOSONAR - original error intentionally not chained; this package is consumed outside this repo, so we can't be sure a downstream caller won't log the thrown error verbatim */ {\n throw new Error(_('Cannot get geoJson data.'));\n }\n }\n\n /*\n * list all available geojson ids\n * @params {Object}\n * @params {String} providerType\n * @params {Object} options\n * @return {Array} ids [{id: \"us\", url: 'geo://default/us'}, {id: 'world', url: 'geo://default/world'}]\n */\n async listIds({ providerType = 'geo', options = { offset: 0, count: 100 } }) {\n const provider = this.findProvider(providerType);\n const ids = await provider.listIds(options);\n return ids;\n }\n}\n\nexport default GeoRegistry;\n", "\nimport * as defaultImport from \"@splunk/ui-utils/i18n\";\nexport * from \"@splunk/ui-utils/i18n\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "/* eslint-disable class-methods-use-this */\nimport { _ } from '@splunk/ui-utils/i18n';\nimport Provider from './Provider';\n\nconst DEFAULT_LIST_IDS_OPTIONS = { offset: 0, count: 100 };\n\n/**\n * Base Registry\n */\nclass BaseRegistry {\n cachedProviders: Record<string, Provider>;\n\n defaultProvider: Provider | null;\n\n constructor() {\n this.cachedProviders = {};\n this.defaultProvider = null;\n }\n\n static create() {\n return new BaseRegistry();\n }\n\n /**\n * check whether user defined provider extends the base provider\n * @param {Provider} provider\n * @returns {Boolean}\n */\n isValidProvider(provider) {\n const hasProviderInterface =\n provider &&\n typeof provider.getType === 'function' &&\n typeof provider.listIds === 'function' &&\n typeof provider.upload === 'function' &&\n typeof provider.getById === 'function' &&\n typeof provider.deleteById === 'function';\n\n if (hasProviderInterface) {\n return true;\n }\n throw new Error(_('Invalid Provider'));\n }\n\n /**\n * add default provider to cache\n * @param {Provider} provider\n */\n addDefaultProvider(provider) {\n if (this.isValidProvider(provider)) {\n this.addProvider(provider);\n this.defaultProvider = provider;\n }\n }\n\n /**\n * add provider to cache\n * @param {Provider} provider\n */\n addProvider(provider) {\n if (this.isValidProvider(provider)) {\n if (this.cachedProviders[provider.getType()]) {\n // eslint-disable-next-line no-console\n console.warn(`The provider \"${provider.getType()}\" existed already.`);\n }\n this.cachedProviders[provider.getType()] = provider;\n }\n }\n\n /**\n * delete provider\n * @param {String} providerType\n */\n deleteProvider(providerType) {\n const cachedProvider = this.cachedProviders[providerType];\n if (!cachedProvider) {\n // eslint-disable-next-line no-console\n console.warn(`The provider \"${providerType}\" does not existed`);\n return;\n }\n\n if (this.defaultProvider && providerType === this.defaultProvider.getType()) {\n this.defaultProvider = null;\n }\n delete this.cachedProviders[providerType];\n }\n\n /**\n * find provider from cache\n * @param {String} type\n * @returns {Provider} provider\n */\n findProvider(type) {\n const provider = this.cachedProviders[type];\n if (provider) {\n return provider;\n }\n throw new Error(_('Provider not found'));\n }\n\n /**\n * list all providers\n * @return {Object} provider = { type: 'local', isDefault: true }\n */\n listProviders() {\n return Object.keys(this.cachedProviders).map(type => ({\n type,\n isDefault: type === this.defaultProvider.getType(),\n }));\n }\n\n /**\n * check whether src is a http url or a url used for icon/image-registry (e.g. 'kvstore://image123')\n */\n isResourceURL(url) {\n if (!url?.includes('://')) {\n return false;\n }\n\n const { type } = this.parseURL(url);\n return type !== 'http' && type !== 'https';\n }\n\n /**\n * parse provider type and id from the url\n * @params {String} url 'kvstore://image123'\n * @returns {Object} obj\n * @returns {String} obj.type 'kvstore'\n * @returns {String} obj.id 'image123'\n */\n parseURL(url) {\n if (url) {\n const [type, id] = url.split('://');\n\n if (type && id) {\n return { type, id };\n }\n }\n throw new Error(_('Invalid url'));\n }\n\n /**\n * upload\n * @param {DataURI} dataURI\n * @param {Object} metaData\n * @param {String} providerType e.g. 'kvstore' or 'sui' or 'local'\n * @returns {String} id e.g. 'kvstore://image123'\n */\n async upload(dataURI, metaData, providerType) {\n if (providerType == null && this.defaultProvider == null) {\n throw new Error(_('No valid provider was found. Please add a provider'));\n }\n const provider = providerType ? this.findProvider(providerType) : this.defaultProvider;\n const id = await provider.upload(dataURI, metaData);\n return `${provider.getType()}://${id}`;\n }\n\n /**\n * get object by url\n * @param {String} url 'kvstore://image123'\n * @returns {Object} obj e.g. an image object or icon\n */\n async getByURL(url) {\n const { type, id } = this.parseURL(url);\n const provider = this.findProvider(type);\n const obj = await provider.getById(id);\n return obj;\n }\n\n /**\n * delete object by url\n * @param {String} url 'kvstore://image123' || 'sui://icon123'\n * @returns {Object} obj e.g. an image object or icon\n */\n async deleteByURL(url) {\n const { type, id } = this.parseURL(url);\n const provider = this.findProvider(type);\n const obj = await provider.deleteById(id);\n return obj;\n }\n\n /**\n * list all object ids\n * @params {String} providerType e.g. 'kvstore' or 'sui'\n * @params {Object} options\n * @returns {Array} ids\n */\n async listIds(providerType, options = DEFAULT_LIST_IDS_OPTIONS) {\n const provider = this.findProvider(providerType);\n const ids = await provider.listIds(options);\n return ids;\n }\n}\n\nexport default BaseRegistry;\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
package/IconContext.js CHANGED
@@ -50,7 +50,7 @@ var react_default = "default" in defaultImport ? defaultImport.default : default
50
50
 
51
51
  // src/IconContext.tsx
52
52
  var IconContext = react_exports.createContext({});
53
- IconContext.displayName = `data-splunk-visualization-version-IconContext-${"28.8.0 - 633c53372"}`;
53
+ IconContext.displayName = `data-splunk-visualization-version-IconContext-${"28.9.0 - 96b03188d"}`;
54
54
  var IconContextProvider = IconContext.Provider;
55
55
  var IconContextConsumer = IconContext.Consumer;
56
56
  var IconContext_default = IconContext;
package/IconRegistry.js CHANGED
@@ -69,6 +69,7 @@ __reExport(i18n_exports, require("@splunk/ui-utils/i18n"));
69
69
  var i18n_default = "default" in defaultImport ? defaultImport.default : defaultImport;
70
70
 
71
71
  // src/BaseRegistry.ts
72
+ var DEFAULT_LIST_IDS_OPTIONS = { offset: 0, count: 100 };
72
73
  var BaseRegistry = class _BaseRegistry {
73
74
  constructor() {
74
75
  __publicField(this, "cachedProviders");
@@ -154,7 +155,7 @@ var BaseRegistry = class _BaseRegistry {
154
155
  * check whether src is a http url or a url used for icon/image-registry (e.g. 'kvstore://image123')
155
156
  */
156
157
  isResourceURL(url) {
157
- if (!url || url.indexOf("://") < 0) {
158
+ if (!(url == null ? void 0 : url.includes("://"))) {
158
159
  return false;
159
160
  }
160
161
  const { type } = this.parseURL(url);
@@ -226,7 +227,7 @@ var BaseRegistry = class _BaseRegistry {
226
227
  * @returns {Array} ids
227
228
  */
228
229
  listIds(_0) {
229
- return __async(this, arguments, function* (providerType, options = { offset: 0, count: 100 }) {
230
+ return __async(this, arguments, function* (providerType, options = DEFAULT_LIST_IDS_OPTIONS) {
230
231
  const provider = this.findProvider(providerType);
231
232
  const ids = yield provider.listIds(options);
232
233
  return ids;
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["src/IconRegistry.ts", "esm-externals:@splunk/ui-utils/i18n", "src/BaseRegistry.ts"],
4
- "sourcesContent": ["/* eslint-disable class-methods-use-this */\nimport { _ } from '@splunk/ui-utils/i18n';\nimport BaseRegistry from './BaseRegistry';\n\n/**\n * Icon Registry\n */\nclass IconRegistry extends BaseRegistry {\n static create() {\n return new IconRegistry();\n }\n\n static readonly VALID_MEDIA_TYPES = ['svg'];\n\n /**\n * check if the the media type from the dataURI belongs to the supported types\n * @param {DataURI} dataURI\n * @returns {Boolean}\n */\n isValidMediaType(dataURI) {\n return IconRegistry.VALID_MEDIA_TYPES.some(type => dataURI.includes(`image/${type}`));\n }\n\n /**\n * upload image if the image format is supported\n * @param {DataURI} dataURI\n * @param {Object} metaData\n * @param {String} providerType e.g. 'kvstore', or 'sui'\n * @returns {String} id e.g. 'kvstore://image123'\n */\n upload(dataURI, metaData, providerType) {\n if (!this.isValidMediaType(dataURI)) {\n throw new Error(_('The format of the uploaded file is not supported. Please upload svg file.'));\n }\n\n return super.upload(dataURI, metaData, providerType);\n }\n}\n\nexport default IconRegistry;\n", "\nimport * as defaultImport from \"@splunk/ui-utils/i18n\";\nexport * from \"@splunk/ui-utils/i18n\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "/* eslint-disable class-methods-use-this */\nimport { _ } from '@splunk/ui-utils/i18n';\nimport Provider from './Provider';\n\n/**\n * Base Registry\n */\nclass BaseRegistry {\n cachedProviders: Record<string, Provider>;\n\n defaultProvider: Provider | null;\n\n constructor() {\n this.cachedProviders = {};\n this.defaultProvider = null;\n }\n\n static create() {\n return new BaseRegistry();\n }\n\n /**\n * check whether user defined provider extends the base provider\n * @param {Provider} provider\n * @returns {Boolean}\n */\n isValidProvider(provider) {\n const hasProviderInterface =\n provider &&\n typeof provider.getType === 'function' &&\n typeof provider.listIds === 'function' &&\n typeof provider.upload === 'function' &&\n typeof provider.getById === 'function' &&\n typeof provider.deleteById === 'function';\n\n if (hasProviderInterface) {\n return true;\n }\n throw new Error(_('Invalid Provider'));\n }\n\n /**\n * add default provider to cache\n * @param {Provider} provider\n */\n addDefaultProvider(provider) {\n if (this.isValidProvider(provider)) {\n this.addProvider(provider);\n this.defaultProvider = provider;\n }\n }\n\n /**\n * add provider to cache\n * @param {Provider} provider\n */\n addProvider(provider) {\n if (this.isValidProvider(provider)) {\n if (this.cachedProviders[provider.getType()]) {\n // eslint-disable-next-line no-console\n console.warn(`The provider \"${provider.getType()}\" existed already.`);\n }\n this.cachedProviders[provider.getType()] = provider;\n }\n }\n\n /**\n * delete provider\n * @param {String} providerType\n */\n deleteProvider(providerType) {\n const cachedProvider = this.cachedProviders[providerType];\n if (!cachedProvider) {\n // eslint-disable-next-line no-console\n console.warn(`The provider \"${providerType}\" does not existed`);\n return;\n }\n\n if (this.defaultProvider && providerType === this.defaultProvider.getType()) {\n this.defaultProvider = null;\n }\n delete this.cachedProviders[providerType];\n }\n\n /**\n * find provider from cache\n * @param {String} type\n * @returns {Provider} provider\n */\n findProvider(type) {\n const provider = this.cachedProviders[type];\n if (provider) {\n return provider;\n }\n throw new Error(_('Provider not found'));\n }\n\n /**\n * list all providers\n * @return {Object} provider = { type: 'local', isDefault: true }\n */\n listProviders() {\n return Object.keys(this.cachedProviders).map(type => ({\n type,\n isDefault: type === this.defaultProvider.getType(),\n }));\n }\n\n /**\n * check whether src is a http url or a url used for icon/image-registry (e.g. 'kvstore://image123')\n */\n isResourceURL(url) {\n if (!url || url.indexOf('://') < 0) {\n return false;\n }\n\n const { type } = this.parseURL(url);\n return type !== 'http' && type !== 'https';\n }\n\n /**\n * parse provider type and id from the url\n * @params {String} url 'kvstore://image123'\n * @returns {Object} obj\n * @returns {String} obj.type 'kvstore'\n * @returns {String} obj.id 'image123'\n */\n parseURL(url) {\n if (url) {\n const [type, id] = url.split('://');\n\n if (type && id) {\n return { type, id };\n }\n }\n throw new Error(_('Invalid url'));\n }\n\n /**\n * upload\n * @param {DataURI} dataURI\n * @param {Object} metaData\n * @param {String} providerType e.g. 'kvstore' or 'sui' or 'local'\n * @returns {String} id e.g. 'kvstore://image123'\n */\n async upload(dataURI, metaData, providerType) {\n if (providerType == null && this.defaultProvider == null) {\n throw new Error(_('No valid provider was found. Please add a provider'));\n }\n const provider = providerType ? this.findProvider(providerType) : this.defaultProvider;\n const id = await provider.upload(dataURI, metaData);\n return `${provider.getType()}://${id}`;\n }\n\n /**\n * get object by url\n * @param {String} url 'kvstore://image123'\n * @returns {Object} obj e.g. an image object or icon\n */\n async getByURL(url) {\n const { type, id } = this.parseURL(url);\n const provider = this.findProvider(type);\n const obj = await provider.getById(id);\n return obj;\n }\n\n /**\n * delete object by url\n * @param {String} url 'kvstore://image123' || 'sui://icon123'\n * @returns {Object} obj e.g. an image object or icon\n */\n async deleteByURL(url) {\n const { type, id } = this.parseURL(url);\n const provider = this.findProvider(type);\n const obj = await provider.deleteById(id);\n return obj;\n }\n\n /**\n * list all object ids\n * @params {String} providerType e.g. 'kvstore' or 'sui'\n * @params {Object} options\n * @returns {Array} ids\n */\n async listIds(providerType, options = { offset: 0, count: 100 }) {\n const provider = this.findProvider(providerType);\n const ids = await provider.listIds(options);\n return ids;\n }\n}\n\nexport default BaseRegistry;\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["/* eslint-disable class-methods-use-this */\nimport { _ } from '@splunk/ui-utils/i18n';\nimport BaseRegistry from './BaseRegistry';\n\n/**\n * Icon Registry\n */\nclass IconRegistry extends BaseRegistry {\n static create() {\n return new IconRegistry();\n }\n\n static readonly VALID_MEDIA_TYPES = ['svg'];\n\n /**\n * check if the the media type from the dataURI belongs to the supported types\n * @param {DataURI} dataURI\n * @returns {Boolean}\n */\n isValidMediaType(dataURI) {\n return IconRegistry.VALID_MEDIA_TYPES.some(type => dataURI.includes(`image/${type}`));\n }\n\n /**\n * upload image if the image format is supported\n * @param {DataURI} dataURI\n * @param {Object} metaData\n * @param {String} providerType e.g. 'kvstore', or 'sui'\n * @returns {String} id e.g. 'kvstore://image123'\n */\n upload(dataURI, metaData, providerType) {\n if (!this.isValidMediaType(dataURI)) {\n throw new Error(_('The format of the uploaded file is not supported. Please upload svg file.'));\n }\n\n return super.upload(dataURI, metaData, providerType);\n }\n}\n\nexport default IconRegistry;\n", "\nimport * as defaultImport from \"@splunk/ui-utils/i18n\";\nexport * from \"@splunk/ui-utils/i18n\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "/* eslint-disable class-methods-use-this */\nimport { _ } from '@splunk/ui-utils/i18n';\nimport Provider from './Provider';\n\nconst DEFAULT_LIST_IDS_OPTIONS = { offset: 0, count: 100 };\n\n/**\n * Base Registry\n */\nclass BaseRegistry {\n cachedProviders: Record<string, Provider>;\n\n defaultProvider: Provider | null;\n\n constructor() {\n this.cachedProviders = {};\n this.defaultProvider = null;\n }\n\n static create() {\n return new BaseRegistry();\n }\n\n /**\n * check whether user defined provider extends the base provider\n * @param {Provider} provider\n * @returns {Boolean}\n */\n isValidProvider(provider) {\n const hasProviderInterface =\n provider &&\n typeof provider.getType === 'function' &&\n typeof provider.listIds === 'function' &&\n typeof provider.upload === 'function' &&\n typeof provider.getById === 'function' &&\n typeof provider.deleteById === 'function';\n\n if (hasProviderInterface) {\n return true;\n }\n throw new Error(_('Invalid Provider'));\n }\n\n /**\n * add default provider to cache\n * @param {Provider} provider\n */\n addDefaultProvider(provider) {\n if (this.isValidProvider(provider)) {\n this.addProvider(provider);\n this.defaultProvider = provider;\n }\n }\n\n /**\n * add provider to cache\n * @param {Provider} provider\n */\n addProvider(provider) {\n if (this.isValidProvider(provider)) {\n if (this.cachedProviders[provider.getType()]) {\n // eslint-disable-next-line no-console\n console.warn(`The provider \"${provider.getType()}\" existed already.`);\n }\n this.cachedProviders[provider.getType()] = provider;\n }\n }\n\n /**\n * delete provider\n * @param {String} providerType\n */\n deleteProvider(providerType) {\n const cachedProvider = this.cachedProviders[providerType];\n if (!cachedProvider) {\n // eslint-disable-next-line no-console\n console.warn(`The provider \"${providerType}\" does not existed`);\n return;\n }\n\n if (this.defaultProvider && providerType === this.defaultProvider.getType()) {\n this.defaultProvider = null;\n }\n delete this.cachedProviders[providerType];\n }\n\n /**\n * find provider from cache\n * @param {String} type\n * @returns {Provider} provider\n */\n findProvider(type) {\n const provider = this.cachedProviders[type];\n if (provider) {\n return provider;\n }\n throw new Error(_('Provider not found'));\n }\n\n /**\n * list all providers\n * @return {Object} provider = { type: 'local', isDefault: true }\n */\n listProviders() {\n return Object.keys(this.cachedProviders).map(type => ({\n type,\n isDefault: type === this.defaultProvider.getType(),\n }));\n }\n\n /**\n * check whether src is a http url or a url used for icon/image-registry (e.g. 'kvstore://image123')\n */\n isResourceURL(url) {\n if (!url?.includes('://')) {\n return false;\n }\n\n const { type } = this.parseURL(url);\n return type !== 'http' && type !== 'https';\n }\n\n /**\n * parse provider type and id from the url\n * @params {String} url 'kvstore://image123'\n * @returns {Object} obj\n * @returns {String} obj.type 'kvstore'\n * @returns {String} obj.id 'image123'\n */\n parseURL(url) {\n if (url) {\n const [type, id] = url.split('://');\n\n if (type && id) {\n return { type, id };\n }\n }\n throw new Error(_('Invalid url'));\n }\n\n /**\n * upload\n * @param {DataURI} dataURI\n * @param {Object} metaData\n * @param {String} providerType e.g. 'kvstore' or 'sui' or 'local'\n * @returns {String} id e.g. 'kvstore://image123'\n */\n async upload(dataURI, metaData, providerType) {\n if (providerType == null && this.defaultProvider == null) {\n throw new Error(_('No valid provider was found. Please add a provider'));\n }\n const provider = providerType ? this.findProvider(providerType) : this.defaultProvider;\n const id = await provider.upload(dataURI, metaData);\n return `${provider.getType()}://${id}`;\n }\n\n /**\n * get object by url\n * @param {String} url 'kvstore://image123'\n * @returns {Object} obj e.g. an image object or icon\n */\n async getByURL(url) {\n const { type, id } = this.parseURL(url);\n const provider = this.findProvider(type);\n const obj = await provider.getById(id);\n return obj;\n }\n\n /**\n * delete object by url\n * @param {String} url 'kvstore://image123' || 'sui://icon123'\n * @returns {Object} obj e.g. an image object or icon\n */\n async deleteByURL(url) {\n const { type, id } = this.parseURL(url);\n const provider = this.findProvider(type);\n const obj = await provider.deleteById(id);\n return obj;\n }\n\n /**\n * list all object ids\n * @params {String} providerType e.g. 'kvstore' or 'sui'\n * @params {Object} options\n * @returns {Array} ids\n */\n async listIds(providerType, options = DEFAULT_LIST_IDS_OPTIONS) {\n const provider = this.findProvider(providerType);\n const ids = await provider.listIds(options);\n return ids;\n }\n}\n\nexport default BaseRegistry;\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
package/ImageContext.js CHANGED
@@ -50,7 +50,7 @@ var react_default = "default" in defaultImport ? defaultImport.default : default
50
50
 
51
51
  // src/ImageContext.tsx
52
52
  var ImageContext = react_exports.createContext({});
53
- ImageContext.displayName = `data-splunk-visualization-version-ImageContext-${"28.8.0 - 633c53372"}`;
53
+ ImageContext.displayName = `data-splunk-visualization-version-ImageContext-${"28.9.0 - 96b03188d"}`;
54
54
  var ImageContextProvider = ImageContext.Provider;
55
55
  var ImageContextConsumer = ImageContext.Consumer;
56
56
  var ImageContext_default = ImageContext;
package/ImageRegistry.js CHANGED
@@ -69,6 +69,7 @@ __reExport(i18n_exports, require("@splunk/ui-utils/i18n"));
69
69
  var i18n_default = "default" in defaultImport ? defaultImport.default : defaultImport;
70
70
 
71
71
  // src/BaseRegistry.ts
72
+ var DEFAULT_LIST_IDS_OPTIONS = { offset: 0, count: 100 };
72
73
  var BaseRegistry = class _BaseRegistry {
73
74
  constructor() {
74
75
  __publicField(this, "cachedProviders");
@@ -154,7 +155,7 @@ var BaseRegistry = class _BaseRegistry {
154
155
  * check whether src is a http url or a url used for icon/image-registry (e.g. 'kvstore://image123')
155
156
  */
156
157
  isResourceURL(url) {
157
- if (!url || url.indexOf("://") < 0) {
158
+ if (!(url == null ? void 0 : url.includes("://"))) {
158
159
  return false;
159
160
  }
160
161
  const { type } = this.parseURL(url);
@@ -226,7 +227,7 @@ var BaseRegistry = class _BaseRegistry {
226
227
  * @returns {Array} ids
227
228
  */
228
229
  listIds(_0) {
229
- return __async(this, arguments, function* (providerType, options = { offset: 0, count: 100 }) {
230
+ return __async(this, arguments, function* (providerType, options = DEFAULT_LIST_IDS_OPTIONS) {
230
231
  const provider = this.findProvider(providerType);
231
232
  const ids = yield provider.listIds(options);
232
233
  return ids;
@@ -247,8 +248,8 @@ var _ImageRegistry = class _ImageRegistry extends BaseRegistry_default {
247
248
  */
248
249
  isValidMediaType(dataURI, validMediaType = _ImageRegistry.VALID_MEDIA_TYPES) {
249
250
  return validMediaType.some((type) => {
250
- const mediaType = type === "svg" ? `${type}\\+xml` : type;
251
- const regex = `^data:image\\/${mediaType};base64,.*$`;
251
+ const mediaType = type === "svg" ? String.raw`${type}\+xml` : type;
252
+ const regex = String.raw`^data:image\/${mediaType};base64,.*$`;
252
253
  return new RegExp(regex).test(dataURI);
253
254
  });
254
255
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["src/ImageRegistry.ts", "esm-externals:@splunk/ui-utils/i18n", "src/BaseRegistry.ts"],
4
- "sourcesContent": ["/* eslint-disable class-methods-use-this */\nimport { _ } from '@splunk/ui-utils/i18n';\nimport BaseRegistry from './BaseRegistry';\n\n/**\n * Image Registry\n */\nclass ImageRegistry extends BaseRegistry {\n static create() {\n return new ImageRegistry();\n }\n\n static readonly VALID_MEDIA_TYPES = ['png', 'jpeg', 'svg', 'gif', 'webp'];\n\n /**\n * check if the the media type from the dataURI belongs to the supported types\n * @param {DataURI} dataURI\n * @returns {Boolean}\n */\n isValidMediaType(dataURI, validMediaType = ImageRegistry.VALID_MEDIA_TYPES) {\n return validMediaType.some(type => {\n const mediaType = type === 'svg' ? `${type}\\\\+xml` : type;\n const regex = `^data:image\\\\/${mediaType};base64,.*$`;\n return new RegExp(regex).test(dataURI);\n });\n }\n\n /**\n * upload image if the image format is supported\n * @param {DataURI} dataURI\n * @param {Object} metaData\n * @param {String} providerType e.g. 'kvstore', or 'sui'\n * @returns {String} id e.g. 'kvstore://image123'\n */\n upload(dataURI, metaData, providerType, validMediaType = ImageRegistry.VALID_MEDIA_TYPES) {\n if (!this.isValidMediaType(dataURI, validMediaType)) {\n throw new Error(\n _(\n `The format of the uploaded file is not supported. Please upload ${validMediaType.join(\n ', '\n )}.`\n )\n );\n }\n\n return super.upload(dataURI, metaData, providerType);\n }\n}\n\nexport default ImageRegistry;\n", "\nimport * as defaultImport from \"@splunk/ui-utils/i18n\";\nexport * from \"@splunk/ui-utils/i18n\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "/* eslint-disable class-methods-use-this */\nimport { _ } from '@splunk/ui-utils/i18n';\nimport Provider from './Provider';\n\n/**\n * Base Registry\n */\nclass BaseRegistry {\n cachedProviders: Record<string, Provider>;\n\n defaultProvider: Provider | null;\n\n constructor() {\n this.cachedProviders = {};\n this.defaultProvider = null;\n }\n\n static create() {\n return new BaseRegistry();\n }\n\n /**\n * check whether user defined provider extends the base provider\n * @param {Provider} provider\n * @returns {Boolean}\n */\n isValidProvider(provider) {\n const hasProviderInterface =\n provider &&\n typeof provider.getType === 'function' &&\n typeof provider.listIds === 'function' &&\n typeof provider.upload === 'function' &&\n typeof provider.getById === 'function' &&\n typeof provider.deleteById === 'function';\n\n if (hasProviderInterface) {\n return true;\n }\n throw new Error(_('Invalid Provider'));\n }\n\n /**\n * add default provider to cache\n * @param {Provider} provider\n */\n addDefaultProvider(provider) {\n if (this.isValidProvider(provider)) {\n this.addProvider(provider);\n this.defaultProvider = provider;\n }\n }\n\n /**\n * add provider to cache\n * @param {Provider} provider\n */\n addProvider(provider) {\n if (this.isValidProvider(provider)) {\n if (this.cachedProviders[provider.getType()]) {\n // eslint-disable-next-line no-console\n console.warn(`The provider \"${provider.getType()}\" existed already.`);\n }\n this.cachedProviders[provider.getType()] = provider;\n }\n }\n\n /**\n * delete provider\n * @param {String} providerType\n */\n deleteProvider(providerType) {\n const cachedProvider = this.cachedProviders[providerType];\n if (!cachedProvider) {\n // eslint-disable-next-line no-console\n console.warn(`The provider \"${providerType}\" does not existed`);\n return;\n }\n\n if (this.defaultProvider && providerType === this.defaultProvider.getType()) {\n this.defaultProvider = null;\n }\n delete this.cachedProviders[providerType];\n }\n\n /**\n * find provider from cache\n * @param {String} type\n * @returns {Provider} provider\n */\n findProvider(type) {\n const provider = this.cachedProviders[type];\n if (provider) {\n return provider;\n }\n throw new Error(_('Provider not found'));\n }\n\n /**\n * list all providers\n * @return {Object} provider = { type: 'local', isDefault: true }\n */\n listProviders() {\n return Object.keys(this.cachedProviders).map(type => ({\n type,\n isDefault: type === this.defaultProvider.getType(),\n }));\n }\n\n /**\n * check whether src is a http url or a url used for icon/image-registry (e.g. 'kvstore://image123')\n */\n isResourceURL(url) {\n if (!url || url.indexOf('://') < 0) {\n return false;\n }\n\n const { type } = this.parseURL(url);\n return type !== 'http' && type !== 'https';\n }\n\n /**\n * parse provider type and id from the url\n * @params {String} url 'kvstore://image123'\n * @returns {Object} obj\n * @returns {String} obj.type 'kvstore'\n * @returns {String} obj.id 'image123'\n */\n parseURL(url) {\n if (url) {\n const [type, id] = url.split('://');\n\n if (type && id) {\n return { type, id };\n }\n }\n throw new Error(_('Invalid url'));\n }\n\n /**\n * upload\n * @param {DataURI} dataURI\n * @param {Object} metaData\n * @param {String} providerType e.g. 'kvstore' or 'sui' or 'local'\n * @returns {String} id e.g. 'kvstore://image123'\n */\n async upload(dataURI, metaData, providerType) {\n if (providerType == null && this.defaultProvider == null) {\n throw new Error(_('No valid provider was found. Please add a provider'));\n }\n const provider = providerType ? this.findProvider(providerType) : this.defaultProvider;\n const id = await provider.upload(dataURI, metaData);\n return `${provider.getType()}://${id}`;\n }\n\n /**\n * get object by url\n * @param {String} url 'kvstore://image123'\n * @returns {Object} obj e.g. an image object or icon\n */\n async getByURL(url) {\n const { type, id } = this.parseURL(url);\n const provider = this.findProvider(type);\n const obj = await provider.getById(id);\n return obj;\n }\n\n /**\n * delete object by url\n * @param {String} url 'kvstore://image123' || 'sui://icon123'\n * @returns {Object} obj e.g. an image object or icon\n */\n async deleteByURL(url) {\n const { type, id } = this.parseURL(url);\n const provider = this.findProvider(type);\n const obj = await provider.deleteById(id);\n return obj;\n }\n\n /**\n * list all object ids\n * @params {String} providerType e.g. 'kvstore' or 'sui'\n * @params {Object} options\n * @returns {Array} ids\n */\n async listIds(providerType, options = { offset: 0, count: 100 }) {\n const provider = this.findProvider(providerType);\n const ids = await provider.listIds(options);\n return ids;\n }\n}\n\nexport default BaseRegistry;\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA;AAAA;AAAA;AAAA;AACA,oBAA+B;AAC/B,yBAAc;AACd,IAAO,eAAS,aAAa,gBAA8B,wBAAU;;;ACIrE,IAAM,eAAN,MAAM,cAAa;AAAA,EAKf,cAAc;AAJd;AAEA;AAGI,SAAK,kBAAkB,CAAC;AACxB,SAAK,kBAAkB;AAAA,EAC3B;AAAA,EAEA,OAAO,SAAS;AACZ,WAAO,IAAI,cAAa;AAAA,EAC5B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,gBAAgB,UAAU;AACtB,UAAM,uBACF,YACA,OAAO,SAAS,YAAY,cAC5B,OAAO,SAAS,YAAY,cAC5B,OAAO,SAAS,WAAW,cAC3B,OAAO,SAAS,YAAY,cAC5B,OAAO,SAAS,eAAe;AAEnC,QAAI,sBAAsB;AACtB,aAAO;AAAA,IACX;AACA,UAAM,IAAI,UAAM,gBAAE,kBAAkB,CAAC;AAAA,EACzC;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,mBAAmB,UAAU;AACzB,QAAI,KAAK,gBAAgB,QAAQ,GAAG;AAChC,WAAK,YAAY,QAAQ;AACzB,WAAK,kBAAkB;AAAA,IAC3B;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,YAAY,UAAU;AAClB,QAAI,KAAK,gBAAgB,QAAQ,GAAG;AAChC,UAAI,KAAK,gBAAgB,SAAS,QAAQ,CAAC,GAAG;AAE1C,gBAAQ,KAAK,iBAAiB,SAAS,QAAQ,CAAC,oBAAoB;AAAA,MACxE;AACA,WAAK,gBAAgB,SAAS,QAAQ,CAAC,IAAI;AAAA,IAC/C;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,eAAe,cAAc;AACzB,UAAM,iBAAiB,KAAK,gBAAgB,YAAY;AACxD,QAAI,CAAC,gBAAgB;AAEjB,cAAQ,KAAK,iBAAiB,YAAY,oBAAoB;AAC9D;AAAA,IACJ;AAEA,QAAI,KAAK,mBAAmB,iBAAiB,KAAK,gBAAgB,QAAQ,GAAG;AACzE,WAAK,kBAAkB;AAAA,IAC3B;AACA,WAAO,KAAK,gBAAgB,YAAY;AAAA,EAC5C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,aAAa,MAAM;AACf,UAAM,WAAW,KAAK,gBAAgB,IAAI;AAC1C,QAAI,UAAU;AACV,aAAO;AAAA,IACX;AACA,UAAM,IAAI,UAAM,gBAAE,oBAAoB,CAAC;AAAA,EAC3C;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,gBAAgB;AACZ,WAAO,OAAO,KAAK,KAAK,eAAe,EAAE,IAAI,WAAS;AAAA,MAClD;AAAA,MACA,WAAW,SAAS,KAAK,gBAAgB,QAAQ;AAAA,IACrD,EAAE;AAAA,EACN;AAAA;AAAA;AAAA;AAAA,EAKA,cAAc,KAAK;AACf,QAAI,CAAC,OAAO,IAAI,QAAQ,KAAK,IAAI,GAAG;AAChC,aAAO;AAAA,IACX;AAEA,UAAM,EAAE,KAAK,IAAI,KAAK,SAAS,GAAG;AAClC,WAAO,SAAS,UAAU,SAAS;AAAA,EACvC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,SAAS,KAAK;AACV,QAAI,KAAK;AACL,YAAM,CAAC,MAAM,EAAE,IAAI,IAAI,MAAM,KAAK;AAElC,UAAI,QAAQ,IAAI;AACZ,eAAO,EAAE,MAAM,GAAG;AAAA,MACtB;AAAA,IACJ;AACA,UAAM,IAAI,UAAM,gBAAE,aAAa,CAAC;AAAA,EACpC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASM,OAAO,SAAS,UAAU,cAAc;AAAA;AAC1C,UAAI,gBAAgB,QAAQ,KAAK,mBAAmB,MAAM;AACtD,cAAM,IAAI,UAAM,gBAAE,oDAAoD,CAAC;AAAA,MAC3E;AACA,YAAM,WAAW,eAAe,KAAK,aAAa,YAAY,IAAI,KAAK;AACvE,YAAM,KAAK,MAAM,SAAS,OAAO,SAAS,QAAQ;AAClD,aAAO,GAAG,SAAS,QAAQ,CAAC,MAAM,EAAE;AAAA,IACxC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOM,SAAS,KAAK;AAAA;AAChB,YAAM,EAAE,MAAM,GAAG,IAAI,KAAK,SAAS,GAAG;AACtC,YAAM,WAAW,KAAK,aAAa,IAAI;AACvC,YAAM,MAAM,MAAM,SAAS,QAAQ,EAAE;AACrC,aAAO;AAAA,IACX;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOM,YAAY,KAAK;AAAA;AACnB,YAAM,EAAE,MAAM,GAAG,IAAI,KAAK,SAAS,GAAG;AACtC,YAAM,WAAW,KAAK,aAAa,IAAI;AACvC,YAAM,MAAM,MAAM,SAAS,WAAW,EAAE;AACxC,aAAO;AAAA,IACX;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQM,QAAQ,IAAmD;AAAA,+CAAnD,cAAc,UAAU,EAAE,QAAQ,GAAG,OAAO,IAAI,GAAG;AAC7D,YAAM,WAAW,KAAK,aAAa,YAAY;AAC/C,YAAM,MAAM,MAAM,SAAS,QAAQ,OAAO;AAC1C,aAAO;AAAA,IACX;AAAA;AACJ;AAEA,IAAO,uBAAQ;;;AFxLf,IAAM,iBAAN,MAAM,uBAAsB,qBAAa;AAAA,EACrC,OAAO,SAAS;AACZ,WAAO,IAAI,eAAc;AAAA,EAC7B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,iBAAiB,SAAS,iBAAiB,eAAc,mBAAmB;AACxE,WAAO,eAAe,KAAK,UAAQ;AAC/B,YAAM,YAAY,SAAS,QAAQ,GAAG,IAAI,WAAW;AACrD,YAAM,QAAQ,iBAAiB,SAAS;AACxC,aAAO,IAAI,OAAO,KAAK,EAAE,KAAK,OAAO;AAAA,IACzC,CAAC;AAAA,EACL;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,OAAO,SAAS,UAAU,cAAc,iBAAiB,eAAc,mBAAmB;AACtF,QAAI,CAAC,KAAK,iBAAiB,SAAS,cAAc,GAAG;AACjD,YAAM,IAAI;AAAA,YACN;AAAA,UACI,mEAAmE,eAAe;AAAA,YAC9E;AAAA,UACJ,CAAC;AAAA,QACL;AAAA,MACJ;AAAA,IACJ;AAEA,WAAO,MAAM,OAAO,SAAS,UAAU,YAAY;AAAA,EACvD;AACJ;AAnCI,cALE,gBAKc,qBAAoB,CAAC,OAAO,QAAQ,OAAO,OAAO,MAAM;AAL5E,IAAM,gBAAN;AA0CA,IAAO,wBAAQ;",
4
+ "sourcesContent": ["/* eslint-disable class-methods-use-this */\nimport { _ } from '@splunk/ui-utils/i18n';\nimport BaseRegistry from './BaseRegistry';\n\n/**\n * Image Registry\n */\nclass ImageRegistry extends BaseRegistry {\n static create() {\n return new ImageRegistry();\n }\n\n static readonly VALID_MEDIA_TYPES = ['png', 'jpeg', 'svg', 'gif', 'webp'];\n\n /**\n * check if the the media type from the dataURI belongs to the supported types\n * @param {DataURI} dataURI\n * @returns {Boolean}\n */\n isValidMediaType(dataURI, validMediaType = ImageRegistry.VALID_MEDIA_TYPES) {\n return validMediaType.some(type => {\n const mediaType = type === 'svg' ? String.raw`${type}\\+xml` : type;\n const regex = String.raw`^data:image\\/${mediaType};base64,.*$`;\n return new RegExp(regex).test(dataURI);\n });\n }\n\n /**\n * upload image if the image format is supported\n * @param {DataURI} dataURI\n * @param {Object} metaData\n * @param {String} providerType e.g. 'kvstore', or 'sui'\n * @returns {String} id e.g. 'kvstore://image123'\n */\n upload(dataURI, metaData, providerType, validMediaType = ImageRegistry.VALID_MEDIA_TYPES) {\n if (!this.isValidMediaType(dataURI, validMediaType)) {\n throw new Error(\n _(\n `The format of the uploaded file is not supported. Please upload ${validMediaType.join(\n ', '\n )}.`\n )\n );\n }\n\n return super.upload(dataURI, metaData, providerType);\n }\n}\n\nexport default ImageRegistry;\n", "\nimport * as defaultImport from \"@splunk/ui-utils/i18n\";\nexport * from \"@splunk/ui-utils/i18n\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "/* eslint-disable class-methods-use-this */\nimport { _ } from '@splunk/ui-utils/i18n';\nimport Provider from './Provider';\n\nconst DEFAULT_LIST_IDS_OPTIONS = { offset: 0, count: 100 };\n\n/**\n * Base Registry\n */\nclass BaseRegistry {\n cachedProviders: Record<string, Provider>;\n\n defaultProvider: Provider | null;\n\n constructor() {\n this.cachedProviders = {};\n this.defaultProvider = null;\n }\n\n static create() {\n return new BaseRegistry();\n }\n\n /**\n * check whether user defined provider extends the base provider\n * @param {Provider} provider\n * @returns {Boolean}\n */\n isValidProvider(provider) {\n const hasProviderInterface =\n provider &&\n typeof provider.getType === 'function' &&\n typeof provider.listIds === 'function' &&\n typeof provider.upload === 'function' &&\n typeof provider.getById === 'function' &&\n typeof provider.deleteById === 'function';\n\n if (hasProviderInterface) {\n return true;\n }\n throw new Error(_('Invalid Provider'));\n }\n\n /**\n * add default provider to cache\n * @param {Provider} provider\n */\n addDefaultProvider(provider) {\n if (this.isValidProvider(provider)) {\n this.addProvider(provider);\n this.defaultProvider = provider;\n }\n }\n\n /**\n * add provider to cache\n * @param {Provider} provider\n */\n addProvider(provider) {\n if (this.isValidProvider(provider)) {\n if (this.cachedProviders[provider.getType()]) {\n // eslint-disable-next-line no-console\n console.warn(`The provider \"${provider.getType()}\" existed already.`);\n }\n this.cachedProviders[provider.getType()] = provider;\n }\n }\n\n /**\n * delete provider\n * @param {String} providerType\n */\n deleteProvider(providerType) {\n const cachedProvider = this.cachedProviders[providerType];\n if (!cachedProvider) {\n // eslint-disable-next-line no-console\n console.warn(`The provider \"${providerType}\" does not existed`);\n return;\n }\n\n if (this.defaultProvider && providerType === this.defaultProvider.getType()) {\n this.defaultProvider = null;\n }\n delete this.cachedProviders[providerType];\n }\n\n /**\n * find provider from cache\n * @param {String} type\n * @returns {Provider} provider\n */\n findProvider(type) {\n const provider = this.cachedProviders[type];\n if (provider) {\n return provider;\n }\n throw new Error(_('Provider not found'));\n }\n\n /**\n * list all providers\n * @return {Object} provider = { type: 'local', isDefault: true }\n */\n listProviders() {\n return Object.keys(this.cachedProviders).map(type => ({\n type,\n isDefault: type === this.defaultProvider.getType(),\n }));\n }\n\n /**\n * check whether src is a http url or a url used for icon/image-registry (e.g. 'kvstore://image123')\n */\n isResourceURL(url) {\n if (!url?.includes('://')) {\n return false;\n }\n\n const { type } = this.parseURL(url);\n return type !== 'http' && type !== 'https';\n }\n\n /**\n * parse provider type and id from the url\n * @params {String} url 'kvstore://image123'\n * @returns {Object} obj\n * @returns {String} obj.type 'kvstore'\n * @returns {String} obj.id 'image123'\n */\n parseURL(url) {\n if (url) {\n const [type, id] = url.split('://');\n\n if (type && id) {\n return { type, id };\n }\n }\n throw new Error(_('Invalid url'));\n }\n\n /**\n * upload\n * @param {DataURI} dataURI\n * @param {Object} metaData\n * @param {String} providerType e.g. 'kvstore' or 'sui' or 'local'\n * @returns {String} id e.g. 'kvstore://image123'\n */\n async upload(dataURI, metaData, providerType) {\n if (providerType == null && this.defaultProvider == null) {\n throw new Error(_('No valid provider was found. Please add a provider'));\n }\n const provider = providerType ? this.findProvider(providerType) : this.defaultProvider;\n const id = await provider.upload(dataURI, metaData);\n return `${provider.getType()}://${id}`;\n }\n\n /**\n * get object by url\n * @param {String} url 'kvstore://image123'\n * @returns {Object} obj e.g. an image object or icon\n */\n async getByURL(url) {\n const { type, id } = this.parseURL(url);\n const provider = this.findProvider(type);\n const obj = await provider.getById(id);\n return obj;\n }\n\n /**\n * delete object by url\n * @param {String} url 'kvstore://image123' || 'sui://icon123'\n * @returns {Object} obj e.g. an image object or icon\n */\n async deleteByURL(url) {\n const { type, id } = this.parseURL(url);\n const provider = this.findProvider(type);\n const obj = await provider.deleteById(id);\n return obj;\n }\n\n /**\n * list all object ids\n * @params {String} providerType e.g. 'kvstore' or 'sui'\n * @params {Object} options\n * @returns {Array} ids\n */\n async listIds(providerType, options = DEFAULT_LIST_IDS_OPTIONS) {\n const provider = this.findProvider(providerType);\n const ids = await provider.listIds(options);\n return ids;\n }\n}\n\nexport default BaseRegistry;\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -172,7 +172,7 @@ var b64EncodeUnicode = (str) => (
172
172
  btoa(
173
173
  encodeURIComponent(str).replace(
174
174
  /%([0-9A-F]{2})/g,
175
- (match, p1) => String.fromCharCode(parseInt(`0x${p1}`, 16))
175
+ (match, p1) => String.fromCodePoint(Number.parseInt(`0x${p1}`, 16))
176
176
  )
177
177
  )
178
178
  );
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["src/LocalIconProvider.ts", "esm-externals:uuid-v4", "esm-externals:@splunk/ui-utils/i18n", "src/Provider.ts", "src/iconListUtils.ts"],
4
- "sourcesContent": ["/* eslint-disable class-methods-use-this,no-useless-constructor */\nimport uuid from 'uuid-v4';\nimport { _ } from '@splunk/ui-utils/i18n';\nimport Provider from './Provider';\nimport { collectIconResults } from './iconListUtils';\n\nexport const b64EncodeUnicode = str =>\n // first we use encodeURIComponent to get percent-encoded UTF-8,\n // then we convert the percent encodings into raw bytes which\n // can be fed into btoa.\n btoa(\n encodeURIComponent(str).replace(/%([0-9A-F]{2})/g, (match, p1) =>\n String.fromCharCode(parseInt(`0x${p1}`, 16))\n )\n );\n\nexport const KEY = '__icons__';\n\ninterface IconListOptions {\n offset?: number;\n count?: number;\n meta?: any[];\n search?: string | null;\n}\n\n/**\n * a local icon provider\n */\nclass LocalIconProvider extends Provider {\n constructor() {\n super();\n }\n\n /**\n * return provider type\n * @return {String} 'local'\n */\n getType() {\n return 'local';\n }\n\n /**\n * upload one new icon\n */\n async upload(dataURI, metaData) {\n // get svg from dataURI\n const response = await fetch(dataURI);\n const text = await response.text();\n const parser = new DOMParser();\n const xmlDoc = parser.parseFromString(text, 'text/xml');\n const svg = xmlDoc.getElementsByTagName('svg')[0];\n\n if (!svg.getAttribute('viewBox')) {\n throw new Error(_('Please upload a valid svg with viewBox attribute.'));\n }\n\n // reset svg attributes\n svg.setAttribute('preserveAspectRatio', 'none');\n // convert back to dataURI\n const serializer = new XMLSerializer();\n const svgStr = b64EncodeUnicode(serializer.serializeToString(svg));\n const iconDataURI = `data:image/svg+xml;base64,${svgStr}`;\n\n // save to localStorage\n try {\n const icon = { dataURI: iconDataURI, metaData };\n const id = uuid();\n let icons = JSON.parse(localStorage.getItem(KEY) || '{}');\n icons = { ...icons, [id]: icon };\n localStorage.setItem(KEY, JSON.stringify(icons));\n return id;\n } catch (error) {\n throw new Error(\n _('The icon cannot be uploaded. Please check whether your localStorage is full.')\n );\n }\n }\n\n /**\n * get one icon by icon id\n */\n async getById(id): Promise<{ dataURI: string; metaData: Record<string, any> }> {\n const icons = JSON.parse(localStorage.getItem(KEY) || '{}');\n if (icons[id]) {\n return icons[id];\n }\n throw new Error(_('The icon is not found.'));\n }\n\n /**\n * get all icon ids\n * @params options\n * @params options.meta a list of meta data attribute that would be returned with each id\n * @params options.search a search string to filter the returned icons\n */\n async listIds({ offset = 0, count = 100, meta = [], search = null }: IconListOptions = {}): Promise<\n Array<{ id: string; metaData?: Record<string, any> }>\n > {\n try {\n const icons = JSON.parse(localStorage.getItem(KEY) || '{}');\n return collectIconResults(icons, { offset, count, meta, search });\n } catch (error) {\n throw new Error(_('The icon ids cannot be listed.'));\n }\n }\n\n /**\n * delete an icon by icon id\n */\n async deleteById(id): Promise<{ dataURI: string; metaData: Record<string, any> }> {\n try {\n const icon = await this.getById(id);\n const icons = JSON.parse(localStorage.getItem(KEY) || '{}');\n delete icons[id];\n localStorage.setItem(KEY, JSON.stringify(icons));\n return icon;\n } catch (error) {\n throw new Error(_('The icon cannot be deleted.'));\n }\n }\n}\n\nexport default LocalIconProvider;\n", "\nimport * as defaultImport from \"uuid-v4\";\nexport * from \"uuid-v4\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/ui-utils/i18n\";\nexport * from \"@splunk/ui-utils/i18n\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "/* eslint-disable */\n\nclass Provider {\n constructor() {}\n\n /**\n * return provider type\n */\n getType(): string {\n throw new Error('getType() not implemented');\n }\n\n /**\n * return a list of images\n */\n async listIds({ offset, count }): Promise<any> {\n throw new Error('listIds() not implemented');\n }\n\n /**\n * add an image to the storage\n */\n async upload(dataURI, metaData): Promise<any> {\n throw new Error('upload() not implemented');\n }\n\n /**\n * retrieve imageID\n */\n async getById(imageID): Promise<any> {\n throw new Error('get() not implemented');\n }\n\n /**\n * delete image by imageID\n */\n async deleteById(imageID): Promise<any> {\n throw new Error('delete() not implemented');\n }\n}\n\nexport default Provider;\n", "interface IconEntry {\n metaData?: Record<string, any>;\n [key: string]: any;\n}\n\ninterface IconListOptions {\n offset?: number;\n count?: number;\n meta?: any[];\n search?: string | null;\n}\n\n/**\n * Shared utility to filter and collect icon results from a map of icons.\n * Used by both LocalIconProvider and MockedProvider to avoid code duplication.\n */\nexport function collectIconResults(\n icons: Record<string, IconEntry>,\n { offset = 0, count = 100, meta = [], search = null }: IconListOptions\n): Array<{ id: string; metaData?: Record<string, any> }> {\n const results: Array<{ id: string; metaData?: Record<string, any> }> = [];\n\n Object.keys(icons)\n .slice(offset, count)\n .forEach(id => {\n const icon: { id: string; metaData?: Record<string, any> } = { id, metaData: undefined };\n const iconMeta = icons[id].metaData || {};\n const isSearchedIcon =\n search != null &&\n Object.keys(iconMeta).some(attr => {\n const iconMetaValue = iconMeta[attr].toLowerCase();\n return iconMetaValue.includes(search.toLowerCase());\n });\n\n if (search == null || isSearchedIcon) {\n if (meta?.length) {\n icon.metaData = {};\n meta.forEach(attr => {\n if (iconMeta[attr] != null) {\n icon.metaData[attr] = iconMeta[attr];\n }\n });\n }\n\n results.push(icon);\n }\n });\n\n return results;\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["/* eslint-disable class-methods-use-this,no-useless-constructor */\nimport uuid from 'uuid-v4';\nimport { _ } from '@splunk/ui-utils/i18n';\nimport Provider from './Provider';\nimport { collectIconResults } from './iconListUtils';\n\nexport const b64EncodeUnicode = str =>\n // first we use encodeURIComponent to get percent-encoded UTF-8,\n // then we convert the percent encodings into raw bytes which\n // can be fed into btoa.\n btoa(\n encodeURIComponent(str).replace(/%([0-9A-F]{2})/g, (match, p1) =>\n String.fromCodePoint(Number.parseInt(`0x${p1}`, 16))\n )\n );\n\nexport const KEY = '__icons__';\n\ninterface IconListOptions {\n offset?: number;\n count?: number;\n meta?: any[];\n search?: string | null;\n}\n\n/**\n * a local icon provider\n */\nclass LocalIconProvider extends Provider {\n constructor() {\n super();\n }\n\n /**\n * return provider type\n * @return {String} 'local'\n */\n getType() {\n return 'local';\n }\n\n /**\n * upload one new icon\n */\n async upload(dataURI, metaData) {\n // get svg from dataURI\n const response = await fetch(dataURI);\n const text = await response.text();\n const parser = new DOMParser();\n const xmlDoc = parser.parseFromString(text, 'text/xml');\n const svg = xmlDoc.getElementsByTagName('svg')[0];\n\n if (!svg.getAttribute('viewBox')) {\n throw new Error(_('Please upload a valid svg with viewBox attribute.'));\n }\n\n // reset svg attributes\n svg.setAttribute('preserveAspectRatio', 'none');\n // convert back to dataURI\n const serializer = new XMLSerializer();\n const svgStr = b64EncodeUnicode(serializer.serializeToString(svg));\n const iconDataURI = `data:image/svg+xml;base64,${svgStr}`;\n\n // save to localStorage\n try {\n const icon = { dataURI: iconDataURI, metaData };\n const id = uuid();\n let icons = JSON.parse(localStorage.getItem(KEY) || '{}');\n icons = { ...icons, [id]: icon };\n localStorage.setItem(KEY, JSON.stringify(icons));\n return id;\n } catch (error) /* NOSONAR - original error intentionally not chained; this package is consumed outside this repo, so we can't be sure a downstream caller won't log the thrown error verbatim */ {\n throw new Error(\n _('The icon cannot be uploaded. Please check whether your localStorage is full.')\n );\n }\n }\n\n /**\n * get one icon by icon id\n */\n async getById(id): Promise<{ dataURI: string; metaData: Record<string, any> }> {\n const icons = JSON.parse(localStorage.getItem(KEY) || '{}');\n if (icons[id]) {\n return icons[id];\n }\n throw new Error(_('The icon is not found.'));\n }\n\n /**\n * get all icon ids\n * @params options\n * @params options.meta a list of meta data attribute that would be returned with each id\n * @params options.search a search string to filter the returned icons\n */\n async listIds({ offset = 0, count = 100, meta = [], search = null }: IconListOptions = {}): Promise<\n Array<{ id: string; metaData?: Record<string, any> }>\n > {\n try {\n const icons = JSON.parse(localStorage.getItem(KEY) || '{}');\n return collectIconResults(icons, { offset, count, meta, search });\n } catch (error) /* NOSONAR - original error intentionally not chained; this package is consumed outside this repo, so we can't be sure a downstream caller won't log the thrown error verbatim */ {\n throw new Error(_('The icon ids cannot be listed.'));\n }\n }\n\n /**\n * delete an icon by icon id\n */\n async deleteById(id): Promise<{ dataURI: string; metaData: Record<string, any> }> {\n try {\n const icon = await this.getById(id);\n const icons = JSON.parse(localStorage.getItem(KEY) || '{}');\n delete icons[id];\n localStorage.setItem(KEY, JSON.stringify(icons));\n return icon;\n } catch (error) /* NOSONAR - original error intentionally not chained; this package is consumed outside this repo, so we can't be sure a downstream caller won't log the thrown error verbatim */ {\n throw new Error(_('The icon cannot be deleted.'));\n }\n }\n}\n\nexport default LocalIconProvider;\n", "\nimport * as defaultImport from \"uuid-v4\";\nexport * from \"uuid-v4\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/ui-utils/i18n\";\nexport * from \"@splunk/ui-utils/i18n\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "/* eslint-disable class-methods-use-this, no-useless-constructor, @typescript-eslint/no-unused-vars */\n\nclass Provider {\n constructor() {}\n\n /**\n * return provider type\n */\n getType(): string {\n throw new Error('getType() not implemented');\n }\n\n /**\n * return a list of images\n */\n async listIds({ offset, count }): Promise<any> {\n throw new Error('listIds() not implemented');\n }\n\n /**\n * add an image to the storage\n */\n async upload(dataURI, metaData): Promise<any> {\n throw new Error('upload() not implemented');\n }\n\n /**\n * retrieve imageID\n */\n async getById(imageID): Promise<any> {\n throw new Error('get() not implemented');\n }\n\n /**\n * delete image by imageID\n */\n async deleteById(imageID): Promise<any> {\n throw new Error('delete() not implemented');\n }\n}\n\nexport default Provider;\n", "interface IconEntry {\n metaData?: Record<string, any>;\n [key: string]: any;\n}\n\ninterface IconListOptions {\n offset?: number;\n count?: number;\n meta?: any[];\n search?: string | null;\n}\n\n/**\n * Shared utility to filter and collect icon results from a map of icons.\n * Used by both LocalIconProvider and MockedProvider to avoid code duplication.\n */\nexport function collectIconResults(\n icons: Record<string, IconEntry>,\n { offset = 0, count = 100, meta = [], search = null }: IconListOptions\n): Array<{ id: string; metaData?: Record<string, any> }> {\n const results: Array<{ id: string; metaData?: Record<string, any> }> = [];\n\n Object.keys(icons)\n .slice(offset, count)\n .forEach(id => {\n const icon: { id: string; metaData?: Record<string, any> } = { id, metaData: undefined };\n const iconMeta = icons[id].metaData || {};\n const isSearchedIcon =\n search != null &&\n Object.keys(iconMeta).some(attr => {\n const iconMetaValue = iconMeta[attr].toLowerCase();\n return iconMetaValue.includes(search.toLowerCase());\n });\n\n if (search == null || isSearchedIcon) {\n if (meta?.length) {\n icon.metaData = {};\n meta.forEach(attr => {\n if (iconMeta[attr] != null) {\n icon.metaData[attr] = iconMeta[attr];\n }\n });\n }\n\n results.push(icon);\n }\n });\n\n return results;\n}\n"],
5
+ "mappings": "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",
6
6
  "names": ["defaultImport"]
7
7
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["src/LocalImageProvider.ts", "esm-externals:uuid-v4", "esm-externals:@splunk/ui-utils/i18n", "src/Provider.ts"],
4
- "sourcesContent": ["/* eslint-disable class-methods-use-this,no-useless-constructor */\nimport uuid from 'uuid-v4';\nimport { _ } from '@splunk/ui-utils/i18n';\nimport Provider from './Provider';\n\nexport const KEY = '__images__';\n\ninterface ListIdsOptions {\n offset?: number;\n count?: number;\n}\n\n/**\n * a pure frontend local image provider\n */\nclass LocalImageProvider extends Provider {\n constructor() {\n super();\n }\n\n /**\n * return provider type\n */\n getType() {\n return 'local';\n }\n\n /**\n * add a new image\n */\n async upload(dataURI, metaData): Promise<string> {\n try {\n const id = uuid();\n const imageObject = { dataURI, metaData };\n let images = JSON.parse(localStorage.getItem(KEY) || '{}');\n images = { ...images, [id]: imageObject };\n localStorage.setItem(KEY, JSON.stringify(images));\n return id;\n } catch (error) {\n throw new Error(\n _('The image cannot be uploaded. Please check whether your localStorage is full.')\n );\n }\n }\n\n /**\n * get image by imageID\n */\n async getById(imageID): Promise<{ dataURI: string; metaData: Record<string, any> }> {\n const images = JSON.parse(localStorage.getItem(KEY) || '{}');\n const imageObject = images[imageID];\n if (imageObject) {\n return imageObject;\n }\n throw new Error(_('The image is not found.'));\n }\n\n /**\n * get all imageIDs\n */\n async listIds({ offset = 0, count = 100 }: ListIdsOptions = {}): Promise<string[]> {\n try {\n const images = JSON.parse(localStorage.getItem(KEY) || '{}');\n const imageIDS = Object.keys(images);\n return imageIDS.slice(offset, count);\n } catch (error) {\n throw new Error(_('The image ids cannot be listed.'));\n }\n }\n\n /**\n * delete an image by dataID\n */\n async deleteById(imageID): Promise<{ dataURI: string; metaData: Record<string, any> }> {\n try {\n const imageObject = await this.getById(imageID);\n const images = JSON.parse(localStorage.getItem(KEY) || '{}');\n delete images[imageID];\n localStorage.setItem(KEY, JSON.stringify(images));\n return imageObject;\n } catch (error) {\n throw new Error(_('The image cannot be deleted.'));\n }\n }\n}\n\nexport default LocalImageProvider;\n", "\nimport * as defaultImport from \"uuid-v4\";\nexport * from \"uuid-v4\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/ui-utils/i18n\";\nexport * from \"@splunk/ui-utils/i18n\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "/* eslint-disable */\n\nclass Provider {\n constructor() {}\n\n /**\n * return provider type\n */\n getType(): string {\n throw new Error('getType() not implemented');\n }\n\n /**\n * return a list of images\n */\n async listIds({ offset, count }): Promise<any> {\n throw new Error('listIds() not implemented');\n }\n\n /**\n * add an image to the storage\n */\n async upload(dataURI, metaData): Promise<any> {\n throw new Error('upload() not implemented');\n }\n\n /**\n * retrieve imageID\n */\n async getById(imageID): Promise<any> {\n throw new Error('get() not implemented');\n }\n\n /**\n * delete image by imageID\n */\n async deleteById(imageID): Promise<any> {\n throw new Error('delete() not implemented');\n }\n}\n\nexport default Provider;\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["/* eslint-disable class-methods-use-this,no-useless-constructor */\nimport uuid from 'uuid-v4';\nimport { _ } from '@splunk/ui-utils/i18n';\nimport Provider from './Provider';\n\nexport const KEY = '__images__';\n\ninterface ListIdsOptions {\n offset?: number;\n count?: number;\n}\n\n/**\n * a pure frontend local image provider\n */\nclass LocalImageProvider extends Provider {\n constructor() {\n super();\n }\n\n /**\n * return provider type\n */\n getType() {\n return 'local';\n }\n\n /**\n * add a new image\n */\n async upload(dataURI, metaData): Promise<string> {\n try {\n const id = uuid();\n const imageObject = { dataURI, metaData };\n let images = JSON.parse(localStorage.getItem(KEY) || '{}');\n images = { ...images, [id]: imageObject };\n localStorage.setItem(KEY, JSON.stringify(images));\n return id;\n } catch (error) /* NOSONAR - original error intentionally not chained; this package is consumed outside this repo, so we can't be sure a downstream caller won't log the thrown error verbatim */ {\n throw new Error(\n _('The image cannot be uploaded. Please check whether your localStorage is full.')\n );\n }\n }\n\n /**\n * get image by imageID\n */\n async getById(imageID): Promise<{ dataURI: string; metaData: Record<string, any> }> {\n const images = JSON.parse(localStorage.getItem(KEY) || '{}');\n const imageObject = images[imageID];\n if (imageObject) {\n return imageObject;\n }\n throw new Error(_('The image is not found.'));\n }\n\n /**\n * get all imageIDs\n */\n async listIds({ offset = 0, count = 100 }: ListIdsOptions = {}): Promise<string[]> {\n try {\n const images = JSON.parse(localStorage.getItem(KEY) || '{}');\n const imageIDS = Object.keys(images);\n return imageIDS.slice(offset, count);\n } catch (error) /* NOSONAR - original error intentionally not chained; this package is consumed outside this repo, so we can't be sure a downstream caller won't log the thrown error verbatim */ {\n throw new Error(_('The image ids cannot be listed.'));\n }\n }\n\n /**\n * delete an image by dataID\n */\n async deleteById(imageID): Promise<{ dataURI: string; metaData: Record<string, any> }> {\n try {\n const imageObject = await this.getById(imageID);\n const images = JSON.parse(localStorage.getItem(KEY) || '{}');\n delete images[imageID];\n localStorage.setItem(KEY, JSON.stringify(images));\n return imageObject;\n } catch (error) /* NOSONAR - original error intentionally not chained; this package is consumed outside this repo, so we can't be sure a downstream caller won't log the thrown error verbatim */ {\n throw new Error(_('The image cannot be deleted.'));\n }\n }\n}\n\nexport default LocalImageProvider;\n", "\nimport * as defaultImport from \"uuid-v4\";\nexport * from \"uuid-v4\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/ui-utils/i18n\";\nexport * from \"@splunk/ui-utils/i18n\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "/* eslint-disable class-methods-use-this, no-useless-constructor, @typescript-eslint/no-unused-vars */\n\nclass Provider {\n constructor() {}\n\n /**\n * return provider type\n */\n getType(): string {\n throw new Error('getType() not implemented');\n }\n\n /**\n * return a list of images\n */\n async listIds({ offset, count }): Promise<any> {\n throw new Error('listIds() not implemented');\n }\n\n /**\n * add an image to the storage\n */\n async upload(dataURI, metaData): Promise<any> {\n throw new Error('upload() not implemented');\n }\n\n /**\n * retrieve imageID\n */\n async getById(imageID): Promise<any> {\n throw new Error('get() not implemented');\n }\n\n /**\n * delete image by imageID\n */\n async deleteById(imageID): Promise<any> {\n throw new Error('delete() not implemented');\n }\n}\n\nexport default Provider;\n"],
5
+ "mappings": "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",
6
6
  "names": ["defaultImport"]
7
7
  }
package/MapContext.js CHANGED
@@ -53,7 +53,7 @@ var react_default = "default" in defaultImport ? defaultImport.default : default
53
53
  var MapContext = react_exports.createContext({
54
54
  defaultTileConfig: []
55
55
  });
56
- MapContext.displayName = `data-splunk-visualization-version-MapContext-${"28.8.0 - 633c53372"}`;
56
+ MapContext.displayName = `data-splunk-visualization-version-MapContext-${"28.9.0 - 96b03188d"}`;
57
57
  var MapContextProvider = MapContext.Provider;
58
58
  var MapContextConsumer = MapContext.Consumer;
59
59
  var MapContext_default = MapContext;
package/MockedProvider.js CHANGED
@@ -225,7 +225,10 @@ var MockedProvider = class extends Provider_default {
225
225
  return __async(this, null, function* () {
226
226
  console.warn("MockedProvider.deleteById() is deprecated and will be removed in future releases.");
227
227
  try {
228
- const obj = yield this.getById(id);
228
+ const obj = this.items[id];
229
+ if (!obj) {
230
+ throw new Error((0, i18n_exports._)("The obj is not found."));
231
+ }
229
232
  delete this.items[id];
230
233
  return obj;
231
234
  } catch (error) {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["src/MockedProvider.ts", "esm-externals:@splunk/ui-utils/i18n", "src/Provider.ts", "src/iconListUtils.ts"],
4
- "sourcesContent": ["/* eslint-disable class-methods-use-this,no-useless-constructor */\nimport { _ } from '@splunk/ui-utils/i18n';\nimport Provider from './Provider';\nimport { collectIconResults } from './iconListUtils';\n\n/**\n * @deprecated This is a mocked provider for testing purposes only and will be removed in future releases.\n * a local icon/image provider\n */\nclass MockedProvider extends Provider {\n id: number;\n\n items: Record<string, { dataURI: string; metaData: Record<string, any> }>;\n\n constructor() {\n console.warn('MockedProvider constructor is deprecated and will be removed in future releases.');\n super();\n this.id = 0;\n this.items = {};\n }\n\n /**\n * @deprecated MockedProvider.getType() is deprecated and will be removed in future releases.\n * return provider type\n */\n getType() {\n console.warn('MockedProvider.getType() is deprecated and will be removed in future releases.');\n return 'mock';\n }\n\n /**\n * @deprecated MockedProvider.upload() is deprecated and will be removed in future releases.\n */\n async upload(dataURI, metaData): Promise<number> {\n console.warn('MockedProvider.upload() is deprecated and will be removed in future releases.');\n try {\n const obj = { dataURI, metaData };\n const { id, items } = this;\n\n this.items = { ...items, [id]: obj };\n this.id += 1;\n\n return id;\n } catch (error) {\n throw new Error(_('The obj cannot be uploaded.'));\n }\n }\n\n /**\n * @deprecated MockedProvider.getById() is deprecated and will be removed in future releases.\n * get by id\n */\n async getById(id): Promise<{ dataURI: string; metaData: Record<string, any> }> {\n console.warn('MockedProvider.getById() is deprecated and will be removed in future releases.');\n if (this.items[id]) {\n return this.items[id];\n }\n throw new Error(_('The obj is not found.'));\n }\n\n /**\n * @deprecated MockedProvider.listIds() is deprecated and will be removed in future releases.\n * get all obj ids\n */\n async listIds({ offset = 0, count = 100, meta = [], search = null } = {}): Promise<\n Array<{ id: string; metaData?: Record<string, any> }>\n > {\n console.warn('MockedProvider.listIds() is deprecated and will be removed in future releases.');\n try {\n const icons = { ...this.items };\n return collectIconResults(icons, { offset, count, meta, search });\n } catch (error) {\n throw new Error(_('The ids cannot be listed.'));\n }\n }\n\n /**\n * @deprecated MockedProvider.deleteById() is deprecated and will be removed in future releases.\n * delete by id\n */\n async deleteById(id): Promise<{ dataURI: string; metaData: Record<string, any> }> {\n console.warn('MockedProvider.deleteById() is deprecated and will be removed in future releases.');\n try {\n const obj = await this.getById(id);\n delete this.items[id];\n return obj;\n } catch (error) {\n throw new Error(_('The obj cannot be deleted.'));\n }\n }\n\n /**\n * @deprecated MockedProvider.clean() is deprecated and will be removed in future releases.\n */\n clean() {\n console.warn('MockedProvider.clean() is deprecated and will be removed in future releases.');\n this.id = 0;\n this.items = {};\n }\n}\n\nexport default MockedProvider;\n", "\nimport * as defaultImport from \"@splunk/ui-utils/i18n\";\nexport * from \"@splunk/ui-utils/i18n\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "/* eslint-disable */\n\nclass Provider {\n constructor() {}\n\n /**\n * return provider type\n */\n getType(): string {\n throw new Error('getType() not implemented');\n }\n\n /**\n * return a list of images\n */\n async listIds({ offset, count }): Promise<any> {\n throw new Error('listIds() not implemented');\n }\n\n /**\n * add an image to the storage\n */\n async upload(dataURI, metaData): Promise<any> {\n throw new Error('upload() not implemented');\n }\n\n /**\n * retrieve imageID\n */\n async getById(imageID): Promise<any> {\n throw new Error('get() not implemented');\n }\n\n /**\n * delete image by imageID\n */\n async deleteById(imageID): Promise<any> {\n throw new Error('delete() not implemented');\n }\n}\n\nexport default Provider;\n", "interface IconEntry {\n metaData?: Record<string, any>;\n [key: string]: any;\n}\n\ninterface IconListOptions {\n offset?: number;\n count?: number;\n meta?: any[];\n search?: string | null;\n}\n\n/**\n * Shared utility to filter and collect icon results from a map of icons.\n * Used by both LocalIconProvider and MockedProvider to avoid code duplication.\n */\nexport function collectIconResults(\n icons: Record<string, IconEntry>,\n { offset = 0, count = 100, meta = [], search = null }: IconListOptions\n): Array<{ id: string; metaData?: Record<string, any> }> {\n const results: Array<{ id: string; metaData?: Record<string, any> }> = [];\n\n Object.keys(icons)\n .slice(offset, count)\n .forEach(id => {\n const icon: { id: string; metaData?: Record<string, any> } = { id, metaData: undefined };\n const iconMeta = icons[id].metaData || {};\n const isSearchedIcon =\n search != null &&\n Object.keys(iconMeta).some(attr => {\n const iconMetaValue = iconMeta[attr].toLowerCase();\n return iconMetaValue.includes(search.toLowerCase());\n });\n\n if (search == null || isSearchedIcon) {\n if (meta?.length) {\n icon.metaData = {};\n meta.forEach(attr => {\n if (iconMeta[attr] != null) {\n icon.metaData[attr] = iconMeta[attr];\n }\n });\n }\n\n results.push(icon);\n }\n });\n\n return results;\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["/* eslint-disable class-methods-use-this,no-useless-constructor */\nimport { _ } from '@splunk/ui-utils/i18n';\nimport Provider from './Provider';\nimport { collectIconResults } from './iconListUtils';\n\n/**\n * @deprecated This is a mocked provider for testing purposes only and will be removed in future releases.\n * a local icon/image provider\n */\nclass MockedProvider extends Provider {\n id: number;\n\n items: Record<string, { dataURI: string; metaData: Record<string, any> }>;\n\n constructor() {\n console.warn('MockedProvider constructor is deprecated and will be removed in future releases.');\n super();\n this.id = 0;\n this.items = {};\n }\n\n /**\n * @deprecated MockedProvider.getType() is deprecated and will be removed in future releases.\n * return provider type\n */\n getType() {\n console.warn('MockedProvider.getType() is deprecated and will be removed in future releases.');\n return 'mock';\n }\n\n /**\n * @deprecated MockedProvider.upload() is deprecated and will be removed in future releases.\n */\n async upload(dataURI, metaData): Promise<number> {\n console.warn('MockedProvider.upload() is deprecated and will be removed in future releases.');\n try {\n const obj = { dataURI, metaData };\n const { id, items } = this;\n\n this.items = { ...items, [id]: obj };\n this.id += 1;\n\n return id;\n } catch (error) /* NOSONAR - original error intentionally not chained; this package is consumed outside this repo, so we can't be sure a downstream caller won't log the thrown error verbatim */ {\n throw new Error(_('The obj cannot be uploaded.'));\n }\n }\n\n /**\n * @deprecated MockedProvider.getById() is deprecated and will be removed in future releases.\n * get by id\n */\n async getById(id): Promise<{ dataURI: string; metaData: Record<string, any> }> {\n console.warn('MockedProvider.getById() is deprecated and will be removed in future releases.');\n if (this.items[id]) {\n return this.items[id];\n }\n throw new Error(_('The obj is not found.'));\n }\n\n /**\n * @deprecated MockedProvider.listIds() is deprecated and will be removed in future releases.\n * get all obj ids\n */\n async listIds({ offset = 0, count = 100, meta = [], search = null } = {}): Promise<\n Array<{ id: string; metaData?: Record<string, any> }>\n > {\n console.warn('MockedProvider.listIds() is deprecated and will be removed in future releases.');\n try {\n const icons = { ...this.items };\n return collectIconResults(icons, { offset, count, meta, search });\n } catch (error) /* NOSONAR - original error intentionally not chained; this package is consumed outside this repo, so we can't be sure a downstream caller won't log the thrown error verbatim */ {\n throw new Error(_('The ids cannot be listed.'));\n }\n }\n\n /**\n * @deprecated MockedProvider.deleteById() is deprecated and will be removed in future releases.\n * delete by id\n */\n async deleteById(id): Promise<{ dataURI: string; metaData: Record<string, any> }> {\n console.warn('MockedProvider.deleteById() is deprecated and will be removed in future releases.');\n try {\n // Read directly from `items` rather than via the (also deprecated) getById(),\n // so this method doesn't trigger a second deprecation warning for the same call.\n const obj = this.items[id];\n if (!obj) {\n throw new Error(_('The obj is not found.'));\n }\n delete this.items[id];\n return obj;\n } catch (error) /* NOSONAR - original error intentionally not chained; this package is consumed outside this repo, so we can't be sure a downstream caller won't log the thrown error verbatim */ {\n throw new Error(_('The obj cannot be deleted.'));\n }\n }\n\n /**\n * @deprecated MockedProvider.clean() is deprecated and will be removed in future releases.\n */\n clean() {\n console.warn('MockedProvider.clean() is deprecated and will be removed in future releases.');\n this.id = 0;\n this.items = {};\n }\n}\n\nexport default MockedProvider; // NOSONAR typescript:S1874 - MockedProvider is intentionally deprecated but must remain exported for backward compatibility with existing test consumers\n", "\nimport * as defaultImport from \"@splunk/ui-utils/i18n\";\nexport * from \"@splunk/ui-utils/i18n\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "/* eslint-disable class-methods-use-this, no-useless-constructor, @typescript-eslint/no-unused-vars */\n\nclass Provider {\n constructor() {}\n\n /**\n * return provider type\n */\n getType(): string {\n throw new Error('getType() not implemented');\n }\n\n /**\n * return a list of images\n */\n async listIds({ offset, count }): Promise<any> {\n throw new Error('listIds() not implemented');\n }\n\n /**\n * add an image to the storage\n */\n async upload(dataURI, metaData): Promise<any> {\n throw new Error('upload() not implemented');\n }\n\n /**\n * retrieve imageID\n */\n async getById(imageID): Promise<any> {\n throw new Error('get() not implemented');\n }\n\n /**\n * delete image by imageID\n */\n async deleteById(imageID): Promise<any> {\n throw new Error('delete() not implemented');\n }\n}\n\nexport default Provider;\n", "interface IconEntry {\n metaData?: Record<string, any>;\n [key: string]: any;\n}\n\ninterface IconListOptions {\n offset?: number;\n count?: number;\n meta?: any[];\n search?: string | null;\n}\n\n/**\n * Shared utility to filter and collect icon results from a map of icons.\n * Used by both LocalIconProvider and MockedProvider to avoid code duplication.\n */\nexport function collectIconResults(\n icons: Record<string, IconEntry>,\n { offset = 0, count = 100, meta = [], search = null }: IconListOptions\n): Array<{ id: string; metaData?: Record<string, any> }> {\n const results: Array<{ id: string; metaData?: Record<string, any> }> = [];\n\n Object.keys(icons)\n .slice(offset, count)\n .forEach(id => {\n const icon: { id: string; metaData?: Record<string, any> } = { id, metaData: undefined };\n const iconMeta = icons[id].metaData || {};\n const isSearchedIcon =\n search != null &&\n Object.keys(iconMeta).some(attr => {\n const iconMetaValue = iconMeta[attr].toLowerCase();\n return iconMetaValue.includes(search.toLowerCase());\n });\n\n if (search == null || isSearchedIcon) {\n if (meta?.length) {\n icon.metaData = {};\n meta.forEach(attr => {\n if (iconMeta[attr] != null) {\n icon.metaData[attr] = iconMeta[attr];\n }\n });\n }\n\n results.push(icon);\n }\n });\n\n return results;\n}\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
package/Provider.js.map CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["src/Provider.ts"],
4
- "sourcesContent": ["/* eslint-disable */\n\nclass Provider {\n constructor() {}\n\n /**\n * return provider type\n */\n getType(): string {\n throw new Error('getType() not implemented');\n }\n\n /**\n * return a list of images\n */\n async listIds({ offset, count }): Promise<any> {\n throw new Error('listIds() not implemented');\n }\n\n /**\n * add an image to the storage\n */\n async upload(dataURI, metaData): Promise<any> {\n throw new Error('upload() not implemented');\n }\n\n /**\n * retrieve imageID\n */\n async getById(imageID): Promise<any> {\n throw new Error('get() not implemented');\n }\n\n /**\n * delete image by imageID\n */\n async deleteById(imageID): Promise<any> {\n throw new Error('delete() not implemented');\n }\n}\n\nexport default Provider;\n"],
4
+ "sourcesContent": ["/* eslint-disable class-methods-use-this, no-useless-constructor, @typescript-eslint/no-unused-vars */\n\nclass Provider {\n constructor() {}\n\n /**\n * return provider type\n */\n getType(): string {\n throw new Error('getType() not implemented');\n }\n\n /**\n * return a list of images\n */\n async listIds({ offset, count }): Promise<any> {\n throw new Error('listIds() not implemented');\n }\n\n /**\n * add an image to the storage\n */\n async upload(dataURI, metaData): Promise<any> {\n throw new Error('upload() not implemented');\n }\n\n /**\n * retrieve imageID\n */\n async getById(imageID): Promise<any> {\n throw new Error('get() not implemented');\n }\n\n /**\n * delete image by imageID\n */\n async deleteById(imageID): Promise<any> {\n throw new Error('delete() not implemented');\n }\n}\n\nexport default Provider;\n"],
5
5
  "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,IAAM,WAAN,MAAe;AAAA,EACX,cAAc;AAAA,EAAC;AAAA;AAAA;AAAA;AAAA,EAKf,UAAkB;AACd,UAAM,IAAI,MAAM,2BAA2B;AAAA,EAC/C;AAAA;AAAA;AAAA;AAAA,EAKM,QAAQ,IAAiC;AAAA,+CAAjC,EAAE,QAAQ,MAAM,GAAiB;AAC3C,YAAM,IAAI,MAAM,2BAA2B;AAAA,IAC/C;AAAA;AAAA;AAAA;AAAA;AAAA,EAKM,OAAO,SAAS,UAAwB;AAAA;AAC1C,YAAM,IAAI,MAAM,0BAA0B;AAAA,IAC9C;AAAA;AAAA;AAAA;AAAA;AAAA,EAKM,QAAQ,SAAuB;AAAA;AACjC,YAAM,IAAI,MAAM,uBAAuB;AAAA,IAC3C;AAAA;AAAA;AAAA;AAAA;AAAA,EAKM,WAAW,SAAuB;AAAA;AACpC,YAAM,IAAI,MAAM,0BAA0B;AAAA,IAC9C;AAAA;AACJ;AAEA,IAAO,mBAAQ;",
6
6
  "names": []
7
7
  }
@@ -50,7 +50,7 @@ var react_default = "default" in defaultImport ? defaultImport.default : default
50
50
 
51
51
  // src/TimezoneContext.ts
52
52
  var TimezoneContext = react_exports.createContext({});
53
- TimezoneContext.displayName = `data-splunk-visualization-version-TimezoneContext-${"28.8.0 - 633c53372"}`;
53
+ TimezoneContext.displayName = `data-splunk-visualization-version-TimezoneContext-${"28.9.0 - 96b03188d"}`;
54
54
  var TimezoneContextProvider = TimezoneContext.Provider;
55
55
  var TimezoneContextConsumer = TimezoneContext.Consumer;
56
56
  var TimezoneContext_default = TimezoneContext;
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@splunk/visualization-context",
3
3
  "license": "Apache-2.0",
4
4
  "author": "Splunk Inc.",
5
- "version": "28.8.0",
5
+ "version": "28.9.0",
6
6
  "scripts": {
7
7
  "build": "viz-build",
8
8
  "build:ci": "yarn build && yarn docs",
@@ -19,7 +19,7 @@
19
19
  "version": "yarn build"
20
20
  },
21
21
  "dependencies": {
22
- "@splunk/ui-utils": "^1.14.0",
22
+ "@splunk/ui-utils": "^1.14.1",
23
23
  "uuid-v4": "^0.1.0"
24
24
  },
25
25
  "peerDependencies": {
@@ -28,7 +28,7 @@
28
28
  },
29
29
  "devDependencies": {
30
30
  "@splunk/eslint-config": "^5.0.0",
31
- "@splunk/visualization-build-tools": "^28.8.0",
31
+ "@splunk/visualization-build-tools": "^28.9.0",
32
32
  "@testing-library/react": "^16.3.2",
33
33
  "@testing-library/user-event": "^14.6.1",
34
34
  "jest-localstorage-mock": "^2.4.26"